all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Manolis Ragkousis <manolis837@gmail.com>
To: "Ludovic Courtès" <ludo@gnu.org>
Cc: Guix-devel <Guix-devel@gnu.org>
Subject: [PATCH] gnu: base: Build glibc-hurd for i586-pc-gnu instead of i686-pc-gnu.
Date: Mon, 29 Jun 2015 19:43:53 +0300	[thread overview]
Message-ID: <CAFtzXzNqGreiPW6J7uTxr6_3WhN6SJGQuaO=TuUK_0CxT4WTJw@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 303 bytes --]

With this patch we can produce working static binaries for a Hurd system.

We had to change it to use i586, because the default i686 variant
introduces bugs.

And when building for i586, we had the no_hidden issue so I had to
apply the patch
for that.

Next is the patch for make-bootstrap.scm

Manolis

[-- Attachment #2: 0001-gnu-base-Build-glibc-hurd-for-i586-pc-gnu-instead-of.patch --]
[-- Type: text/x-patch, Size: 4907 bytes --]

From 30137dd367eb67b349411d61249af97fade40f2f Mon Sep 17 00:00:00 2001
From: Manolis Ragkousis <manolis837@gmail.com>
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:
                        ;; <https://lists.gnu.org/archive/html/bug-hurd/2014-07/msg00006.html>.
@@ -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 <http://lists.gnu.org/archive/html/bug-hurd/2011-03/msg00112.html>
  	mv -f $@.new $@
  
  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
-- 
2.4.4


             reply	other threads:[~2015-06-29 16:43 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-29 16:43 Manolis Ragkousis [this message]
2015-06-30 19:36 ` [PATCH] gnu: base: Build glibc-hurd for i586-pc-gnu instead of i686-pc-gnu Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAFtzXzNqGreiPW6J7uTxr6_3WhN6SJGQuaO=TuUK_0CxT4WTJw@mail.gmail.com' \
    --to=manolis837@gmail.com \
    --cc=Guix-devel@gnu.org \
    --cc=ludo@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.