From 30137dd367eb67b349411d61249af97fade40f2f Mon Sep 17 00:00:00 2001 From: Manolis Ragkousis Date: Mon, 29 Jun 2015 19:12:51 +0300 Subject: [PATCH] gnu: base: Build glibc-hurd for i586-pc-gnu instead of i686-pc-gnu. With this commit "guix build bootstrap-tarballs --target=i586-pc-gnu" produces working static binaries. * gnu/packages/base.scm (glibc/hurd, glibc/hurd-headers): Change i686-pc-gnu to i586-pc-gnu. * gnu/packages/cross-base.scm (cross-libc): Same. * gnu/packages/hurd.scm (gnumach-headers, hurd-headers): Same. * gnu/packages/patches/glibc-hurd-libs.patch: New patch. --- gnu/packages/base.scm | 9 ++++++--- gnu/packages/cross-base.scm | 2 +- gnu/packages/hurd.scm | 4 ++-- gnu/packages/patches/glibc-hurd-libs.patch | 24 ++++++++++++++++++++++++ 4 files changed, 33 insertions(+), 6 deletions(-) diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 05cbd66..811e334 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -629,7 +629,10 @@ with the Linux kernel.") (arguments (substitute-keyword-arguments (package-arguments glibc/linux) ((#:configure-flags original-configure-flags) - `(append (list "--host=i686-pc-gnu" + `(append (list "--host=i586-pc-gnu" + + ;; We need this to get a working openpty() function. + "--enable-pt_chown" ;; nscd fails to build for GNU/Hurd: ;; . @@ -651,7 +654,7 @@ with the Linux kernel.") "Return the glibc for TARGET, GLIBC/LINUX for a Linux host or GLIBC/HURD for a Hurd host" (match target - ("i686-pc-gnu" glibc/hurd) + ("i586-pc-gnu" glibc/hurd) (_ glibc/linux))) (define-syntax glibc @@ -764,7 +767,7 @@ command.") ;; We just pass the flags really needed to build the headers. ((#:configure-flags _) `(list "--enable-add-ons" - "--host=i686-pc-gnu" + "--host=i586-pc-gnu" "--enable-obsolete-rpc")) ((#:phases _) '(alist-replace diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 6e9d544..e3b4f4b 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -385,7 +385,7 @@ XBINUTILS and the cross tool chain." ;; Choose libc based on target (match target - ("i686-pc-gnu" + ("i586-pc-gnu" (package (inherit glibc/hurd) (name (string-append "glibc-hurd-cross-" target)) (arguments diff --git a/gnu/packages/hurd.scm b/gnu/packages/hurd.scm index 43e8b1d..24cac25 100644 --- a/gnu/packages/hurd.scm +++ b/gnu/packages/hurd.scm @@ -58,7 +58,7 @@ ;; least install its headers when not cross-compiling. ,@(if (%current-target-system) '() - '(#:configure-flags '("--build=i686-pc-gnu"))) + '(#:configure-flags '("--build=i586-pc-gnu"))) #:tests? #f)) (home-page "https://www.gnu.org/software/hurd/microkernel/mach/gnumach.html") (synopsis "GNU Mach kernel headers") @@ -126,7 +126,7 @@ communication.") ;; that. ,@(if (%current-target-system) '() - '("--host=i686-pc-gnu")) + '("--host=i586-pc-gnu")) ;; Reduce set of dependencies. "--disable-ncursesw" diff --git a/gnu/packages/patches/glibc-hurd-libs.patch b/gnu/packages/patches/glibc-hurd-libs.patch index cae1a40..2102f77 100644 --- a/gnu/packages/patches/glibc-hurd-libs.patch +++ b/gnu/packages/patches/glibc-hurd-libs.patch @@ -17,3 +17,27 @@ See mv -f address@hidden $@ endif + +hurd-i386 defines NO_HIDDEN, thus __GI_* versions are not available. +This was introduced by +https://sourceware.org/bugzilla/show_bug.cgi?id=15605 + +See . + +--- + symbol-hacks.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) +Index: eglibc-2.18/sysdeps/generic/symbol-hacks.h +=================================================================== +--- eglibc-2.18.orig/sysdeps/generic/symbol-hacks.h 2013-06-15 17:37:04.000000000 +0000 ++++ eglibc-2.18/sysdeps/generic/symbol-hacks.h 2013-10-10 06:28:31.000000000 +0000 +@@ -1,6 +1,9 @@ + /* Some compiler optimizations may transform loops into memset/memmove + calls and without proper declaration it may generate PLT calls. */ + #if !defined __ASSEMBLER__ && !defined NOT_IN_libc && defined SHARED ++#include ++# if !defined NO_HIDDEN + asm ("memmove = __GI_memmove"); + asm ("memset = __GI_memset"); ++# endif + #endif -- 2.4.4