From 5e8cb5e6980466f2571adb51f4dc5633cbd6b278 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 15 Mar 2018 21:08:37 +0100 Subject: gnu: glibc: Update to 2.27. * gnu/packages/base.scm (glibc/linux): Update to 2.27. [source](patches): Add 'glibc-hidden-visibility-ldconfig.patch' and 'glibc-2.27-git-fixes.patch'. [native-inputs]: Add BISON. [arguments]: Remove deprecated "--enable-add-ons" from #:configure-flags. Also remove unneeded "libc_cv_ssp=no" and "libcv_ssp_strong=no". (glibc-2.26): New public variable. * gnu/packages/commencement.scm (glibc-final-with-bootstrap-bash)[native-inputs]: Add BISON-BOOT0. * gnu/packages/patches/glibc-2.27-git-fixes.patch, gnu/packages/patches/glibc-hidden-visibility-ldconfig.patch: New files. * gnu/local.mk (dist_patch_DATA): Register them. --- gnu/packages/base.scm | 49 +++++++++++++++++++++++++++++-------------------- 1 file changed, 29 insertions(+), 20 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 7265a46199..06f41284ef 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -36,6 +36,7 @@ #:use-module (gnu packages) #:use-module (gnu packages acl) #:use-module (gnu packages bash) + #:use-module (gnu packages bison) #:use-module (gnu packages ed) #:use-module (gnu packages guile) #:use-module (gnu packages multiprecision) @@ -538,26 +539,15 @@ store.") (define-public glibc/linux (package (name "glibc") - ;; Glibc has stable branches that continuously pick fixes for each supported - ;; release. Unfortunately they do not do point-releases, so we are stuck - ;; with copying almost all patches, or use a snapshot of the release branch. - ;; - ;; This version number corresponds to the output of `git describe` and the - ;; archive can be generated by checking out the commit ID and running: - ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz - ;; See for details. - ;; ;; Note: Always use a dot after the minor version since various places rely ;; on "version-major+minor" to determine where locales are found. - (version "2.26.105-g0890d5379c") + (version "2.27") (source (origin (method url-fetch) - (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" - "glibc-" (version-major+minor version) "-" - (caddr (string-split version #\.)) ".tar.xz")) + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g")) + "0wpwq7gsm7sd6ysidv0z575ckqdg13cr2njyfgrbgh4f65adwwji")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so @@ -569,6 +559,8 @@ store.") #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-2.27-git-fixes.patch" + "glibc-hidden-visibility-ldconfig.patch" "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch")))) (build-system gnu-build-system) @@ -595,8 +587,7 @@ store.") (guix build gnu-build-system)) #:configure-flags - (list "--enable-add-ons" - "--sysconfdir=/etc" + (list "--sysconfdir=/etc" ;; Installing a locale archive with all the locales is to ;; expensive (~100 MiB), so we rely on users to install the @@ -631,10 +622,7 @@ store.") ;; Use our Bash instead of /bin/sh. (string-append "BASH_SHELL=" (assoc-ref %build-inputs "bash") - "/bin/bash") - - ;; XXX: Work around "undefined reference to `__stack_chk_guard'". - "libc_cv_ssp=no" "libc_cv_ssp_strong=no") + "/bin/bash")) #:tests? #f ; XXX #:phases (modify-phases %standard-phases @@ -745,6 +733,7 @@ store.") ;; install the message catalogs, with 'msgfmt'. (native-inputs `(("texinfo" ,texinfo) ("perl" ,perl) + ("bison" ,bison) ("gettext" ,gettext-minimal))) (native-search-paths @@ -853,6 +842,26 @@ GLIBC/HURD for a Hurd host" ;; Below are old libc versions, which we use mostly to build locale data in ;; the old format (which the new libc cannot cope with.) +(define-public glibc-2.26 + (package + (inherit glibc) + ;; This version number corresponds to the output of `git describe` and the + ;; archive can be generated by checking out the commit ID and running: + ;; git archive --prefix=$(git describe)/ HEAD | xz > $(git describe).tar.xz + ;; See for why this was necessary. + (version "2.26.105-g0890d5379c") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "https://alpha.gnu.org/gnu/guix/mirror/" + "glibc-" (version-major+minor version) "-" + (caddr (string-split version #\.)) ".tar.xz")) + (sha256 + (base32 + "1jck0c1i248sn02rvsfjykk77qncma34bjq89dyy2irwm50d7s3g")) + (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-versioned-locpath.patch" + "glibc-allow-kernel-2.6.32.patch")))))) + (define-public glibc-2.25 (package (inherit glibc) -- cgit v1.2.3