Done with the help of https://github.com/Mindavi/nixpkgs-mark-broken
Tool is still WIP but this is one of the first results.
I manually audited the results and removed some results that were not valid.
Note that some of these packages maybe should have more constrained platforms set
instead of broken set, but I think not being perfectly correct is better than
just keep trying to build all these things and never succeeding.
Some observations:
- Some darwin builds require XCode tools
- aarch64-linux builds sometimes suffer from using gcc9
- gcc9 is getting older and misses some new libraries/features
- Sometimes tools try to do system detection or expect some explicit settings for
platforms that are not x86_64-linux
Make clearer the difference between `maxima` and `maxima-ecl` top-level
attributes. Use the `lisp-compiler` as a passthru for all of sage's
expressions. Add the `pname` attribute for `ecl` for compatibility with
other lisp implementations.
* Use --with-gmp-incdir and --with-gmp-libdir (like for the main ecl
derivation), so ecl can figure out the flags to pass on its own.
Remove NIX_LDFLAGS hack for gmp.
* Make sure ecl can find boehmgc when linking programs / libraries via
NIX_LDFLAGS. Pass correct -I for boehmgc via NIX_CFLAGS_COMPILE since
there's no --with-boehmgc-prefix configure flag to achieve the same
result.
* Use correct suffixSalt for every flag. This makes NIX_CFLAGS_COMPILE
work properly in the first place and should prevent the extra flags
hacks leaking into other places in some edge cases.
All libraries that ecl will have compiled libraries and executables link
against now have their own --with-<dep>-incdir and --with-<dep>-libdir
flag which is perfect for our distinct lib and dev outputs.
Consequently, we can get rid of the NIX_LDFLAGS-based hack in the
wrapper since ecl can figure out which flags to pass on its own.
The following parameters are now available:
* hardeningDisable
To disable specific hardening flags
* hardeningEnable
To enable specific hardening flags
Only the cc-wrapper supports this right now, but these may be reused by
other wrappers, builders or setup hooks.
cc-wrapper supports the following flags:
* fortify
* stackprotector
* pie (disabled by default)
* pic
* strictoverflow
* format
* relro
* bindnow