3
0
Fork 0
forked from mirrors/nixpkgs
Commit graph

188 commits

Author SHA1 Message Date
Ben Gamari 1c1207220f gcc: Refactor treatment of configure flags
Previously configureFlags was defined as one giant interpolated string.
Here we refactor this definition to instead use the usual stdenv string
combinators. This seems more in-line with the average nixpkgs expression
and it seems a bit more natural to things of these as lists of flags
rather than monolithic strings.
2017-11-14 16:23:46 -05:00
John Ericson 0101856765
Merge pull request #30549 from obsidiansystems/bintools
treewide: Introduce stdenv.cc.bintools
2017-11-08 14:20:48 -05:00
Vladimír Čunát 8da04338d7
gcc-4.9: fixup build with glibc-2.26
Upstream didn't backport this, but fortunately it wasn't too hard.
2017-11-07 12:56:57 +01:00
John Ericson 4d4f94cde4 treewide: Depend on targetPackages.stdenv.cc.bintools instead of binutils directly
One should do this when needed executables at run time. It is more
honest and cross-friendly than refering to binutils directly, if one
neeeds the default binary tools for the target platform, rather than
binutils in particular.
2017-11-05 17:10:53 -05:00
John Ericson 54282b9610 gcc: Change default of crossStageStatic param to false
This gets us one step closer to removing `gccCrossStageFinal`.

Care is taken to avoid a mass rebuild; will clean up with one later.
2017-09-21 15:49:18 -04:00
Tuomas Tynkkynen 0c0fad6141 treewide: Consistently call ARM 'arm'
No need for silly differences.
2017-08-24 01:17:01 +03:00
John Ericson ebc9b161cd gcc: Add configurePlatforms exception for Arm 32
...just as we did for binutils. When the underlying issue is resolved
(probably with a configure script patch or lib/systems/parse.nix
change), this should be reverted.
2017-08-23 14:38:08 -04:00
John Ericson 71186e7345 gcc: Use configurePlatforms to control --build, --host, and --target 2017-08-23 14:28:59 -04:00
Vladimír Čunát 956c266fb7
gcc49: remove Darwin patch that's included in 4.9 2017-08-20 10:30:34 +02:00
John Ericson b11889e6a4 gcc: Homogenize syntax in one small spot
Less noise in the diff help maintain these behemoths.
2017-08-18 14:03:48 -04:00
John Ericson 12795a7068 misc: Remove almost all uses of stdenv.{ccCross,binutils} 2017-06-22 17:53:52 -04:00
John Ericson 35ed21d096 gcc*: Replace stdenv.is* with {host,target}Platform.is*
Host everywhere would be guaranteed to preserve the old semantics,
but in a few places it doesn't matter in practice, target is used
instead for clarity.
2017-06-06 19:28:16 -04:00
Ross MacLeod e854685d65 gcc*: Remove cross argument and instead use hostPlatform and targetPlatform 2017-06-06 19:28:16 -04:00
John Ericson eaa509f33a stdenv: Rename isGNU to isHurd as GNU is a userland
Elsewhere, things called GNU indeed includes GNU/Linux or GNU/Hurd, but this
predicate was defined excluding Linux regardless of userland.
2017-05-22 13:55:26 -04:00
John Ericson 20fa6fd871 gcc: When cross compiling, always expect prefixed binutils
Previously this was just done on Darwin.
2017-05-17 15:33:05 -04:00
John Ericson 295315cc87 binutilsCross: Remove and use binutils instead always
See previous commit for what was done to `binutils` to make this
possible.

There were some uses of `forcedNativePackages` added. The
combination of overrides with that attribute is highly spooky: it's
often important that if an overridden package comes from it, the
replaced arguments for that package come from it. Long term this
package set and all the spookiness should be gone and irrelevant:

  "Move along, nothing to see here!"

