cproc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.nihaljere.xyz/cproc
Log | Files | Refs | Submodules | README | LICENSE

commit 0cdb109ed1d1064c71d27b311baa20895647eaba
parent 28f37f3a2278aba1652638c7642377ad442e54d7
Author: Michael Forney <mforney@mforney.org>
Date:   Tue, 23 Apr 2019 18:55:29 -0700

doc/software: Add sections for mcpp and zstd

Diffstat:
MREADME.md | 7++++---
Mdoc/software.md | 29+++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/README.md b/README.md @@ -5,9 +5,10 @@ the [ISC] license. Several GNU C [extensions] are also implemented. -There is still much to do and some parts of the code are a little rough, -but it currently implements most of the language and is capable of -building some useful [software] including itself, binutils, and more. +There is still much to do and some parts of the code are a little +rough, but it currently implements most of the language and is capable +of building some useful [software] including itself, mcpp, binutils, +and more. It was inspired by several other small C compilers including [8cc], [c], and [scc]. diff --git a/doc/software.md b/doc/software.md @@ -9,6 +9,14 @@ Builds without issue as of [ef9f6f35]. [ef9f6f35]: https://git.suckless.org/sbase/commit/ef9f6f359a0762b738302ae05822514d72b70450.html +## mcpp + +Builds without issue. + +Requires a [QBE bugfix] to avoid issues with large stack allocations. + +[QBE bugfix]: https://git.sr.ht/~mcf/qbe/commit/74a0c69d65fcd4fc19ebfdf715a976ac0b572aa7 + ## binutils QBE must be built with `NPred` (in `all.h`) at least 297, or patched to @@ -53,3 +61,24 @@ Configure with --disable-intl --disable-gdb --disable-plugins --disable-readline [f6a7d135]: https://git.sr.ht/~mcf/qbe/commit/f6a7d135d54f5281547f20cc4f72a5e85862157c + +## zstd + +Builds after disabling CPU identification inline assembly. + +```diff +diff --git a/lib/common/cpu.h b/lib/common/cpu.h +index 5f0923fc..10dd7d7f 100644 +--- a/lib/common/cpu.h ++++ b/lib/common/cpu.h +@@ -52,6 +52,7 @@ MEM_STATIC ZSTD_cpuid_t ZSTD_cpuid(void) { + f7c = (U32)reg[2]; + } + } ++#elif 1 + #elif defined(__i386__) && defined(__PIC__) && !defined(__clang__) && defined(__GNUC__) + /* The following block like the normal cpuid branch below, but gcc + * reserves ebx for use of its pic register so we must specially +``` + +Some tests fail, which still need to be investigated.