3
0
Fork 0
forked from mirrors/nixpkgs
Commit graph

159 commits

Author SHA1 Message Date
John Ericson 0f5c804631 gcc, binutils: Get rid of 32-bit ARM configure flag exception
Now that we do `--enable-targes=all`, there is no risk of missing the
needed emulation.

This reverts commit ebc9b161cd.
This reverts commit 88efc22b44.
2017-12-30 22:04:22 -05:00
John Ericson 9cda2f5559 gcc: Fix deps, for cross and consistency
Mainly making sure we have tools to build target libs
2017-12-30 22:04:22 -05:00
John Ericson 114a9b6253 gcc: Let cc-wrapper's setup hook define any tool env vars we need 2017-12-30 22:04:21 -05:00
John Ericson 5b74540c5b treewide: Use depsBuildBuild for buildPackges.stdenv.cc 2017-12-30 22:04:21 -05:00
John Ericson 5db559f855 Merge branch 'mingw32-w64-fix' into ericson2314-cross-base 2017-12-29 15:46:02 -05:00
John Ericson bc3a6e260a Merge commit '3afe325a3e2f906ba512fb7a2f28f79496711592' into mingw32-w64-fix 2017-12-29 15:28:56 -05:00
John Ericson 5d336d36bb Merge commit 'e82bd498d1a2a28fb20249569a6f49fcaab9aca8' into mingw32-w64-fix 2017-12-29 15:28:49 -05:00
John Ericson 169227bfd2 Merge commit '3a59cd87f26cc59c91fb821749b1ec0d64922f87' into mingw32-w64-fix 2017-12-29 14:24:10 -05:00
John Ericson 2365e2ffcd Merge commit '51948eab9415fde1825dea5c7d31b99b2e1a0fdb' into mingw32-w64-fix 2017-12-29 14:23:05 -05:00
Bojan Nikolic 771bae04e8 gcc: Enable SSP and shared libs in the final stage for MinGW
Hardening on by default now that we don't use the cross wrapper. In
turn, hardening requires libssp in particular.
2017-12-29 13:27:02 -05:00
John Ericson 12e0672d88 gcc: Adjust builder.sh to find some things in bintools-wrapper instead 2017-12-13 16:08:19 -05:00
John Ericson 3afe325a3e Merge commit '43d5c5d6db3ce33f3cf1d17ba43c7374257466ec' into gcc-modernize-builder 2017-12-07 02:19:04 -05:00
John Ericson e82bd498d1 Merge commit '992bd2f6d34b2f560fc17df6fa3708fcade1abac' into gcc-modernize-builder 2017-12-07 02:13:24 -05:00
John Ericson 3a59cd87f2 Merge commit '93cd0685c5ac4d8f21d8586d3e5c45cd7394fab9' into gcc-modernize-builder 2017-12-07 01:49:31 -05:00
John Ericson 51948eab94 gcc: Fix after merge
- NIX_CC_CROSS is now completely gone!

- NIX_CC is defined reliably, so no manual def needed

