guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

10/20: gnu: base: Build glibc-hurd for i586-pc-gnu instead of i686-pc-gn


From: Manolis Fragkiskos Ragkousis
Subject: 10/20: gnu: base: Build glibc-hurd for i586-pc-gnu instead of i686-pc-gnu.
Date: Thu, 11 Feb 2016 13:38:16 +0000

phant0mas pushed a commit to branch wip-hurd
in repository guix.

commit f69fd15973a1ea3e5d41afce9ab86b4dad93d28d
Author: Manolis Ragkousis <address@hidden>
Date:   Mon Jun 29 19:12:51 2015 +0300

    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                      |    6 ++++--
 gnu/packages/patches/glibc-hurd-libs.patch |   24 ++++++++++++++++++++++++
 4 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 66f8f8d..94fc6c1 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -690,7 +690,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:
                        ;; 
<https://lists.gnu.org/archive/html/bug-hurd/2014-07/msg00006.html>.
@@ -714,7 +717,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
@@ -835,7 +838,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 3e4d60d..30f39c3 100644
--- a/gnu/packages/cross-base.scm
+++ b/gnu/packages/cross-base.scm
@@ -402,7 +402,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 f7ac771..1e79197 100644
--- a/gnu/packages/hurd.scm
+++ b/gnu/packages/hurd.scm
@@ -58,7 +58,9 @@
       ;; least install its headers when not cross-compiling.
       ,@(if (%current-target-system)
           '()
-          '(#:configure-flags '("--build=i686-pc-gnu")))
+          ;; See 
<http://lists.gnu.org/archive/html/bug-hurd/2015-06/msg00042.html>
+          ;; 
<http://lists.gnu.org/archive/html/guix-devel/2015-06/msg00716.html>
+          '(#: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 +128,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 
<http://lists.gnu.org/archive/html/bug-hurd/2011-03/msg00112.html>
        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 <http://lists.gnu.org/archive/html/bug-hurd/2015-06/msg00046.html>.
+
+---
+ 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 <config.h>
++#  if !defined NO_HIDDEN
+ asm ("memmove = __GI_memmove");
+ asm ("memset = __GI_memset");
++#  endif
+ #endif



reply via email to

[Prev in Thread] Current Thread [Next in Thread]