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
next 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.