- stdenv.ccCross -> stdenv.cc, also removing need for "or" fallback
2017-12-07 01:42:43 -05:00
John Ericson 974b9201a5 Merge commit 'c9ca54199409324101bdee38f5b16e7656a16a22' into gcc-modernize-builder 2017-12-07 01:42:35 -05:00
John Ericson d96cf0f46c gcc: Handle CPATH and LIBRARY_PATH purely in Nix 2017-12-06 19:12:51 -05:00
John Ericson d4595b38e9 gcc: Modernize builder.sh for Cross
Instead of `NIX_CC` vs `NIX_CC_CROSS` spagetti, unconditionally use
`NIX_BUILD_CC` and `NIX_CC` in a consistent manner.
2017-12-06 19:12:50 -05:00
John Ericson 43d5c5d6db Merge commit '703a9f93c1254f7bdf0350ca0462de0d78033c62' into gcc-simplify-flags 2017-12-05 17:58:16 -05:00
John Ericson 992bd2f6d3 Merge commit 'ab77a6bb1e7d2ff475210ad392f1a9bd1bb6ba3a' into gcc-simplify-flags 2017-12-05 17:41:15 -05:00
John Ericson 93cd0685c5 Merge commit '71186e73455a4e06e96a31da34b76f84e545ba1f' into gcc-simplify-flags 2017-12-05 17:09:41 -05:00
John Ericson c9ca541994 Merge commit '198dceccbe5414a5fd72ca83624c0cc715db1aad' into gcc-simplify-flags 2017-12-05 16:55:11 -05:00
John Ericson a3e35fbbe1 gcc: Use platformFlags in crossConfigureFlags
A nice code deduplication
2017-12-05 14:01:18 -05:00
John Ericson 1fe9798ac2 lib, gcc: No inherit (platform) gcc; in {host,build,target}Platform 2017-12-05 13:52:20 -05:00
John Ericson 74cbb5796e gcc: Get rid of crossAttrs.configureFlags 2017-12-04 20:50:59 -05:00
John Ericson cabfe1885f gcc: Don't try to enable plugins with host != build 2017-12-04 16:27:18 -05:00
John Ericson 2fdca4db69 gcc: Lock down more tools for cross-builds
That is, build != host == target
2017-12-04 16:27:18 -05:00
Tuomas Tynkkynen aa3d195a30 gcc5: Reduce diff to gcc6 2017-11-29 23:09:16 +02:00
John Ericson ab77a6bb1e gcc: Misc indentation and whitespace-in-string fixes 2017-11-14 18:32:50 -05:00
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 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
Will Dietz a4d5586d47 gcc: 5.4.0 -> 5.5.0
Switch to xz since there is no bz2 variant (apparently)
2017-11-01 06:00:28 -05:00
John Ericson 1dd63de9a0 Merge some Master PRs into staging
No native hashes should be changed
2017-09-21 20:11:59 -04: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
Vladimír Čunát 16cf448933
gettext, gcc5: enable stackprotector now
This has been forgotten in #29349 ?
2017-09-19 17:52:32 +02: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
John Ericson 0a4d102b98 gcc 5: Don't quote propagatedBuildInputs in ?-check for consistency
Forgot to do this in last commit.
2017-08-18 14:09:24 -04: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
Daiderd Jordan 6e245440d4
gcc: remove CPP workaround 2017-08-16 21:38:41 +02:00
Daiderd Jordan 206faacbcb
gcc: fix clang build
Fixes #27889

This works properly now that LD_DYLD_PATH is fixed
2017-08-13 17:58:18 +02:00
Daiderd Jordan d93c636737
Revert "gcc: fix clang build"
This fixes the gcc build but results in a gcc that doesn't generate
valid binaries.

gcc -o hello hello.c
./hello
Killed: 9

This reverts commit 2adf36ab8c.
2017-08-09 21:37:29 +02:00
Daiderd Jordan 2adf36ab8c
gcc: fix clang build 2017-08-08 23:22:24 +02:00
Ross MacLeod 198dceccbe gcc5: set --build and --host in the case where those differ and make sure to have a build cc-wrapper around as well 2017-06-22 17:53:55 -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 761af14778 Merge pull request #25227 from obsidiansystems/cross-purge-binutilsCross
Purge binutilsCross
2017-04-26 09:09:06 -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 75441dd64a Merge pull request #25194 from obsidiansystems/host-target-unconfuse
stdenv.cross is a silly attribute that needs to go leaving the well-defined hostPlatform and targetPlatform. This PR doesn't remove it, but changes its definition: before it tracked the target platform which is sometimes more useful for compilers, and now it tracks the host platform which is more useful for everything else. Most usages are libraries, falling in the "everything else" category, so changing the definition makes sense to appease the majority. The few compiler (gcc in particular) uses that exist I remove to use targetPlatform --- preserving correctness and becoming more explicit in the process.

