Commit Graph

174 Commits

Author SHA1 Message Date
Frederik Rietdijk
53d00c3351 Merge master into staging-next 2018-11-10 11:08:54 +01:00
Matthew Bauer
2e2afa1943 gcc/binutils: disable pie hardening
These don’t like having -fPIE set for them. We should disable
hardening all the time, but in the interest of not changing hashes,
this only disables it for Musl (where it is now the default).

(cherry picked from commit a3a6884649354a660326acd68c1bd08ffd2dcfa2)
2018-11-09 13:55:35 -06:00
Will Dietz
0c1b8e8770
Merge pull request #49455 from dtzWill/update/gcc-6.5
gcc6: 6.4.0 -> 6.5.0
2018-11-02 04:00:30 -05:00
Frederik Rietdijk
1d196d99be Merge staging-next into staging 2018-10-30 20:35:15 +01:00
Will Dietz
00a51a9669 gcc6: don't apply patches included in update to 6.5 2018-10-30 07:48:07 -05:00
Will Dietz
d2e78403a8 gcc6: 6.4.0 -> 6.5.0
http://lists.gnu.org/archive/html/info-gnu/2018-10/msg00003.html
2018-10-30 07:43:01 -05:00
Matthew Bauer
412093994b gcc: support avr
- respect libc’s incdir and libdir
- make non-unix systems single threaded
- set LIMITS_H_TEST to false for avr
- misc updates to support new libc’s
- use multilib with avr

For threads we want to use:
- posix on unix systems
- win32 on windows
- single on everything else

For avr:
- add library directories for avrlibc
- to disable relro and bind
- avr5 should have precedence over avr3 - otherwise gcc uses the wrong one
2018-10-29 14:34:09 -05:00
Michael Raskin
4a854344b7
Merge pull request #48721 from oxij/tree/mass-rebuild-complicated-cleanups
treewide: mass rebuild complicated cleanups
2018-10-29 19:17:28 +00:00
Jan Malakhovski
eae890db12 gcc-*: homogenize and cleanup expressions with a mass rebuild 2018-10-21 18:26:37 +00:00
John Ericson
c701d6cb21 Merge remote-tracking branch 'upstream/master' into staging 2018-09-25 14:20:27 -04:00
Will Dietz
fecd326399 gcc{5,6,7,8}: share libgomp patch, propagate musl config flags 2018-09-25 00:08:17 -05:00
John Ericson
b1d518206a
Merge pull request #46127 from obsidiansystems/gcc-crossStageStatic-cleanup
gcc-*: Clean up crossStageStatic logic
2018-09-25 00:01:28 -04:00
Jan Malakhovski
e0b5919197 gcc-*: homogenize and cleanup expressions without a rebuild
Looks scary but it is a noop.
2018-09-23 20:56:19 +00:00
John Ericson
b14db1b0ba gcc-*: Clean up crossStageStatic logic
54282b9610 tread carefuly to avoid a mass
rebuild. This embraces the mass rebuild to clean things up.
2018-09-23 17:30:32 +00:00
John Ericson
2091133e78 gcc: Clarify Disabling libmpx in cross stage static
This isn't a MUSL thing, but just needed for cross compilation to x86.
No one had tried this when all cross compilation was to linux + glibc,
hence why no one noticed this until recently.
2018-09-18 16:27:04 -04:00
John Ericson
d68a9d9db9 gcc-*: Clean up crossStageStatic logic
54282b9610 tread carefuly to avoid a mass
rebuild. This embraces the mass rebuild to clean things up.
2018-09-07 13:30:30 -04:00
John Ericson
0828e2d8c3 treewide: Remove usage of remaining redundant platform compatability stuff
Want to get this out of here for 18.09, so it can be deprecated
thereafter.
2018-08-30 17:20:32 -04:00
Jörg Thalheim
9efffe0135 hurd: cleanup unmaintained target
This has been not touched in 6 years. Let's remove it to cause less
problems when adding new cross-compiling infrastructure.
This also simplify gcc significantly.
2018-08-28 22:18:02 +01:00
Lluís Batlle i Rossell
66d7126255 Take me (viric) out of most maintenance
Since years I'm not maintaining anything of the list below other
than some updates when I needed them for some reason. Other people
is doing that maintenance on my behalf so I better take me out but
for very few packages. Finally!
2018-07-22 21:50:19 +02:00
volth
52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
volth
87f5930c3f [bot]: remove unreferenced code 2018-07-20 18:48:37 +00:00
John Ericson
01a525b84e Merge remote-tracking branch 'upstream/master' into staging 2018-05-14 13:31:20 -04:00
John Ericson
bf7d1bae20 Merge remote-tracking branch 'upstream/master' into gcc-hurd-condition 2018-05-14 13:15:06 -04:00
John Ericson
3a9654bfe2 gcc: Simplify this old Hurd condition
Steps towards getting rid of crossConfig.
2018-05-14 13:13:11 -04:00
John Ericson
d00cc1242f
Merge pull request #40040 from obsidiansystems/gnu-config-arm
gnu-config: Update, allowing hacks to be removed
2018-05-14 11:20:09 -04:00
John Ericson
f2b575bd7b Merge remote-tracking branch 'upstream/master' into gnu-config-arm 2018-05-14 10:58:15 -04:00
John Ericson
f472dd7652 Revert "Revert "gcc, binutils: Get rid of 32-bit ARM configure flag exception""
And there's more reverts too. The previous commmit
d838afbc9376bdadb8c690eb00b425f3eeccdf2d to gnu-config finally solves
it!

