| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
graphite (isl) might be used for the just-built GCC. It's easier to just
respect USE=graphite for the USE=jit minimal build in case the user passes some
graphite flags rather than try strip them out.
(The build would fail otherwise as the just-built GCC, even with --disable-bootstrap
for the JIT build, would be invoked as ./xgcc ... -fgraphite-identity ... and
error out in configure.)
Reported by ano on IRC.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
New in GCC 14.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
enough GCC too
Even if it's OK for the stage1 compiler, it may not be later.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
filter too
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
compilers too
If we're *building* an older GCC, then these flags won't be supported later
on during the boostrap process, so filter them out.
Also, pass -fno-control-flow-redundancy given it makes the compiler unbearably
slow (on a 3950x, it went from 2.5hours for pgo+lto+checking to 6+ hours) and it
doesn't really benefit us there anyway.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
| |
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Pass --disable-fixincludes for newer GCCs for USE=jit (still need to try
disable it in general when we can, but we had to turn it on for a bit because
of newer glibc) as it's pointless there.
* Disable a bunch of other options for the JIT build, imported from my local
script for bisecting GCC.
* While at it, use an array for the configure args for the JIT build and just
use emake -C.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
| |
Upstream are fine with bootstrapping with -O3, so don't strip it out if the user
set it, even with USE=-custom-cflags.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Build stage1 compiler with user's CFLAGS. This consistently ends up
saving at least 15 minutes for me on a fast amd64 machine and should save
more on slower machines and architectures.
There's only any risk here if the host compiler is ancient/very buggy and
even then, you get a failed bootstrap later on. The GCC developers, per the
linked bug, end up using STAGE1_CFLAGS="-O2" anyway to speed up the process
so it's not like this is untested at all.
mattst88 actually brought this up.. 10 years ago (bug #477548). Let's try
make that right now.
* Respect LDFLAGS for target libraries for native builds. Not touching this
for cross builds, at least for now, as it's a bit more delicate.
(Unfortunately, we have to put a hack in here for now until we can fix
multilib.eclass - see bug #914881).
Bug: https://gcc.gnu.org/PR111619
Bug: https://bugs.gentoo.org/914881
Closes: https://bugs.gentoo.org/477548
Closes: https://bugs.gentoo.org/831423
Closes: https://bugs.gentoo.org/840392
Apologies-to: Matt Turner <mattst88@gentoo.org>
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reported by the-horo on IRC.
For example, with slot as major version:
```
$ gcc-config -c x86_64-pc-linux-gnu
x86_64-pc-linux-gnu-13
$ gcc-config -S x86_64-pc-linux-gnu-13
x86_64-pc-linux-gnu 13
```
so we're indeed comparing 13 with 13.2 and hence we decide to run gcc-config
unnecessarily because we think it's a major version change.
Fix that by taking into account tc_use_major_version_only and comparing
based on GCCMAJOR for that case.
Bug: https://bugs.gentoo.org/865835
Bug: https://bugs.gentoo.org/873505
Reported-by: the-horo
Closes: https://github.com/gentoo/gentoo/pull/33042
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Closes: https://bugs.gentoo.org/912292
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
We already do this for gdb and binutils, do the same for gcc. Portage/econf only greps
the top-level configure which has neither of these, but the subconfigure dirs
do.
There's been problems in the past upstream here, see e.g. https://gcc.gnu.org/PR55930,
but seems fine now.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Followup to a606b978be638005c9b832a733d087dbc97ae6d0.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
Had a report on IRC where bootstrap-cet was being used for a cross-compiler
which seems wrong even if it's a bit odd that --disable-bootstrap doesn't
win with it. Add a guard as we don't need any of the bootstrap-* targets
for cross.
Thanks to Ionen for spotting.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
It's (surprisingly to me) not a compound word.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
| |
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
I don't see an immediate way to only disable this for crossdev stage1, so just
disable it entirely for cross for now.
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100289
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
| |
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
See also b26f3f99faabc3574cd3510bc1f57b90bdf585e9.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
I've got no idea why I added that indirection before.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
Thanks to Dirk Sondermann for pointing out the precise issue.
Closes: https://bugs.gentoo.org/908550
Fixes: a606b978be638005c9b832a733d087dbc97ae6d0
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
| |
None of the ebuilds inheriting toolchain in EAPI 7 needs any of the
remaining eutils features.
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
| |
See also https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=f9de5c24b9a6172d48786289035eed8f947c04c1.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
If you need this, please use toolchain-legacy.eclass from the ::toolchain
repository.
Closes: https://github.com/gentoo/gentoo/pull/31362
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
No need for a subshell.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Cygwin supported already dropped from Prefix and the rest of the tree.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
| |
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unfortunately, we have to use -j1 for make install. Upstream
don't really test it and there's not much appetite for fixing bugs
with it. Several reported bugs exist where the resulting image
was wrong, rather than a simple compile/install failure:
This reverts commit db0387530cf744068f480b68a192d4fc10a81286.
Closes: https://bugs.gentoo.org/906155
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42980
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51814
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103656
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109898
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
| |
Followup to e6dd349ea37663f3e3a6ce1df3fd9f7cf18e20cd.
Closes: https://bugs.gentoo.org/906007
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
These don't seem to be necessary at all now:
- we don't sed info pages anymore because GCC has support for setting
the bug URL + distributor now
- there's info pages in other directories than gcc/ (e.g. libgccjit)
With 12.3.0, I had without this:
```
* CMP: =sys-devel/gcc-12.2.1_p20230505 with sys-devel/gcc-12.3.0/image
* FILES:-usr/share/gcc-data/x86_64-pc-linux-gnu/12/info/gfortran.info
* FILES:-usr/share/gcc-data/x86_64-pc-linux-gnu/12/info/libgccjit.info
* ------> FILES(-2) ABI(TIMEOUT)
```
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Bug: https://bugs.gentoo.org/215828
Bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35855
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
ebuilds
Without this, gcc --version ends up only showing the commit resulting from
applying our patches on top.
With this fixed, gcc --version shows both the upstream commit & the commit hash
after applying patches.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
| |
This should be set in profiles going forward, not in toolchain.eclass.
Bug: https://bugs.gentoo.org/890999
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
for 13
- Wire up modula-2 frontend support for GCC 13 as USE=modula2
- Drop Rust for GCC 13, upstream are going to make it fatal for configure
for 13.1, but may revisit for 13.2 (not sure how likely that is, though, it depends
on how much ends up backported). Rust will be available for GCC 14 though. We will
revisit if changes occur, of course.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
Followup to 85db50a7c626a1844c8eb2d03051c8c5d320c205.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
| |
We now do --enable-checking=yes,extra,rtl after discussion in #gcc for USE=debug.
If rtl is too slow, we can do just yes,etra.
We've actually found yet another bug with our general change for snapshots
to start using checking, too: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109506.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Note that this only affects actually-non-released compilers like GCC 13
at this point in time and *not* snapshots from the stable branches.
Upstream default to more checking (asserts/runtime integrity checks) when
'gcc/DEV-PHASE' contains 'experimental'. Copy that and defer to the configure.ac
default when it does.
The practical upshot of this is that we go from --enable-checking=release
for GCC 13 to --enable-checking=yes,extra.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
| |
Thanks to codespell.
Signed-off-by: Sam James <sam@gentoo.org>
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
| |
This avoids globbing, see: https://www.shellcheck.net/wiki/SC2223
Signed-off-by: Ulrich Müller <ulm@gentoo.org>
|
|
|
|
|
|
|
|
|
| |
mirror://gnu doesn't always have snapshots, but mirror://gcc do. See
https://gcc.gnu.org/mirrors.html.
Needed because of the ongoing gnu.org DNS and availability issues.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
| |
Otherwise we can't disable it for some targets. Followup to
970f09a488afafe27152255d4343ff59acc94415.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
| |
It doesn't support LTO and fails in stage1 crossdev.
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Closes: https://github.com/gentoo/gentoo/pull/30061
Signed-off-by: David Seifert <soap@gentoo.org>
|
|
|
|
|
|
|
| |
This behavior is relied on elsewhere, for setting BDEPENDs correctly.
Fixes: a39d1669ca0f4 ("toolchain.eclass: adjust D dep for non-gcc")
Signed-off-by: Arsen Arsenović <arsen@gentoo.org>
|
|
|
|
| |
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Standalone prefix has always configured gcc with a sysroot, but the
location of this sysroot is different at build time when
cross-compiling. gcc has a separate configure option for that.
prefix-guest systems do not have a sysroot applied, as they use the
host's libc.
Move this code from the prefix profile into the eclass so that it's less
of a special case. We can avoid relying on the `BOOTSTRAP_RAP_STAGE2`
variable by checking for the `prefix-guest` USE flag instead, as a
prefix-guest profile is now used for RAP stage 2.
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
USE=hardened will now imply:
- default -D_FORTIFY_SOURCE=3 (instead of 2 for normal profiles)
- default -D_GLIBCXX_ASSERTIONS
Bug: https://bugs.gentoo.org/876895
Bug: https://bugs.gentoo.org/884417
Bug: https://bugs.gentoo.org/847148
Bug: https://bugs.gentoo.org/876893
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
| |
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
| |
Fixes: adf44514cf590a860b3140efae31187854cf8cea
Signed-off-by: Sam James <sam@gentoo.org>
|
|
|
|
|
|
|
|
| |
12.2.1_p20221203
Bug: https://bugs.gentoo.org/675050
Bug: https://bugs.gentoo.org/876923
Signed-off-by: Sam James <sam@gentoo.org>
|