I would also update the documentation aside mentioning stdenv.cross as deprecated, but the definition given actually erroneously assumes this PR is already merged!
2017-04-24 19:07:48 -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
Daiderd Jordan 9896cf1028
gcc: include dylibs for darwin build 2017-04-04 23:53:39 +02:00
Dan Peebles a2a82db7cf gfortran/gcc: simplify & clean up on Darwin
This should eliminate the branched logic for gfortran on Darwin, as well
as preventing accidental inclusion of impure paths in gcc and gfortran
builds.
2017-03-21 01:36:28 -04:00
Dan Peebles 6ea3eefdfc gcc5: fix for libc++ 3.8 and above
This is in preparation for the big Darwin LLVM 4.0 stdenv switchover
2017-03-19 16:22:12 -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
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
Vladimír Čunát ab450c0909 gcc: fixup the tarball job after merging #15867
The evaluation problem happened in while checking find-tarballs.nix
http://hydra.nixos.org/build/36754203/nixlog/1/raw
(it didn't seem worth digging into why exactly)
2016-06-11 09:59:39 +02: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
Vladimír Čunát 46f22d89b9 Merge #15867: glibc, gcc: fixes for ARM targets
... needed after closure-size merge (#7701)
2016-06-10 09:57:17 +02:00
Vladimír Čunát 772c92ba5c gcc: maintenance 5.3 -> 5.4 2016-06-09 13:22:09 +02:00
Eric Litak fa4fcaf6b4 darwin output paths 2016-05-31 16:28:05 -07:00
Eric Litak 7399d0949c fixing libcCross related flags
(excluding darwin and mingw for now)
2016-05-31 16:28:04 -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
Robin Gloster 3e68106afd Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-04-07 21:52:26 +00:00
Vladimír Čunát d1df28f8e5 Merge 'staging' into closure-size
This is mainly to get the update of bootstrap tools.
Otherwise there were mysterious segfaults:
https://github.com/NixOS/nixpkgs/pull/7701#issuecomment-203389817
2016-04-07 14:40:51 +02:00
Vladimír Čunát ab15a62c68 Merge branch 'master' into closure-size
Beware that stdenv doesn't build. It seems something more will be needed
than just resolution of merge conflicts.
2016-04-01 10:06:01 +02:00
Eelco Dolstra 60f07e8e10 Revert "gcc: Use the pre-C++11 ABI by default"
This reverts commit 83011723af. This
never worked because gcc's setup hook is never actually sourced. I
could fix this but since nobody complained, we probably don't need it.
2016-03-31 12:30:54 +02:00
Robin Gloster 7dea0e91ac gcc/isl: move bootstrap hardening flags to new bootstrap env 2016-03-28 19:17:23 +00:00
Robin Gloster f60c9df0ba Merge remote-tracking branch 'upstream/master' into hardened-stdenv 2016-03-28 15:16:29 +00: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
Eelco Dolstra 83011723af gcc: Use the pre-C++11 ABI by default 2016-02-28 17:54:11 +01:00
Robin Gloster c0f673af32 gcc5: switch off hardening_format 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 f9f6f41bff Merge branch 'master' into closure-size
TODO: there was more significant refactoring of qtbase and plasma 5.5
on master, and I'm deferring pointing to correct outputs to later.
2015-12-31 09:53:02 +01:00
Lancelot SIX 4cf6fef6fc pkgs.gcc5: 5.2.0 -> 5.3.0
gcc-5.3.0 is a bug-fix release from the GCC 5 branch.

See https://lists.gnu.org/archive/html/info-gnu/2015-12/msg00002.html
2015-12-12 14:41:53 +01:00
Vladimír Čunát 333d69a5f0 Merge staging into closure-size
The most complex problems were from dealing with switches reverted in
the meantime (gcc5, gmp6, ncurses6).
It's likely that darwin is (still) broken nontrivially.
2015-11-20 14:32:58 +01:00
Vladimír Čunát efcad4c910 gcc5: split $doc into $man and $info
... because cc-wrapper is meant to propagate man pages into user envs,
and info pages are rather large.

Also replace the duplicate g++ and gcc man1 pages by a symlink.
2015-10-28 10:15:55 +01:00
Vladimír Čunát f361938b21 Merge staging into closure-size
This makes gcc5 the default builder, etc.
2015-10-03 15:23:13 +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
Jude Taylor ebda45e6b9 add darwin gcc fixes to gcc 5 2015-08-02 14:38:25 -07:00