Commit Graph

708 Commits

Author SHA1 Message Date
r-burns
188dad47ca
Merge pull request #135360 from r-burns/gcc-musl-libgomp
gcc: enable libgomp for musl targets
2021-09-23 17:22:21 -07:00
Vladimír Čunát
c5f4e54e1d
Merge #135692: pkgsCross.avr.buildPackages.gcc: work around
... for log limit on hydra
2021-09-05 16:47:18 +02:00
polykernel
ca20a96b5f treewide: concatStrings (intersperse ...) -> concatStringsSep ...
Update all usage of lib.concatStrings (lib.intersperse ...) to
lib.concatStringsSep. This produces the same result as per https://github.com/NixOS/nixpkgs/pull/135843,
however it yields a performance benefit on Nix versions that
support the builtins.concatStringsSep primop.
2021-08-28 11:57:59 -04:00
sternenseemann
d01533ceab pkgsCross.avr.buildPackages.gcc{10,11}: avoid log limit on hydra
When upgrading from gcc 9 to 10, avr-gcc started to hit the hydra log
limit, preventing the binary cache from being populated.

This commit tries to workaround this issue by passing `-s` to make for
avr-gcc 10 and 11 which seem to exhibit this problem.

Reference #135605.
2021-08-26 00:36:58 +02:00
Ryan Burns
ccc96a4c44 gcc: enable libgomp for musl targets
libgomp has been disabled on musl since musl support was first added to
nixpkgs (15d401dcfa), but seems to work
fine. Tested down to gcc 6 (gcc 4.8 already doesn't build for musl)
2021-08-22 20:44:51 -07:00
Ryan Burns
7364241a6a gcc: update powerpc-specific configuration
* support -m32 on (big-endian) powerpc64-linux
* fix compilation to powerpc*-musl targets with
  incomplete decimal-float support
2021-08-16 19:42:10 -07:00
sternenseemann
1508ea5708 gnat{6,9,10,11}: don't build libada when building a cross compiler
According to https://wiki.osdev.org/GNAT_Cross-Compiler building
libada is not possible when building a cross compiler. Unfortunately I
haven't been able to determine if this is upstream's position as well,
but sure enough disabling libada lets us build a GNAT cross compiler.
2021-07-28 12:44:49 +02:00
sternenseemann
d3e05d191f gnat{6,9,10,11}: move gnatboot into nativeBuildInputs 2021-07-28 12:44:49 +02:00
Alyssa Ross
77f3a9a3aa gcc: broaden platforms
Okay, GCC might not technically support _every_ platform in
platforms.unix, but I think it would be easier to subtract those as
they're discovered, if that even matters, rather than trying to
exhaustively list every Unix it does support.

(I ran into this because I wanted to build GCC for NetBSD, which it
definitely supports.)
2021-06-09 10:28:01 +00:00
Patrick Hilhorst
3e91f422fd
gcc11: use maintainer team 2021-05-24 15:02:14 +02:00
Patrick Hilhorst
c913e53bdb
gcc*: use maintainer team 2021-05-24 15:01:05 +02:00
Jonathan Ringer
f7a112f6c4
Merge remote-tracking branch 'origin/master' into staging-next
Conflicts:
  pkgs/applications/graphics/emulsion/default.nix
  pkgs/development/tools/misc/texlab/default.nix
  pkgs/development/tools/rust/bindgen/default.nix
  pkgs/development/tools/rust/cargo-udeps/default.nix
  pkgs/misc/emulators/ruffle/default.nix
  pkgs/tools/misc/code-minimap/default.nix
2021-05-18 08:57:16 -07:00
sternenseemann
2d176b593b gcc*: force building a cross compiler if host and target platform differ
gcc's configure system has the nasty habit (for us) of judging for
itself if it is building a cross compiler (or cross compiling), but on
the limited information of the build, host and target platforms' config
which only contains a subset of the information we encode in
`stdenv.*Platform`. The practical consequence was that prior to this
change building `pkgsLLVM.buildPackages.gcc` actually fails because it
refuses to use `--with-headers` with something it believes to not be a
cross compiler.

As a workaround we force the appropriate variable in the configure
script to always be `yes` regardless of its own conditional check.

At some point we probably should report this issue in some capacity, so
future gcc versions don't force us into workarounds like this and
acdc783418.
2021-05-18 00:16:54 +02:00
Vladimír Čunát
8eabe2ecc5
Merge #115235: gcc: native aarch64-darwin support 2021-05-11 12:12:04 +02:00
Vladimír Čunát
79762fcb4a
Merge #121772: gcc*: do not modify code in prePatch 2021-05-11 12:01:38 +02:00
Ivan Babrou
4aa95e3312 gcc: native aarch64-darwin support 2021-05-10 19:07:30 -07:00
github-actions[bot]
61fa3fdde8
Merge master into staging-next 2021-05-10 18:28:17 +00:00
Ivan Babrou
99d0c004d1 gcc6, gcc7, gcc8, gcc9, gcc10, gcc11: do not modify code in prePatch
Doing any modifications before patching risks invalidating patch base.
2021-05-04 22:53:21 -07:00
Ivan Babrou
8cf144d139 gnat11: extract gnat-cflags-11.patch from gnat-cflags.patch 2021-05-04 20:14:01 -07:00
github-actions[bot]
c6548b2832
Merge staging-next into staging 2021-04-30 06:21:40 +00:00
Ivan Babrou
d75d0b9c62 gcc11: init at 11.0.0
Pretty much copy-pasted from gcc10 with changed version and sha256.
2021-04-29 22:05:32 -07:00
Vladimír Čunát
537d9687d1
Merge #119219: gcc10: 10.2 -> 10.3 (into staging) 2021-04-29 10:38:18 +02:00
Arnout Engelen
48c952c039
Merge pull request #112928 from baloo/baloo/gcc/reproducible
stdenv: provide a deterministically built gcc
2021-04-26 11:07:34 +02:00
github-actions[bot]
cdece2032d
Merge staging-next into staging 2021-04-22 18:14:30 +00:00
Alyssa Ross
407e448114 gcc8,gcc9: fix ctypes on NetBSD
This patch was applied to gcc7 in aab8c7ba43 ("netbsd: add cross target"),
but it hasn't been brought forward to newer compilers that have the
same problem.

GCC 6 and (probably) GCC 4.9 also have the issue, but the patch
doesn't apply cleanly to them so I'm leaving them alone for now.

GCC 10, our current default, appears to have finally fixed this.
2021-04-22 12:23:55 +00:00
github-actions[bot]
ea5bd4364e
Merge staging-next into staging 2021-04-19 18:11:54 +00:00
Alyssa Ross
7eb3d024ae
gcc: don't build libssp on NetBSD
On NetBSD, this is provided by libc, and the GCC version clashes with it.
Disabling it matches the behaviour of pkgsrc on NetBSD.

Fixes: https://github.com/NixOS/nixpkgs/issues/119839
2021-04-19 14:11:05 +00:00
sternenseemann
acdc783418 gcc*: always force --program-prefix and pass --target
Don't rely on gcc detecting from the passed platforms which prefix to
use, but always specify the prefix nixpkgs expects (or doesn't). This
allows us to work around problems where the configure script would add
prefix where nixpkgs doesn't expect one (if `--target` was specified,
but the same as `--host`) or doesn't add one if nixpkgs expects one (if
`--target` and `--host` are the same, but we are actually cross
compiling, but the relevant parts of the platform are not encoded into
the platform config.

See also ca9be0511b.
2021-04-16 22:54:05 +02:00
Tobias Mayer
d09936ea84
gcc10: 10.2 -> 10.3 2021-04-12 12:22:31 +02:00
John Ericson
e6ca7b6e5b
Merge pull request #113747 from r-burns/nixpkgs-gcc-decfloat
gcc: don't disable decimal-float when cross-compiling
2021-03-21 13:27:43 -04:00
Arthur Gautier
a961aeadae stdenv: provide a deterministically built gcc
Signed-off-by: Arthur Gautier <baloo@superbaloo.net>
2021-03-01 05:06:39 +00:00
Jörg Thalheim
766246c6df
Merge pull request #112843 from r-burns/gcc-ppc-m32
gcc: support -m32 on ppc64le
2021-02-27 22:23:36 +00:00
adisbladis
a439e0ef6e
gcc10: Pass langJit to preConfigure
This should fix libgccjit on darwin.
2021-02-26 12:10:44 +02:00
Ryan Burns
f74c281386 gcc: don't disable decimal-float when cross-compiling
This causes some minor ugliness during stdenv bootstrap on powerpc64le
using cross-compiled bootstrap tools. MPFR wants to use decimal floats
by default so they have to be manually disabled in the configure flags
when using cross-compiled bootstrap tools.

The lineage of this particular configure flag traces back to 2010 (!)
It was added in commit: 9b1d5353a9
I've built various cross bootstrap tools and they seem to work fine,
so I don't think this is needed anymore.
2021-02-19 18:42:25 -08:00
Symphorien Gibol
d68dee04b7 gcc: fix cross compilation to musl32 2021-02-12 21:11:16 +01:00
Walter Franzini
733d24b50b add stackprotector support on musl32
In order to support stackprotector on musl32, this change import a
couple of patches from alpinelinux:
1. libssp_nonshared.a is built alongside musl's libc
2. the above library is automatically linked when compiling with gcc6
   or gcc7
2021-02-12 21:11:16 +01:00
Ryan Burns
f2ac16ec28 gcc: support -m32 on ppc64le
This is needed to build grub2 for powerpc64le hosts. Running powerpcle code
on powerpc64le is somewhat analogous to running multiarch i686 code on x86_64,
so it's also useful to have in general.
2021-02-11 17:33:24 -08:00
John Ericson
5fc5e83808
Merge pull request #111345 from r-burns/ppc64-big-endian
Enable PPC64 (big-endian)
2021-01-30 16:26:06 -05:00
Ryan Burns
5530a3adbe gcc: fix powerpc64-linux
Long-double-128 is a hardware feature independent of endianness
2021-01-30 12:34:30 -08:00
github-actions[bot]
2137c13b40
Merge master into staging-next 2021-01-27 12:24:05 +00:00
Ben Siraphob
3bbad8b041 treewide: remove inherited stdenv.lib 2021-01-27 12:44:43 +07:00
Jan Tojnar
01ee4ea574
Merge branch 'master' into staging-next 2021-01-24 00:09:45 +01:00
John Ericson
12881a7aa7
Merge pull request #110544 from Ericson2314/no-platform
top-level, lib: Remove platform attribute of platforms
2021-01-23 16:32:36 -05:00
John Ericson
9c213398b3 lib: Clean up how linux and gcc config is specified
Second attempt of 8929989614589ee3acd070a6409b2b9700c92d65; see that
commit for details.

This reverts commit 0bc275e634.
2021-01-23 10:01:28 -05:00
github-actions[bot]
58752914f4
Merge master into staging-next 2021-01-23 12:40:13 +00:00
Ben Siraphob
acc5f7b18a pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
Jonathan Ringer
0bc275e634
Revert "lib: Clean up how linux and gcc config is specified"
This is a stdenv-rebuild, and should not be merged
into master

This reverts commit 8929989614.
2021-01-22 14:07:06 -08:00
John Ericson
8929989614 lib: Clean up how linux and gcc config is specified
The `platform` field is pointless nesting: it's just stuff that happens
to be defined together, and that should be an implementation detail.

This instead makes `linux-kernel` and `gcc` top level fields in platform
configs. They join `rustc` there [all are optional], which was put there
and not in `platform` in anticipation of a change like this.

`linux-kernel.arch` in particular also becomes `linuxArch`, to match the
other `*Arch`es.

The next step after is this to combine the *specific* machines from
`lib.systems.platforms` with `lib.systems.examples`, keeping just the
"multiplatform" ones for defaulting.
2021-01-21 22:44:09 -05:00
Matthew Bauer
4bdcddf9aa gcc: allow stripping gcc libraries
When cross compiling to the same kernel / arch combination, it is safe
to use strip of libraries. This happens when cross-compiling musl
programs. dontStrip is now set in each gcc compiler instead of in
gcc/builder.sh.

Fixes #75476
2021-01-21 16:25:48 -06:00
Jonathan Ringer
9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00