me
/
guix
Archived
1
0
Fork 0

gnu: glibc: Fix ldd path on powerpc*.

This should avoid some problems, such as "not a dynamic executable" errors.

* gnu/packages/patches/glibc-ldd-powerpc.patch: New patch.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/base.scm: (glibc)[native-inputs]: Add it.
[arguments]: When building for powerpc* apply it.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash,
glibc-final)[native-inputs]: Add patch conditionally.

This patch has been adjusted to apply to master.

Signed-off-by: Chris Marusich <cmmarusich@gmail.com>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
master
Leo Le Bouter 2021-02-06 20:02:31 +01:00 committed by Chris Marusich
parent cac88b28b8
commit 6e98e9ca92
No known key found for this signature in database
GPG Key ID: DD409A15D822469D
4 changed files with 35 additions and 2 deletions

View File

@ -1121,6 +1121,7 @@ dist_patch_DATA = \
%D%/packages/patches/glibc-hurd-mach-print.patch \
%D%/packages/patches/glibc-hurd-magic-pid.patch \
%D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch \
%D%/packages/patches/glibc-ldd-powerpc.patch \
%D%/packages/patches/glibc-ldd-x86_64.patch \
%D%/packages/patches/glibc-locales.patch \
%D%/packages/patches/glibc-locales-2.28.patch \

View File

@ -5,7 +5,7 @@
;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2014 Alex Kost <alezost@gmail.com>
;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis <manolis837@gmail.com>
;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2017, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2016, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Rene Saavedra <rennes@openmailbox.org>
@ -15,6 +15,8 @@
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Vitaliy Shatrov <D0dyBo0D0dyBo0@protonmail.com>
;;; Copyright © 2020 Chris Marusich <cmmarusich@gmail.com>
;;; Copyright © 2021 Leo Le Bouter <lle-bout@zaclys.net>
;;;
;;; This file is part of GNU Guix.
;;;
@ -890,6 +892,14 @@ the store.")
files)))
#t)))
,@(if (target-powerpc?)
'((add-after 'unpack 'apply-patch
(lambda* (#:key inputs #:allow-other-keys)
(let ((patch (assoc-ref inputs
"powerpc64le-patch")))
(invoke "patch" "--force" "-p1"
"-i" patch)))))
'())
,@(if (hurd-target?)
'((add-after 'install 'augment-libc.so
(lambda* (#:key outputs #:allow-other-keys)
@ -911,6 +921,10 @@ the store.")
("gettext" ,gettext-minimal)
("python" ,python-minimal)
,@(if (target-powerpc?)
`(("powerpc64le-patch" ,@(search-patches
"glibc-ldd-powerpc.patch")))
'())
,@(if (hurd-target?)
`(("mig" ,mig)
("perl" ,perl))

View File

@ -3313,7 +3313,11 @@ memoized as a function of '%current-system'."
`(("bison" ,bison-boot0)
("texinfo" ,texinfo-boot0)
("perl" ,perl-boot0)
("python" ,python-boot0)))
("python" ,python-boot0)
,@(if (target-powerpc?)
`(("powerpc64le-patch" ,@(search-patches
"glibc-ldd-powerpc.patch")))
'())))
(inputs
`( ;; The boot inputs. That includes the bootstrap libc. We don't want
;; it in $CPATH, hence the 'pre-configure' phase above.
@ -3464,6 +3468,10 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%"
;; This time we need 'msgfmt' to install all the libc.mo files.
(native-inputs `(,@(package-native-inputs glibc-final-with-bootstrap-bash)
,@(if (target-powerpc?)
`(("powerpc64le-patch" ,@(search-patches
"glibc-ldd-powerpc.patch")))
'())
("gettext" ,gettext-boot0)))
(propagated-inputs

View File

@ -0,0 +1,10 @@
diff -r -U3 a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed
--- a/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed 1970-01-01 01:00:00.000000000 +0100
+++ b/sysdeps/unix/sysv/linux/powerpc/ldd-rewrite.sed 2020-02-29 00:15:41.080000000 +0100
@@ -11,5 +11,5 @@
# this works for /lib64/ld64.so.x and /lib/ld.so.x as input
s_lib64_lib_
s_64\.so_\.so_
-s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \164\264\3"_
+s_^RTLDLIST=\(.*lib\)\(/[^/]*\)\(\.so\.[0-9.]*\)[[:blank:]]*$_RTLDLIST="\1\2\3 \1\264\3"_