[PATCH 51/94] sys-libs/glibc: more hurd fixes

Sam James <[email protected]>
Newsgroups gmane.linux.gentoo.devel
Message-ID <83541a568f72febd84281272fc7d765f89fcc683.1774994330.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 | 16 +++++++++++++++-
 sys-libs/glibc/glibc-2.43.ebuild    | 16 +++++++++++++++-
 sys-libs/glibc/glibc-9999.ebuild    | 16 +++++++++++++++-
 3 files changed, 45 insertions(+), 3 deletions(-)

diff --git a/sys-libs/glibc/glibc-2.42-r5.ebuild b/sys-libs/glibc/glibc-2.42-r5.ebuild
index b85dd9ecfdfa0..95b782d7b5963 100644
--- a/sys-libs/glibc/glibc-2.42-r5.ebuild
+++ b/sys-libs/glibc/glibc-2.42-r5.ebuild
@@ -1510,7 +1510,7 @@ glibc_do_src_install() {
 		local ldso_abi_list=(
 			# x86
 			amd64   /lib64/ld-x86-64.so.1
-			x86     /lib/ld.so
+			x86     /lib/ld.so.1
 		)
 	fi
 	if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
@@ -1549,6 +1549,20 @@ 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...
+
+		# 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."
+		fi
+
+		# Then make a compatibility symlink.
+		dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so"
+	fi
+
 	# With devpts under Linux mounted properly, we do not need the pt_chown
 	# binary to be setuid.  This is because the default owners/perms will be
 	# exactly what we want.
diff --git a/sys-libs/glibc/glibc-2.43.ebuild b/sys-libs/glibc/glibc-2.43.ebuild
index a84ae1e4630b3..698ac7a24dbce 100644
--- a/sys-libs/glibc/glibc-2.43.ebuild
+++ b/sys-libs/glibc/glibc-2.43.ebuild
@@ -1534,7 +1534,7 @@ glibc_do_src_install() {
 		local ldso_abi_list=(
 			# x86
 			amd64   /lib64/ld-x86-64.so.1
-			x86     /lib/ld.so
+			x86     /lib/ld.so.1
 		)
 	fi
 	if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
@@ -1573,6 +1573,20 @@ 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...
+
+		# 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."
+		fi
+
+		# Then make a compatibility symlink.
+		dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so"
+	fi
+
 	# With devpts under Linux mounted properly, we do not need the pt_chown
 	# binary to be setuid.  This is because the default owners/perms will be
 	# exactly what we want.
diff --git a/sys-libs/glibc/glibc-9999.ebuild b/sys-libs/glibc/glibc-9999.ebuild
index 9e678b1a7ec81..5575e2deff0f7 100644
--- a/sys-libs/glibc/glibc-9999.ebuild
+++ b/sys-libs/glibc/glibc-9999.ebuild
@@ -1534,7 +1534,7 @@ glibc_do_src_install() {
 		local ldso_abi_list=(
 			# x86
 			amd64   /lib64/ld-x86-64.so.1
-			x86     /lib/ld.so
+			x86     /lib/ld.so.1
 		)
 	fi
 	if [[ ${SYMLINK_LIB} == "yes" ]] && [[ ! -e ${ED}/$(alt_prefix)/lib ]] ; then
@@ -1573,6 +1573,20 @@ 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...
+
+		# 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."
+		fi
+
+		# Then make a compatibility symlink.
+		dosym ld.so.1 "$(alt_prefix)/$(get_abi_LIBDIR x86)/ld.so"
+	fi
+
 	# With devpts under Linux mounted properly, we do not need the pt_chown
 	# binary to be setuid.  This is because the default owners/perms will be
 	# exactly what we want.
-- 
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.