[PATCH 54/94] sys-libs/glibc: more hurd fixes, now amd64

Sam James <[email protected]>
Newsgroups gmane.linux.gentoo.devel
Message-ID <a39eae943ecb352c12a5a801baf41323c28a2032.1774994331.git.sam@gentoo.org>
From: Andreas K. Hüttel <[email protected]>

Signed-off-by: Andreas K. Hüttel <[email protected]>
Signed-off-by: Sam James <[email protected]>
---
 sys-libs/glibc/glibc-2.42-r5.ebuild | 21 ++++++++++++++++-----
 sys-libs/glibc/glibc-2.43.ebuild    | 21 ++++++++++++++++-----
 sys-libs/glibc/glibc-9999.ebuild    | 21 ++++++++++++++++-----
 3 files changed, 48 insertions(+), 15 deletions(-)

diff --git a/sys-libs/glibc/glibc-2.42-r5.ebuild b/sys-libs/glibc/glibc-2.42-r5.ebuild
index 95b782d7b5963..dccdc68f967db 100644
--- a/sys-libs/glibc/glibc-2.42-r5.ebuild
+++ b/sys-libs/glibc/glibc-2.42-r5.ebuild
@@ -1549,14 +1549,25 @@ glibc_do_src_install() {
 		done
 	fi
 
-	if is_hurd && has x86 $(get_install_abis) ; then
-		# On ix86, glibc and (unpatched) gcc disagree about the proper location for the dynamic loader.
-		# Which is maximally stupid since this one information is hardcoded into every single
-		# binary...
+	# On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for
+	# the dynamic loader. Which is maximally stupid since this one information is hardcoded
+	# into every single binary, and even if we were to fix *our* gcc it could still prevent
+	# us from running binaries prepared anywhere else...
+
+	if is_hurd && has amd64 $(get_install_abis) ; then
+		# First, let's check for sanity
+		if [[ -f "$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then
+			die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen."
+		fi
 
+		# Then make a compatibility symlink.
+		dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1"
+	fi
+
+	if is_hurd && has x86 $(get_install_abis) ; then
 		# First, let's check for sanity
 		if [[ -f "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then
-			die "Somehow your hurd glibc installed a literal ld.so ... this should not happen."
+			die "Somehow your x86 hurd glibc installed ld.so ... this should not happen."
 		fi
 
 		# Then make a compatibility symlink.
diff --git a/sys-libs/glibc/glibc-2.43.ebuild b/sys-libs/glibc/glibc-2.43.ebuild
index 698ac7a24dbce..7c72868843ed1 100644
--- a/sys-libs/glibc/glibc-2.43.ebuild
+++ b/sys-libs/glibc/glibc-2.43.ebuild
@@ -1573,14 +1573,25 @@ glibc_do_src_install() {
 		done
 	fi
 
-	if is_hurd && has x86 $(get_install_abis) ; then
-		# On ix86, glibc and (unpatched) gcc disagree about the proper location for the dynamic loader.
-		# Which is maximally stupid since this one information is hardcoded into every single
-		# binary...
+	# On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for
+	# the dynamic loader. Which is maximally stupid since this one information is hardcoded
+	# into every single binary, and even if we were to fix *our* gcc it could still prevent
+	# us from running binaries prepared anywhere else...
+
+	if is_hurd && has amd64 $(get_install_abis) ; then
+		# First, let's check for sanity
+		if [[ -f "$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then
+			die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen."
+		fi
 
+		# Then make a compatibility symlink.
+		dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1"
+	fi
+
+	if is_hurd && has x86 $(get_install_abis) ; then
 		# First, let's check for sanity
 		if [[ -f "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then
-			die "Somehow your hurd glibc installed a literal ld.so ... this should not happen."
+			die "Somehow your x86 hurd glibc installed ld.so ... this should not happen."
 		fi
 
 		# Then make a compatibility symlink.
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 5575e2deff0f7..14b0d5f56c72b 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -1573,14 +1573,25 @@ glibc_do_src_install() {
 		done
 	fi
 
-	if is_hurd && has x86 $(get_install_abis) ; then
-		# On ix86, glibc and (unpatched) gcc disagree about the proper location for the dynamic loader.
-		# Which is maximally stupid since this one information is hardcoded into every single
-		# binary...
+	# On Hurd, glibc and (unpatched) gcc tend to disagree about the proper location for
+	# the dynamic loader. Which is maximally stupid since this one information is hardcoded
+	# into every single binary, and even if we were to fix *our* gcc it could still prevent
+	# us from running binaries prepared anywhere else...
+
+	if is_hurd && has amd64 $(get_install_abis) ; then
+		# First, let's check for sanity
+		if [[ -f "$(alt_prefix)/lib/ld-x86-64.so.1" ]] ; then
+			die "Somehow your amd64 hurd glibc installed /lib/ld-x86-64.so.1 ... this should not happen."
+		fi
 
+		# Then make a compatibility symlink.
+		dosym ../lib64/ld-x86-64.so.1 "$(alt_prefix)/lib/ld-x86-64.so.1"
+	fi
+
+	if is_hurd && has x86 $(get_install_abis) ; then
 		# First, let's check for sanity
 		if [[ -f "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so" ]] ; then
-			die "Somehow your hurd glibc installed a literal ld.so ... this should not happen."
+			die "Somehow your x86 hurd glibc installed ld.so ... this should not happen."
 		fi
 
 		# Then make a compatibility symlink.
-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.