No hashes should be changed with this commit
2017-04-25 21:36:19 -04:00
John Ericson a7068ace35 Rewrite a few stdenv.cross uses that *should* be targetPlatform
The previous commit redefines `stdenv.cross` for the sake of normal
libaries, the most common use-case of that attribute. Some compilers
however relied on the old definition so we have them use
`targetPlatform` instead. This special casing is fine because we
eventually want to remove `stdenv.cross` and use either `hostPlatform`
or `targetPlatform` instead.
2017-04-24 16:31:45 -04:00
Eelco Dolstra 42574f52b9
Remove references to $NIX_STRIP_DEBUG
This was removed in 3ea1c30846.
2017-02-05 11:08:32 +01:00
Vladimír Čunát 5de2857a54 gcc*: use stdenv.cc.libc instead of stdenv.libc
The latter doesn't exist on Linux.
2016-09-16 23:23:33 +02:00
Matthew Bauer 8610a34474
gcc: use special native system headers for darwin
Darwin systems need to be able to find CoreFoundation headers as well as
libc headers. Somehow, gcc doesn't accept any "framework" parameters
that would normally be used to include CoreFoundation in this
situation.

HACK: Instead, this adds a derivation that combines the two. The result
works but probably not a good long term solution.

ALTERNATIVES: Maybe sending patches in to GCC to allow
"native-system-framework" configure flag to get this found.
2016-09-15 17:58:09 -05:00
Matthew Bauer cf004ae56e
gcc: add --with-native-system-header-dir for clang
gcc needs to be able find system headers. Without this, gcc fails to build because
/usr/include is not available.

Note: stdenv.libc should be available for all stdenv's, I think.
2016-09-15 17:56:50 -05:00
Matthew Bauer f2e753a90c
gcc: fix gmp, mpfr includes
This should get gcc48, gcc5, and gcc6 working again.

Also: use makeLibraryPath, and makeSearchPathOutput for LIBRARY_PATH and
CPATH. This is a refactor but it also fixes an issue with zlib.
2016-09-15 17:56:50 -05:00
Matthew Bauer 45cd1ea620
gcc: --enable-bootstrap on Darwin
This seems to be working now. ISL needs to be disable for it to build
completely though.
2016-09-15 17:54:01 -05:00
Kirill Boltaev 0f37287df5 treewide: explicitly specify gtk version 2016-09-13 21:09:24 +03:00
Robin Gloster b7787d932e Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-08-12 09:46:53 +00:00
obadz 1cd9c58834 Merge pull request #17461 from rasendubi/powerpc
cross-compilation: fixes for powerpc-linux-uclibc
2016-08-11 00:51:51 +01:00
Lancelot SIX 8420753239
gcc49: 4.9.3 -> 4.9.4
Bugfix release of the 4.9 branch. See
http://lists.gnu.org/archive/html/info-gnu/2016-08/msg00001.html for
announcement
2016-08-05 00:01:15 +02:00
Alexey Shmalko a9bc2d530b
gcc: disable libsanitizer for uclibc
libsanitizer requires header files which are not present in uclibc.

Also, libsanitizer is disabled with uclibc for buildroot[1] and
openwrt[2].

