summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabian Groffen <grobian@gentoo.org>2022-11-05 16:49:18 +0100
committerFabian Groffen <grobian@gentoo.org>2022-11-05 16:49:18 +0100
commit0bf8c2d99027d3173fc0ead689be6ce9347d9d9d (patch)
treea23d53373c7805f1390b989893678b72d3aadb67
parentscripts/bootstrap-prefix: bump snapshot for new macOS profile (diff)
downloadprefix-0bf8c2d99027d3173fc0ead689be6ce9347d9d9d.tar.gz
prefix-0bf8c2d99027d3173fc0ead689be6ce9347d9d9d.tar.bz2
prefix-0bf8c2d99027d3173fc0ead689be6ce9347d9d9d.zip
sys-devel/gcc-config-2.7-r1: add patch for order of GCC libs
This ensures that most recent GCC libs are used for the backup GCC libaries. Signed-off-by: Fabian Groffen <grobian@gentoo.org>
-rw-r--r--sys-devel/binutils-config/binutils-config-5.1-r5.ebuild (renamed from sys-devel/binutils-config/binutils-config-5.1-r4.ebuild)0
-rw-r--r--sys-devel/binutils-config/files/ldwrapper.c1
-rw-r--r--sys-devel/gcc-config/files/gcc-config-2.7-gcc-libs-ordered.patch24
-rw-r--r--sys-devel/gcc-config/gcc-config-2.7-r1.ebuild (renamed from sys-devel/gcc-config/gcc-config-2.7.ebuild)1
-rw-r--r--sys-devel/gcc/gcc-12.2.0.ebuild3
5 files changed, 28 insertions, 1 deletions
diff --git a/sys-devel/binutils-config/binutils-config-5.1-r4.ebuild b/sys-devel/binutils-config/binutils-config-5.1-r5.ebuild
index 36bc85a317..36bc85a317 100644
--- a/sys-devel/binutils-config/binutils-config-5.1-r4.ebuild
+++ b/sys-devel/binutils-config/binutils-config-5.1-r5.ebuild
diff --git a/sys-devel/binutils-config/files/ldwrapper.c b/sys-devel/binutils-config/files/ldwrapper.c
index 6bcb2a5e72..1b5fa19ad3 100644
--- a/sys-devel/binutils-config/files/ldwrapper.c
+++ b/sys-devel/binutils-config/files/ldwrapper.c
@@ -461,6 +461,7 @@ main(int argc, char *argv[])
if (!is_cross) {
if (is_darwin) {
/* FIXME: no support for cross-compiling *to* Darwin */
+ newargv[k++] = "-L" EPREFIX "/usr/" CHOST "/lib/gcc";
newargv[k++] = "-L" EPREFIX "/usr/lib";
newargv[k++] = "-L" EPREFIX "/lib";
diff --git a/sys-devel/gcc-config/files/gcc-config-2.7-gcc-libs-ordered.patch b/sys-devel/gcc-config/files/gcc-config-2.7-gcc-libs-ordered.patch
new file mode 100644
index 0000000000..e15e83015f
--- /dev/null
+++ b/sys-devel/gcc-config/files/gcc-config-2.7-gcc-libs-ordered.patch
@@ -0,0 +1,24 @@
+prefix_copy_gcc_libs: try and get latest libs copied last
+
+Try to get the most recent GCC libs copied to the shared place. We need
+the latest because they should be backwards compatible, thus also work
+with older binaries.
+
+--- gcc-config-2.7/gcc-config
++++ gcc-config-2.7/gcc-config
+@@ -619,8 +619,13 @@
+ rmdir "${sourcedir}"
+ }
+
+- # We don't rely on iteration order here.
+- local GCC_PROFILES=$(LC_ALL="C" ls ${GCC_ENV_D}/${CHOST}-*)
++ # We want the latest version to provide the final link to an object,
++ # for gcc's libs should be backwards compatible, so use sort -V to
++ # get that ordering -- take into account that sort may not support
++ # -V (yet). Then it is better to just do whatever order ls reports.
++ local srt='sort --version-sort'
++ sort --help | grep -q -- --version-sort || srt='cat'
++ local GCC_PROFILES=$(LC_ALL="C" ls ${GCC_ENV_D}/${CHOST}-* | ${srt})
+
+ local targetdirs= GCC_PATH= LDPATH=
+ for x in ${GCC_PROFILES} ; do
diff --git a/sys-devel/gcc-config/gcc-config-2.7.ebuild b/sys-devel/gcc-config/gcc-config-2.7-r1.ebuild
index a1ecb1a2b2..94cc8b75cf 100644
--- a/sys-devel/gcc-config/gcc-config-2.7.ebuild
+++ b/sys-devel/gcc-config/gcc-config-2.7-r1.ebuild
@@ -23,6 +23,7 @@ RDEPEND=">=sys-apps/gentoo-functions-0.10"
PATCHES=(
"${FILESDIR}"/${PN}-1.8-copy-gcc-libs-darwin.patch
"${FILESDIR}"/${PN}-1.9-cygwin.patch
+ "${FILESDIR}"/${PN}-2.7-gcc-libs-ordered.patch
)
_emake() {
diff --git a/sys-devel/gcc/gcc-12.2.0.ebuild b/sys-devel/gcc/gcc-12.2.0.ebuild
index 1cb1b0da53..59b639d041 100644
--- a/sys-devel/gcc/gcc-12.2.0.ebuild
+++ b/sys-devel/gcc/gcc-12.2.0.ebuild
@@ -13,8 +13,9 @@ inherit toolchain
# Don't keyword live ebuilds
if ! tc_is_live && [[ -z ${TOOLCHAIN_USE_GIT_PATCHES} ]] ; then
-# fails to compile on Solaris and macOS, need to check why
+ # fails to compile on Solaris and macOS, need to check why
: KEYWORDS="~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+ KEYWORDS="~x64-macos"
fi
# use alternate source for Apple M1 (also works for x86_64)