This reverts commit 3ed545ab31.
2018-05-14 10:55:32 -04:00
John Ericson
ee4b56edd3 Merge remote-tracking branch 'upstream/master' into staging 2018-05-11 14:36:08 -04:00
John Ericson
f18ddabee7 Merge remote-tracking branch 'upstream/master' into lib-float 2018-05-10 18:13:00 -04:00
John Ericson
c9f6a82b61 gcc: Factor out "platform flags" 2018-05-10 18:00:57 -04:00
John Ericson
1d90ea9194
Merge pull request #40294 from obsidiansystems/no-crossAttrs
misc packages: Fewer crossAttrs
2018-05-10 14:38:58 -04:00
John Ericson
c42118bb82 gcc: Get rid of crossAttrs
Only a little bit was left
2018-05-10 14:19:38 -04:00
Matthew Justin Bauer
eeb016e8f0
Merge branch 'staging' into fix-ncurses-darwin-extensions 2018-05-02 15:40:38 -05:00
John Ericson
591d8c7a19
Merge pull request #39458 from oxij/stdenv/beautifications
stdenv: better names for cc and bintools
2018-04-26 11:41:18 -04:00
John Ericson
b9acfb4ecf treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile

(cherry picked from commit ba52ae5048)
2018-04-25 15:50:41 -04:00
John Ericson
ba52ae5048 treewide: isArm -> isAarch32
Following legacy packing conventions, `isArm` was defined just for
32-bit ARM instruction set. This is confusing to non packagers though,
because Aarch64 is an ARM instruction set.

The official ARM overview for ARMv8[1] is surprisingly not confusing,
given the overall state of affairs for ARM naming conventions, and
offers us a solution. It divides the nomenclature into three levels:

```
ISA:             ARMv8   {-A, -R, -M}
                 /    \
Mode:     Aarch32     Aarch64
             |         /   \
Encoding:   A64      A32   T32
```

At the top is the overall v8 instruction set archicture. Second are the
two modes, defined by bitwidth but differing in other semantics too, and
buttom are the encodings, (hopefully?) isomorphic if they encode the
same mode.

The 32 bit encodings are mostly backwards compatible with previous
non-Thumb and Thumb encodings, and if so we can pun the mode names to
instead mean "sets of compatable or isomorphic encodings", and then
voilà we have nice names for 32-bit and 64-bit arm instruction sets
which do not use the word ARM so as to not confused either laymen or
experienced ARM packages.