[1]: https://git.busybox.net/buildroot/commit/?id=554e29e267e6b36a0fd78c82cbad2c82d939eb7f
[2]: 5f372a8ca0
2016-08-03 03:32:30 +03:00
Robin Gloster 5185bc1773 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-07-15 14:41:01 +00:00
Vladimír Čunát d3e599c9e1 Merge #16355: gcc: darwin support 2016-06-23 12:16:40 +02:00
Matthew Bauer f05bb6d23f gcc: fix darwin building
- disable bootstrap builds on Darwin
- remove xcrun calls
- check if patchelf is available before using
- apply darwin patch for gcc4.9
- fixes #16047
- fixes #14812
2016-06-19 23:07:10 -05:00
Tuomas Tynkkynen 5fe4076683 gcc: Pass --with-mpc in crossAttrs
Just for consistency, it should be already coming from buildInputs
anyway.
2016-06-10 16:17:30 +03:00
Eric Litak fa4fcaf6b4 darwin output paths 2016-05-31 16:28:05 -07:00
Eric Litak 89c9a8896b same changes to the rest. 4.5 has inf recursion still, 4.6 too old for glibc2.23 2016-05-31 16:28:05 -07:00
Robin Gloster 2d382f3d98 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-05-30 19:39:34 +00:00
Tuomas Tynkkynen e254750560 GCC: explicitly use some dev outputs 2016-05-19 10:04:41 +02:00
Tuomas Tynkkynen 3f8b08f506 treewide: Make explicit that 'dev' output of mpfr is used 2016-05-19 10:00:49 +02:00
Tuomas Tynkkynen 47c45e2041 treewide: Make explicit that 'dev' output of gmp is used 2016-05-19 10:00:36 +02:00
Franz Pletz f8d481754c
Merge remote-tracking branch 'origin/master' into hardened-stdenv 2016-05-18 17:10:02 +02:00
Peter Simons 8e462995ba Bring my stdenv.lib.maintainers user name in line with my github nick. 2016-05-16 22:49:55 +02:00
Robin Gloster d020caa5b2 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-18 13:49:22 +00:00
Michael Raskin 909a46ff77 Fix gccgo by un-splitting lib output (like gcj) 2016-04-16 08:42:20 +02:00
Michael Raskin cd5b677576 gcc49 (gcj): do not create separate lib output (cyclical dependency), fix ecj1 linking. Does not affect the hash of normal gcc49 2016-04-13 18:46:14 +02:00
Robin Gloster 7dea0e91ac gcc/isl: move bootstrap hardening flags to new bootstrap env 2016-03-28 19:17:23 +00:00
Vladimír Čunát 09af15654f Merge master into closure-size
The kde-5 stuff still didn't merge well.
I hand-fixed what I saw, but there may be more problems.
2016-03-08 09:58:19 +01:00
Franz Pletz aff1f4ab94 Use general hardening flag toggle lists
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
2016-03-05 18:55:26 +01:00
Robin Gloster 402d57ee8e bootstrap env: disable stackprotector hardening until gcc >=4.9 2016-02-22 18:32:53 +00:00
Robin Gloster bc21db3692 Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-02-19 21:16:14 +00:00
Josef Knedl 0fe58cade5 gcc: fix #12836: build on darwin
Patch is based on GCC Bug 66523:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66523
2016-02-17 09:42:10 +01:00
Robin Gloster f6d3b7a2ae switch hardening flags 2016-01-30 16:36:57 +00:00
Franz Pletz 954e9903ad Use a hardened stdenv by default 2016-01-30 16:36:57 +00:00
Vladimír Čunát 716aac2519 Merge branch 'staging' into closure-size 2016-01-19 09:55:31 +01:00
Eelco Dolstra 0db7ccb5c6 gcc: Respect $SOURCE_DATE_EPOCH 2016-01-05 17:21:48 +01:00
Vladimír Čunát 9d1343414a gcc: switch back to 4.9
Also sync a tiny difference in docs outputs from gcc-5.
I originally assumed that people will push gcc-5 support to master
long before closure-size gets there, but I overestimated the situation.
We haven't really settled even the issue of ABI switch,
so let's use the same gcc version on closure-size and master.
2015-12-31 10:34:58 +01:00
Luca Bruno 5b0352a6a4 Merge branch 'master' into closure-size 2015-12-11 18:31:00 +01:00
Danny Wilson f17dea3b3d Fix compilation of GCC 4.9 on SmartOS.
Fix ld-solaris-wrapper never calling ld (since gcc->cc-wrapper refactor).
2015-11-16 17:20:16 +01:00
Tuomas Tynkkynen 15471a8659 gcc: Do bootstrapped compilation on MIPS and ARM as well
Since the multiple-output changes building a non-bootstrapped gcc
doesn't work anymore. TODO: also test if cross compilation is broken
2015-10-03 14:08:50 +02:00
Tuomas Tynkkynen 8a460bf953 gcc 4.8, 4.9: Revert conflicting info output 2015-10-03 14:08:49 +02:00
Tuomas Tynkkynen 61b4bdded4 gcc 4.9: Port multiple-outputs changes from gcc 4.8 2015-10-03 14:08:49 +02:00
Vladimír Čunát 5227fb1dd5 Merge commit staging+systemd into closure-size
Many non-conflict problems weren't (fully) resolved in this commit yet.
2015-10-03 13:33:37 +02:00
Eelco Dolstra fd38b5fa49 Revert gcc darwin fixes
This reverts commits cb7c053383,
ebda45e6b9,
4a495cfbab because they broke Nixpkgs
evaluation.

