diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2017-05-29 06:14:11 +0200 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2017-05-29 06:14:11 +0200 |
commit | ff647c3d382dff13f6f43f817520053178671549 (patch) | |
tree | 14341b7e491fa12d88b760b5434f17d6f7438492 /gnu/packages/base.scm | |
parent | 4953c33316409945f30c4a3c33aa106ec3d84afd (diff) | |
download | gnu-guix-ff647c3d382dff13f6f43f817520053178671549.tar gnu-guix-ff647c3d382dff13f6f43f817520053178671549.tar.gz |
gnu: glibc: Move i686 patch to source field.
This is a rewrite of changes introduced by commits
b2fd8f63679aa4f244c36fdca62f23c00b8eded9,
c2e4f14ac8cd3e1ce7f46a192ad0c9acc084b210,
441e99d433583fdf76910c3f9323f78a1d1bbaf3 and
d03b34cf190b5790ee1884ae551634f5f736f4f1.
* gnu/packages/base.scm (glibc/linux)[source]: Add i686 patch.
[arguments]: Remove conditional patch application from build phase.
[native-inputs]: Remove patch.
(glibc/hurd)[arguments]: Inherit pre-configure build phase from glibc/linux.
* gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[native-inputs]:
Remove patch.
Diffstat (limited to 'gnu/packages/base.scm')
-rw-r--r-- | gnu/packages/base.scm | 91 |
1 files changed, 3 insertions, 88 deletions
diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 0ad6624dd5..b9364f81f5 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -531,7 +531,8 @@ store.") (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" "glibc-versioned-locpath.patch" - "glibc-o-largefile.patch")))) + "glibc-o-largefile.patch" + "glibc-memchr-overflow-i686.patch")))) (build-system gnu-build-system) ;; Glibc's <limits.h> refers to <linux/limit.h>, for instance, so glibc @@ -618,19 +619,6 @@ store.") ;; 4.7.1. ((" -lgcc_s") "")) - ;; Apply patch only on i686. - ;; TODO: Move the patch to 'patches' in the next update cycle. - ,@(if (string-prefix? "i686" (or (%current-target-system) - (%current-system))) - `((unless (zero? (system* "patch" "-p1" "--force" - "--input" - (or (assoc-ref native-inputs - "glibc-memchr-overflow-i686.patch") - (assoc-ref inputs - "glibc-memchr-overflow-i686.patch")))) - (error "patch failed for glibc-memchr-overflow-i686.patch"))) - '()) - ;; Have `system' use that Bash. (substitute* "sysdeps/posix/system.c" (("#define[[:blank:]]+SHELL_PATH.*$") @@ -674,15 +662,7 @@ store.") ;; install the message catalogs, with 'msgfmt'. (native-inputs `(("texinfo" ,texinfo) ("perl" ,perl) - ("gettext" ,gettext-minimal) - - ;; Apply this patch only on i686 to avoid a full rebuild. - ;; TODO: Move to 'patches' in the next update cycle. - ,@(if (string-prefix? "i686" (or (%current-target-system) - (%current-system))) - `(("glibc-memchr-overflow-i686.patch" - ,(search-patch "glibc-memchr-overflow-i686.patch"))) - '()))) + ("gettext" ,gettext-minimal))) (native-search-paths ;; Search path for packages that provide locale data. This is useful @@ -731,71 +711,6 @@ with the Linux kernel.") ;; Add libmachuser.so and libhurduser.so to libc.so's search path. ;; See <http://lists.gnu.org/archive/html/bug-hurd/2015-07/msg00051.html>. `(modify-phases ,original-phases - ;; TODO: This is almost an exact copy of the phase of the same name - ;; in glibc/linux. The only difference is that the i686 patch is - ;; not applied here. In the next update cycle the patch moves to - ;; the patches field and this overwritten phase won't be needed any - ;; more. - (replace 'pre-configure - (lambda* (#:key inputs native-inputs outputs - #:allow-other-keys) - (let* ((out (assoc-ref outputs "out")) - (bin (string-append out "/bin")) - ;; FIXME: Normally we would look it up only in INPUTS - ;; but cross-base uses it as a native input. - (bash (or (assoc-ref inputs "static-bash") - (assoc-ref native-inputs "static-bash")))) - ;; Install the rpc data base file under `$out/etc/rpc'. - ;; FIXME: Use installFlags = [ "sysconfdir=$(out)/etc" ]; - (substitute* "sunrpc/Makefile" - (("^\\$\\(inst_sysconfdir\\)/rpc(.*)$" _ suffix) - (string-append out "/etc/rpc" suffix "\n")) - (("^install-others =.*$") - (string-append "install-others = " out "/etc/rpc\n"))) - - (substitute* "Makeconfig" - ;; According to - ;; <http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html>, - ;; linking against libgcc_s is not needed with GCC - ;; 4.7.1. - ((" -lgcc_s") "")) - - ;; Have `system' use that Bash. - (substitute* "sysdeps/posix/system.c" - (("#define[[:blank:]]+SHELL_PATH.*$") - (format #f "#define SHELL_PATH \"~a/bin/bash\"\n" - bash))) - - ;; Same for `popen'. - (substitute* "libio/iopopen.c" - (("/bin/sh") - (string-append bash "/bin/sh"))) - - ;; Same for the shell used by the 'exec' functions for - ;; scripts that lack a shebang. - (substitute* (find-files "." "^paths\\.h$") - (("#define[[:blank:]]+_PATH_BSHELL[[:blank:]].*$") - (string-append "#define _PATH_BSHELL \"" - bash "/bin/sh\"\n"))) - - ;; Nscd uses __DATE__ and __TIME__ to create a string to - ;; make sure the client and server come from the same - ;; libc. Use something deterministic instead. - (substitute* "nscd/nscd_stat.c" - (("static const char compilation\\[21\\] =.*$") - (string-append - "static const char compilation[21] = \"" - (string-take (basename out) 20) "\";\n"))) - - ;; Make sure we don't retain a reference to the - ;; bootstrap Perl. - (substitute* "malloc/mtrace.pl" - (("^#!.*") - ;; The shebang can be omitted, because there's the - ;; "bilingual" eval/exec magic at the top of the file. - "") - (("exec @PERL@") - "exec perl"))))) (add-after 'install 'augment-libc.so (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out"))) |