From ff647c3d382dff13f6f43f817520053178671549 Mon Sep 17 00:00:00 2001 From: Ricardo Wurmus Date: Mon, 29 May 2017 06:14:11 +0200 Subject: 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. --- gnu/packages/base.scm | 91 ++----------------------------------------- gnu/packages/commencement.scm | 9 +---- 2 files changed, 4 insertions(+), 96 deletions(-) (limited to 'gnu') 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 refers to , 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 . `(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 - ;; , - ;; 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"))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 93fec0c010..4f39a3fc66 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -510,14 +510,7 @@ the bootstrap environment." (propagated-inputs `(("kernel-headers" ,(kernel-headers-boot0)))) (native-inputs `(("texinfo" ,texinfo-boot0) - ("perl" ,perl-boot0) - ;; Apply this patch only on i686 to avoid a full rebuild. - ;; TODO: Remove 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"))) - '()))) + ("perl" ,perl-boot0))) (inputs `(;; The boot inputs. That includes the bootstrap libc. We don't want ;; it in $CPATH, hence the 'pre-configure' phase above. -- cgit v1.2.3