diff options
author | Michael Forney <mforney@mforney.org> | 2019-04-18 18:48:53 -0700 |
---|---|---|
committer | Michael Forney <mforney@mforney.org> | 2019-04-18 18:48:53 -0700 |
commit | f9a4b65cea96517b01b5185344c69d7bfeb5fc0e (patch) | |
tree | bf765861b7603d8e10a2ad26d5c61c1e58d8732b /doc | |
parent | 863af085d91310e25f9ec892adb93b412253e833 (diff) |
Add some documentation about building various software
Diffstat (limited to 'doc')
-rw-r--r-- | doc/software.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/doc/software.md b/doc/software.md new file mode 100644 index 0000000..86a9215 --- /dev/null +++ b/doc/software.md @@ -0,0 +1,46 @@ +# Software notes + +This document lists some software known to build successfully, and any +special procedures necessary. + +## [sbase] + +Builds without issue as of [ef9f6f35]. + +[sbase]: https://core.suckless.org/sbase/ +[ef9f6f35]: https://git.suckless.org/sbase/commit/ef9f6f359a0762b738302ae05822514d72b70450.html + +## [binutils] + +QBE must be built with `NPred` (in `all.h` at least 297). + +On glibc systems, you must make sure to include `crtbegin.o` and +`crtend.o` from gcc at the end of `startfiles` and beginning of `endfiles` +respectively. + +On musl systems, you must define `long double` to match `double` to +avoid errors in unused `static inline` functions in musl's `math.h`. + +Requires several patches available here: +https://github.com/michaelforney/binutils-gdb/ + +- Fix function pointer subtraction in `bfd/doc/chew.c` (applied upstream). +- Skip unsupported `LDFLAGS`, only tested to work against `CXX` by + configure, but applied to `CC` as well. +- Disable `long double` support in `_bfd_doprnt`. +- Alter some ifdefs to avoid statement expressions and VLAs. +- Implement `pex_unix_exec_child` with `posix_spawn` instead of `vfork` + and subtle `volatile` usage. +- Make `regcomp` and `regexec` match the header declaration in usage of + `restrict`. +- Don't declare `vasprintf` unless it was checked for and not + found. Several subdirectories in binutils include `libiberty.h`, + but don't use `vasprintf`, causing conflicting declarations with libc + in usage of `restrict`. +- Make sure `config.h` is included in `arlex.c` so that the appropriate + feature-test macros get defined to expose `strdup`. + +Configure with + + ./configure CC=/path/to/cc CFLAGS_FOR_BUILD=-D_GNU_SOURCE \ + --disable-intl --disable-gdb --disable-plugins --disable-readline |