Sometimes the build failes with:
In file included from ../../gcc-4.4.6/gcc/ada/seh_init.c:44:
../../gcc-4.4.6/gcc/system.h:418: error: conflicting types for 'strsignal'
/nix/store/6h129q168ahnl2nzw6azr239cba884ng-glibc-2.18/include/string.h:560: note: previous declaration of 'strsignal' was here
and sometimes it doesn't. Hopefully disabling parallel builds fixes
this.
http://hydra.nixos.org/build/7179481
SDCC 3.3.0 Feature List:
* Many small improvements in code generation for the z80-related ports - merged smallopts branch
* lospre (currently enabled for z80-related and hc08-related ports only) - merged lospre branch
* More efficient initialization of globals in z80, z180, r2k and r3ka ports.
* Inclusion of tests from the gcc test suite into the sdcc regression test suite led to many bugs being found and fixed.
* Split sdas390 from sdas8051
* Merged big parts of ASxxxx v5 into sdas
* New pic devices (synchronization with MPLABX 1.60). (Except for very old MCU-s.)
* New script which disassembles those hex files, in which MCS51 code there is. (mcs51-disasm.pl)
* Added the PIC16F1788 and PIC16F1789 devices.
* C11 _Alignof operator.
* C11 _Alignas alignment specifier.
* C11 _Static_Assert static assertion.
Numerous feature requests and bug fixes are included as well.
Apparently Apple thinks that faking gcc wiht a clang stub but not providing a
compatile libgcc.a is not going to cause any issues. They really do hate GPL.
1) The wrapper erroneously used the ghc-pkg flag "--package-db" instead of
"--global-package-db". The result was that packages installed locally in
~/.ghc and ~/.cabal were invisible to GHC. This has been fixed.
2) The wrapper now deals gracefully with an empty package set: if no package
is requested to be included in the wrapped environment, the wrapper just
installs a pristine GHC.
3) Correctly configure the "docdir" path returned by ghc-paths.
4) Added some comments that describe the idea behind our ghc-paths patches and
gives users same sample shell code that can be used to import our special
environment variables into the currently running shell, so that programs
outside of the wrapped environment can use them, too.
The ghcWithPackage expression now has an argument 'ignoreCollisions' that
allows users to disable the path collision check like so:
(pkgs.haskellPackages.ghcWithPackages (pkgs: with pkgs; [ haskellPlatform ])).override { ignoreCollisions = true; };
See d64917ad17
for a long and detailed discussion of why these path collisions may occur.
Haskell packages -- i.e. packages built by our Cabal builder -- invariably have
the attributes 'pname' and 'version'. We use the absence of these attributes to
recognize non-Haskell packages and filter them from the closed package set
generated by closePropagation. We do this so that the generated Haskell
environment won't contain paths like "/lib/libz.a", which are part of the
closure but have nothing to do with Haskell.
The previous scheme used the attribute 'ghc' to accomplish the same thing, but
unfortunately other packages to contain a 'ghc' attribute, too, like the
old-style ghc-wrapper. Including the ghc-wrapper in this environment is
pointless, obviously. The new approach filters the ghc-wrapper successfully.