[1]: https://developer.arm.com/products/architecture/a-profile
2018-04-25 15:28:55 -04:00
Jan Malakhovski
7438083a4d tree-wide: disable doCheck and doInstallCheck where it fails (the trivial part) 2018-04-25 04:18:46 +00:00
Jan Malakhovski
2afd3c901e gcc: prepend crossNameAddon instead of appending it (like binutils does) 2018-04-25 00:41:14 +00:00
Shea Levy
c69d8bf5e6
treewide: Remove gnat support.
See discussion in 6ac7b19c97.
2018-03-08 13:56:36 -05:00
Will Dietz
9bd4e00ce3 gcc6: cross-musl disable libmpx 2018-02-13 09:45:03 -06:00
Will Dietz
fbf41b9ee2 gcc6: try to fix LOCAL_INCLUDE_DIR problem w/musl 2018-02-13 09:44:38 -06:00
Will Dietz
5eea9e82f4 gcc6: try patching MUSL_DYNAMIC_LINKER as well 2018-02-13 09:44:38 -06:00
Will Dietz
ece06deee4 gcc6: try to fix gccCrossStageStati 2018-02-13 09:44:38 -06:00
Will Dietz
15d401dcfa gcc: disable libsanitizer, libgomp on musl 2018-02-13 09:44:38 -06:00
Ben Gamari
d625f181bd autoconf: Enable cross-compilation 2018-02-13 09:44:28 -06:00
John Ericson
c98e6b6771 gcc, binutils: Narrow down ARM hack so only native builds are affected 2018-01-09 17:25:49 -05:00
Drew Hess
3ed545ab31
Revert "gcc, binutils: Get rid of 32-bit ARM configure flag exception"
This commit breaks native armv7l-linux builds. Revert it until it can
be root-caused. This reversion does not affect other platforms or
cross-compiling.

This reverts commit 0f5c804631.
2018-01-08 20:03:33 -08:00
John Ericson
4ad9a97e96 gcc: Don't let solaris hack pollute CC elsehwere 2017-12-30 22:04:22 -05:00
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
bc23afe5c7 gcc: Add build->build dep for C compilers
5 already had this, but I forgot the other versions.
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
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
703a9f93c1 gcc6: Restore missing platform flags
This was missed in commit 1c1207220f
("gcc: Refactor treatment of configure flags"), all other GCC versions
have it right.
2017-11-29 23:09:17 +02:00
Tuomas Tynkkynen
d7a0695c43 gcc7: Reduce diff to gcc6 2017-11-29 23:09:17 +02: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
Piotr Bogdan
7112718a20 gcj: fix build with glibc 2.26 2017-11-09 20:50:21 +00:00
John Ericson
0101856765
Merge pull request #30549 from obsidiansystems/bintools
treewide: Introduce stdenv.cc.bintools
2017-11-08 14:20:48 -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
Vladimír Čunát
0c01c58aec
gcc6: fix build with new glibc, by upstream patches 2017-11-05 19:09:53 +01:00
Vladimír Čunát
80c57fd96a
gcj, gccgo: port fixes for 4.9 to 6
Tested that pdftk builds on linux again, and gccgo6 builds hello-world.
The default gcc doesn't rebuild.
2017-09-28 21:52:28 +02: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
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
261cbdbe19
gcc6: port darwin changes from 5.x 2017-08-17 21:00:05 +02:00
Eelco Dolstra
07176ed6f1
gcc: 6.3.0 -> 6.4.0 2017-07-04 18:39:18 +02: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
Dan Peebles
0cacae6a5f gcc6: fix for LLVM 4.0 2017-04-06 23:20:35 -04:00
Eelco Dolstra
42574f52b9
Remove references to $NIX_STRIP_DEBUG
This was removed in 3ea1c30846.
2017-02-05 11:08:32 +01:00