commit: 0bf8c2d99027d3173fc0ead689be6ce9347d9d9d
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 5 15:49:18 2022 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Nov 5 15:49:18 2022 +0000
URL: https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=0bf8c2d9
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 <AT> gentoo.org>
...5.1-r4.ebuild => binutils-config-5.1-r5.ebuild} | 0
sys-devel/binutils-config/files/ldwrapper.c | 1 +
.../files/gcc-config-2.7-gcc-libs-ordered.patch | 24 ++++++++++++++++++++++
...-config-2.7.ebuild => gcc-config-2.7-r1.ebuild} | 1 +
sys-devel/gcc/gcc-12.2.0.ebuild | 3 ++-
5 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/sys-devel/binutils-config/binutils-config-5.1-r4.ebuild
b/sys-devel/binutils-config/binutils-config-5.1-r5.ebuild
similarity index 100%
rename from sys-devel/binutils-config/binutils-config-5.1-r4.ebuild
rename to 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
similarity index 97%
rename from sys-devel/gcc-config/gcc-config-2.7.ebuild
rename to 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)