http://hydra.nixos.org/build/24813270
2015-08-20 11:49:55 +02:00
Vladimír Čunát e46e461685 Revert "gfortran: disable parallel building"
This reverts commit 3d6bd6a1fa.
The problem wasn't fortran-specific and should be fixed now. See #9212.
2015-08-14 18:16:00 +02:00
Vladimír Čunát 0799ebf5b7 gcc: fix parallel building (fixes #9212)
Tested building 5-times on an idle 8-core.
2015-08-14 15:49:06 +02:00
Jude Taylor 46ab7db108 remove useless CFLAGS_FOR_BUILD from configure flags in gcc 2015-07-31 11:35:42 -07:00
Jude Taylor 4a495cfbab build gcc-4.9 on darwin 2015-07-31 11:35:42 -07:00
Peter Simons 3d6bd6a1fa gfortran: disable parallel building to avoid weird build failures
More details are at 784025c747 (commitcomment-12328357).
2015-07-24 16:56:46 +02:00
Vladimír Čunát 855b3c48ab gcc: fix multilib build
Fixes #8706, thanks to @cpages a lot.
Also ported to gcc5, without testing that one yet.
2015-07-20 12:32:01 +02:00
William A. Kennington III 9da5943cac gcc: 4.9.2 -> 4.9.3 2015-07-07 01:50:02 -07:00
William A. Kennington III 7eae48871f Merge branch 'master.upstream' into staging.upstream 2015-07-01 13:38:17 -07:00
Shea Levy 145768bf9b Unmaintain a bunch of packages 2015-07-01 08:11:05 -04:00
Eelco Dolstra 110b671c13 gcc: Put info in a separate output 2015-05-13 18:17:25 +02:00
Eelco Dolstra 7745c733eb gcc: Remove duplicate files 2015-05-12 15:05:01 +02:00
Eelco Dolstra e75b5351ac gcc-4.9: Sync with changes made to the 4.8 expression 2015-05-12 14:55:18 +02:00
Vladimír Čunát bf414c9d4f Merge 'staging' into closure-size
- there were many easy merge conflicts
- cc-wrapper needed nontrivial changes

Many other problems might've been created by interaction of the branches,
but stdenv and a few other packages build fine now.
2015-04-18 11:22:20 +02:00
Shea Levy e729dfbd3f gcc-4.9: Set isGNU
Fixes #6787
2015-03-13 12:47:17 -04:00
Vladimír Čunát a0bf07827b mpc: also rename the attribute to libmpc
Attrnames and package names should be as close as possible to avoid confusion.
I took care not to confuse the two mpc things during the mass-replace,
so hopefully I suceeded (tarball still builds).
2015-01-17 09:55:32 +01:00
Ludovic Courtès 41b53577a8 unmaintain a bunch of packages 2015-01-13 22:33:49 +01:00
John Wiegley 28b6fb61e6 Change occurrences of gcc to the more general cc
This is done for the sake of Yosemite, which does not have gcc, and yet
this change is also compatible with Linux.
2014-12-26 11:06:21 -06:00
Vladimír Čunát 4426d73ad8 gcc-4.9: maintenance update 2014-12-01 21:30:38 +01:00
Vladimír Čunát b4214da14e gcc_multi: sync the change to 4.6 and 4.9 as well 2014-11-13 22:38:57 +01:00
Eelco Dolstra 6de01e516d gcc-4.9: Remove obsolete mudflap flap 2014-10-07 16:06:20 +02:00
Vladimír Čunát 031baae714 Merge branch 'staging' into v/modular
Conflicts (as in p/modular-stdenv):
	pkgs/stdenv/linux/default.nix
2014-08-30 08:33:10 +02:00
Gergely Risko dd3f3bdcc2 GCC >= 4.8 doesn't depend on ppl 2014-08-29 11:45:22 +02:00
Vladimír Čunát 4dccb224c5 WIP2 2014-08-26 01:10:56 +02:00
Gergely Risko f199e115d2 Enable parallel building for GCC.
Even if using profiledbootstrap.  This was unsafe before 4.8, and
then the documentation was not fixed on time.

The documentation got fixed here:
  c763997f34

But the actual code was already fixed here:
  5d2fca09d5

So this is safe both for GCC 4.8 and GCC 4.9.
2014-08-13 23:21:33 +02:00
Mateusz Kowalczyk 7a45996233 Turn some license strings into lib.licenses values 2014-07-28 11:31:14 +02:00
Vladimír Čunát cbd8f7093b gcc49: maintenance update 2014-07-23 20:19:35 +02:00
Shea Levy a3b1f48c5d Add gcc-4.9.0 2014-04-23 10:45:00 -04:00