From 4e4aedf097b9c81af090fe5a4751dfbc9c54955d Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 27 Nov 2019 11:25:31 +0200 Subject: gnu: binutils: Update to 2.33.1. * gnu/packages/base.scm (binutils): Update to 2.33.1. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 3a3360dc7a..87eee4787c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -414,14 +414,14 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.32") + (version "2.33.1") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "0b8767nyal1bc4cyzg5h9iis8kpkln1i3wkamig75cifj1fb2f6y")) + "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c")) (patches (search-patches "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) -- cgit 1.4.1 From 0b3df5c913af91bc196bb8cb41783126e55bf5a0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 29 Nov 2019 17:44:25 +0100 Subject: gnu: glibc: Update to 2.30. * gnu/packages/patches/glibc-CVE-2019-19126.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (glibc): Update to 2.30. [source](patches): Adjust for 2.30. (glibc-2.29): New public variable. --- gnu/local.mk | 1 + gnu/packages/base.scm | 28 ++++++++++++++++++++----- gnu/packages/patches/glibc-CVE-2019-19126.patch | 22 +++++++++++++++++++ 3 files changed, 46 insertions(+), 5 deletions(-) create mode 100644 gnu/packages/patches/glibc-CVE-2019-19126.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index fef7fd1e28..25dfef3849 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -906,6 +906,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-CVE-2018-11237.patch \ %D%/packages/patches/glibc-CVE-2019-7309.patch \ %D%/packages/patches/glibc-CVE-2019-9169.patch \ + %D%/packages/patches/glibc-CVE-2019-19126.patch \ %D%/packages/patches/glibc-allow-kernel-2.6.32.patch \ %D%/packages/patches/glibc-boot-2.16.0.patch \ %D%/packages/patches/glibc-boot-2.2.5.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a444213a84..caaa04258c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -567,13 +567,13 @@ the store.") ;; version 2.28, GNU/Hurd used a different glibc branch. (package (name "glibc") - (version "2.29") + (version "2.30") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) + "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so @@ -585,9 +585,7 @@ the store.") #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" - "glibc-CVE-2019-7309.patch" - "glibc-CVE-2019-9169.patch" - "glibc-2.29-git-updates.patch" + "glibc-CVE-2019-19126.patch" "glibc-hidden-visibility-ldconfig.patch" "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch" @@ -819,6 +817,26 @@ with the Linux kernel.") ;; 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.29 + (package + (inherit glibc) + (version "2.29") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) + (sha256 + (base32 + "0jzh58728flfh939a8k9pi1zdyalfzlxmwra7k0rzji5gvavivpk")) + (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-CVE-2019-7309.patch" + "glibc-CVE-2019-9169.patch" + "glibc-2.29-git-updates.patch" + "glibc-hidden-visibility-ldconfig.patch" + "glibc-versioned-locpath.patch" + "glibc-allow-kernel-2.6.32.patch" + "glibc-reinstate-prlimit64-fallback.patch" + "glibc-supported-locales.patch")))))) + (define-public glibc-2.28 (package (inherit glibc) diff --git a/gnu/packages/patches/glibc-CVE-2019-19126.patch b/gnu/packages/patches/glibc-CVE-2019-19126.patch new file mode 100644 index 0000000000..5b9ac58ab7 --- /dev/null +++ b/gnu/packages/patches/glibc-CVE-2019-19126.patch @@ -0,0 +1,22 @@ +Fix CVE-2019-19126: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-19126 +https://sourceware.org/bugzilla/show_bug.cgi?id=25204 + +Taken from upstream: +https://sourceware.org/git/?p=glibc.git;a=commit;h=37c90e117310728a4ad1eb998c0bbe7d79c4a398 + +diff --git a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h +index 975cbe2..df2cdfd 100644 +--- a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h ++++ b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h +@@ -31,7 +31,8 @@ + environment variable, LD_PREFER_MAP_32BIT_EXEC. */ + #define EXTRA_LD_ENVVARS \ + case 21: \ +- if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ ++ if (!__libc_enable_secure \ ++ && memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0) \ + GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \ + |= bit_arch_Prefer_MAP_32BIT_EXEC; \ + break; -- cgit 1.4.1 From 717867a6efba935b026d4178aeee232bdbee0102 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 30 Nov 2019 04:41:12 +0100 Subject: gnu: findutils: Update to 4.7.0. * gnu/packages/patches/findutils-gnulib-libio.patch, gnu/packages/patches/findutils-makedev.patch, gnu/packages/patches/findutils-test-xargs.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (findutils): Update to 4.7.0. [source](uri): Adjust for file name change. [source](snippet): Remove. [source](patches): Remove obsolete. [arguments]: Remove obsolete workaround. Add phase to patch tests. * gnu/packages/commencement.scm (findutils-boot0)[arguments]: Allow 32-bit time_t on 64-bit systems. --- gnu/local.mk | 3 - gnu/packages/base.scm | 38 +++----- gnu/packages/commencement.scm | 10 +- gnu/packages/patches/findutils-gnulib-libio.patch | 114 ---------------------- gnu/packages/patches/findutils-makedev.patch | 22 ----- gnu/packages/patches/findutils-test-xargs.patch | 22 ----- 6 files changed, 22 insertions(+), 187 deletions(-) delete mode 100644 gnu/packages/patches/findutils-gnulib-libio.patch delete mode 100644 gnu/packages/patches/findutils-makedev.patch delete mode 100644 gnu/packages/patches/findutils-test-xargs.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index f13d8f3645..0c0f5651a9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -833,10 +833,7 @@ dist_patch_DATA = \ %D%/packages/patches/fifo-map-fix-flags-for-gcc.patch \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ %D%/packages/patches/file-CVE-2019-18218.patch \ - %D%/packages/patches/findutils-gnulib-libio.patch \ %D%/packages/patches/findutils-localstatedir.patch \ - %D%/packages/patches/findutils-makedev.patch \ - %D%/packages/patches/findutils-test-xargs.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index caaa04258c..a336f5e6d0 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -253,40 +253,28 @@ interactive means to merge two files.") (define-public findutils (package (name "findutils") - (version "4.6.0") + (version "4.7.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/findutils/findutils-" - version ".tar.gz")) + version ".tar.xz")) (sha256 (base32 - "178nn4dl7wbcw499czikirnkniwnx36argdnqgz4ik9i6zvwkm6y")) - (patches (search-patches - "findutils-gnulib-libio.patch" - "findutils-localstatedir.patch" - "findutils-makedev.patch" - "findutils-test-xargs.patch")) - (modules '((guix build utils))) - (snippet - '(begin - ;; The gnulib test-lock test is prone to writer starvation - ;; with our glibc@2.25, which prefers readers, so disable it. - ;; The gnulib commit b20e8afb0b2 should fix this once - ;; incorporated here. - (substitute* "tests/Makefile.in" - (("test-lock\\$\\(EXEEXT\\) ") "")) - #t)))) + "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5")) + (patches (search-patches "findutils-localstatedir.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list ;; Tell 'updatedb' to write to /var. - "--localstatedir=/var" - - ;; Work around cross-compilation failure. See - ;; . - ,@(if (%current-target-system) - '("gl_cv_func_wcwidth_works=yes") - '())))) + "--localstatedir=/var") + #:phases (modify-phases %standard-phases + (add-before 'check 'adjust-test-shebangs + (lambda _ + (substitute* '("tests/xargs/verbose-quote.sh" + "tests/find/exec-plus-last-file.sh") + (("#!/bin/sh") + (string-append "#!" (which "sh")))) + #t))))) (synopsis "Operating on files matching given criteria") (description "Findutils supplies the basic file directory searching utilities of the diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 8bf7704598..90cd001ba2 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1450,7 +1450,15 @@ exec " gcc "/bin/" program (arguments `(#:implicit-inputs? #f #:guile ,%bootstrap-guile - ,@(package-arguments findutils))))) + + ;; The build system assumes we have done a mistake when time_t is 32-bit + ;; on a 64-bit system. Ignore that for our bootstrap toolchain. + ,@(if (target-64bit?) + (substitute-keyword-arguments (package-arguments findutils) + ((#:configure-flags flags ''()) + `(cons "TIME_T_32_BIT_OK=yes" + ,flags))) + (package-arguments findutils)))))) (define file-boot0 (package diff --git a/gnu/packages/patches/findutils-gnulib-libio.patch b/gnu/packages/patches/findutils-gnulib-libio.patch deleted file mode 100644 index 79f9fd914d..0000000000 --- a/gnu/packages/patches/findutils-gnulib-libio.patch +++ /dev/null @@ -1,114 +0,0 @@ -Adjust to removal of libio interface in glibc 2.28. - -Based on this gnulib commit: -https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4af4a4a71827c0bc5e0ec67af23edef4f15cee8e - -diff --git a/gl/lib/fflush.c b/gl/lib/fflush.c -index 5ae3e41..7a82470 100644 ---- a/gl/lib/fflush.c -+++ b/gl/lib/fflush.c -@@ -33,7 +33,7 @@ - #undef fflush - - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - /* Clear the stream's ungetc buffer, preserving the value of ftello (fp). */ - static void -@@ -72,7 +72,7 @@ clear_ungetc_buffer (FILE *fp) - - #endif - --#if ! (defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) -+#if ! (defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */) - - # if (defined __sferror || defined __DragonFly__ || defined __ANDROID__) && defined __SNPT - /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Android */ -@@ -148,7 +148,7 @@ rpl_fflush (FILE *stream) - if (stream == NULL || ! freading (stream)) - return fflush (stream); - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - - clear_ungetc_buffer_preserving_position (stream); - -diff --git a/gl/lib/fpurge.c b/gl/lib/fpurge.c -index f313b22..ecdf82d 100644 ---- a/gl/lib/fpurge.c -+++ b/gl/lib/fpurge.c -@@ -62,7 +62,7 @@ fpurge (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_IO_read_end = fp->_IO_read_ptr; - fp->_IO_write_ptr = fp->_IO_write_base; - /* Avoid memory leak when there is an active ungetc buffer. */ -diff --git a/gl/lib/freadahead.c b/gl/lib/freadahead.c -index 094daab..3f8101e 100644 ---- a/gl/lib/freadahead.c -+++ b/gl/lib/freadahead.c -@@ -25,7 +25,7 @@ - size_t - freadahead (FILE *fp) - { --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_write_ptr > fp->_IO_write_base) - return 0; - return (fp->_IO_read_end - fp->_IO_read_ptr) -diff --git a/gl/lib/freading.c b/gl/lib/freading.c -index 0512b19..8c48fe4 100644 ---- a/gl/lib/freading.c -+++ b/gl/lib/freading.c -@@ -31,7 +31,7 @@ freading (FILE *fp) - /* Most systems provide FILE as a struct and the necessary bitmask in - , because they need it for implementing getc() and putc() as - fast macros. */ --# if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+# if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - return ((fp->_flags & _IO_NO_WRITES) != 0 - || ((fp->_flags & (_IO_NO_READS | _IO_CURRENTLY_PUTTING)) == 0 - && fp->_IO_read_base != NULL)); -diff --git a/gl/lib/fseeko.c b/gl/lib/fseeko.c -index 1c65d2a..9026408 100644 ---- a/gl/lib/fseeko.c -+++ b/gl/lib/fseeko.c -@@ -47,7 +47,7 @@ fseeko (FILE *fp, off_t offset, int whence) - #endif - - /* These tests are based on fpurge.c. */ --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - if (fp->_IO_read_end == fp->_IO_read_ptr - && fp->_IO_write_ptr == fp->_IO_write_base - && fp->_IO_save_base == NULL) -@@ -123,7 +123,7 @@ fseeko (FILE *fp, off_t offset, int whence) - return -1; - } - --#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ -+#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ - fp->_flags &= ~_IO_EOF_SEEN; - fp->_offset = pos; - #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ -diff --git a/gl/lib/stdio-impl.h b/gl/lib/stdio-impl.h -index 502d891..ea38ee2 100644 ---- a/gl/lib/stdio-impl.h -+++ b/gl/lib/stdio-impl.h -@@ -18,6 +18,12 @@ - the same implementation of stdio extension API, except that some fields - have different naming conventions, or their access requires some casts. */ - -+/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this -+ problem by defining it ourselves. FIXME: Do not rely on glibc -+ internals. */ -+#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN -+# define _IO_IN_BACKUP 0x100 -+#endif - - /* BSD stdio derived implementations. */ - diff --git a/gnu/packages/patches/findutils-makedev.patch b/gnu/packages/patches/findutils-makedev.patch deleted file mode 100644 index 2f16c625d8..0000000000 --- a/gnu/packages/patches/findutils-makedev.patch +++ /dev/null @@ -1,22 +0,0 @@ -Include for "makedev". - -Taken from this gnulib commit: -https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=4da63c5881f60f71999a943612da9112232b9161 - -diff --git a/gl/lib/mountlist.c b/gl/lib/mountlist.c -index bb4e4ee21..cf4020e2a 100644 ---- a/gl/lib/mountlist.c -+++ b/gl/lib/mountlist.c -@@ -37,6 +37,12 @@ - # include - #endif - -+#if MAJOR_IN_MKDEV -+# include -+#elif MAJOR_IN_SYSMACROS -+# include -+#endif -+ - #if defined MOUNTED_GETFSSTAT /* OSF_1 and Darwin1.3.x */ - # if HAVE_SYS_UCRED_H - # include /* needed on OSF V4.0 for definition of NGROUPS, diff --git a/gnu/packages/patches/findutils-test-xargs.patch b/gnu/packages/patches/findutils-test-xargs.patch deleted file mode 100644 index 10c7bed28d..0000000000 --- a/gnu/packages/patches/findutils-test-xargs.patch +++ /dev/null @@ -1,22 +0,0 @@ -This test relies on 'xargs' being available in $PATH, which is not -the case when we build the initial Findutils doing bootstrapping. -Reported at . - ---- findutils-4.6.0/find/testsuite/sv-34976-execdir-fd-leak.sh 2015-12-31 19:37:59.401526288 +0100 -+++ findutils-4.6.0/find/testsuite/sv-34976-execdir-fd-leak.sh 2015-12-31 19:38:36.061770693 +0100 -@@ -50,13 +50,14 @@ die() { - # Create test files, each 98 in the directories ".", "one" and "two". - make_test_data() { - d="$1" -+ xargs="`cd ../../xargs; pwd -P`/xargs" - ( - cd "$1" || exit 1 - mkdir one two || exit 1 - for i in ${three_to_hundred} ; do - printf "./%03d one/%03d two/%03d " $i $i $i - done \ -- | xargs touch || exit 1 -+ | "$xargs" touch || exit 1 - ) \ - || die "failed to set up the test in ${outdir}" - } -- cgit 1.4.1 From f87b68a18627fe8bab960d45460dd2217fa85def Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 14 Jan 2020 17:56:24 +0100 Subject: gnu: findutils: Fix bootstrap on aarch64-linux and armhf-linux. * gnu/packages/patches/findutils-test-rwlock-threads.patch: New file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (findutils)[source](patches): Add it. --- gnu/local.mk | 1 + gnu/packages/base.scm | 3 +- .../patches/findutils-test-rwlock-threads.patch | 38 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/findutils-test-rwlock-threads.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index fd3d434d0c..0ba01efcc6 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -854,6 +854,7 @@ dist_patch_DATA = \ %D%/packages/patches/fifo-map-remove-catch.hpp.patch \ %D%/packages/patches/file-CVE-2019-18218.patch \ %D%/packages/patches/findutils-localstatedir.patch \ + %D%/packages/patches/findutils-test-rwlock-threads.patch \ %D%/packages/patches/flann-cmake-3.11.patch \ %D%/packages/patches/flint-ldconfig.patch \ %D%/packages/patches/foomatic-filters-CVE-2015-8327.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a336f5e6d0..52ca78fa70 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -261,7 +261,8 @@ interactive means to merge two files.") (sha256 (base32 "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5")) - (patches (search-patches "findutils-localstatedir.patch")))) + (patches (search-patches "findutils-localstatedir.patch" + "findutils-test-rwlock-threads.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags (list diff --git a/gnu/packages/patches/findutils-test-rwlock-threads.patch b/gnu/packages/patches/findutils-test-rwlock-threads.patch new file mode 100644 index 0000000000..3062577c21 --- /dev/null +++ b/gnu/packages/patches/findutils-test-rwlock-threads.patch @@ -0,0 +1,38 @@ +Skip "test-rwlock1" when multithreading is disabled, which is the case +during bootstrapping on architectures not supported by GNU Mes. + +Taken from upstream gnulib: +https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=fdff8bd09a7f053381f8bdb107ab5280b7c95959 + +diff --git a/gnulib-tests/test-rwlock1.c b/gnulib-tests/test-rwlock1.c +--- a/gnulib-tests/test-rwlock1.c ++++ b/gnulib-tests/test-rwlock1.c +@@ -21,6 +21,8 @@ + + #include + ++#if USE_ISOC_THREADS || USE_POSIX_THREADS || USE_ISOC_AND_POSIX_THREADS || USE_WINDOWS_THREADS ++ + #include "glthread/lock.h" + + #include +@@ -151,3 +153,18 @@ main () + sleep (1); + } + } ++ ++#else ++ ++/* No multithreading available. */ ++ ++#include ++ ++int ++main () ++{ ++ fputs ("Skipping test: multithreading not enabled\n", stderr); ++ return 77; ++} ++ ++#endif + -- cgit 1.4.1 From e8b79cd9f449c0419f1d4f09d7b8e0712b6a961f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Tue, 14 Jan 2020 18:08:30 +0100 Subject: gnu: grep: Update to 3.4. * gnu/packages/base.scm (grep): Update to 3.4. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 52ca78fa70..5c48db40a7 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -92,14 +92,14 @@ command-line arguments, multiple languages, and so on.") (define-public grep (package (name "grep") - (version "3.3") + (version "3.4") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/grep/grep-" version ".tar.xz")) (sha256 (base32 - "055mqp6vrd0brkygmygb2673qwz409a7kyp1mzbfy6cn94f58q5r")) + "1yy33kiwrxrwj2nxa4fg15bvmwyghqbs8qwkdvy5phm784f7brjq")) (patches (search-patches "grep-timing-sensitive-test.patch")))) (build-system gnu-build-system) (native-inputs `(("perl" ,perl))) ;some of the tests require it -- cgit 1.4.1 From aded68b30083d2042c543c0a1d7685b2147c2b83 Mon Sep 17 00:00:00 2001 From: Efraim Flashner Date: Wed, 15 Jan 2020 10:32:07 +0200 Subject: gnu: sed: Update to 4.8. * gnu/packages/base.scm (sed): Update to 4.8. [source]: Download gzip tarball. --- gnu/packages/base.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 5c48db40a7..bb7ab350b4 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -5,7 +5,7 @@ ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver ;;; Copyright © 2014 Alex Kost ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis -;;; Copyright © 2016, 2017, 2019 Efraim Flashner +;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra @@ -133,14 +133,14 @@ including, for example, recursive directory searching.") (define-public sed (package (name "sed") - (version "4.7") + (version "4.8") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/sed/sed-" version - ".tar.xz")) + ".tar.gz")) (sha256 (base32 - "0smxcx66vx29djzb542nxcynl7qnzxqa5032ibazi7x2s267d198")))) + "0alqagh0nliymz23kfjg6g9w3cr086k0sfni56gi8fhzqwa3xksk")))) (build-system gnu-build-system) (synopsis "Stream editor") (native-inputs -- cgit 1.4.1 From e3ca10aba12cb953f79ab7518d7478010ad69140 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 20 Jan 2020 18:08:09 +0100 Subject: gnu: tzdata-for-tests: Update to 2019c. * gnu/packages/base.scm (tzdata-for-tests): Inherit all of TZDATA. --- gnu/packages/base.scm | 21 +-------------------- 1 file changed, 1 insertion(+), 20 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index bb7ab350b4..9f8130be50 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1278,26 +1278,7 @@ and daylight-saving rules.") ;;; package. (define-public tzdata-for-tests (hidden-package - (package - (inherit tzdata) - (version "2019b") - (source (origin - (method url-fetch) - (uri (string-append - "https://data.iana.org/time-zones/releases/tzdata" - version ".tar.gz")) - (sha256 - (base32 - "0r0clnlslwm15m1c61dinf1fi9ffgl6aipng7i7yryfwj0n0kn85")))) - (inputs - `(("tzcode" ,(origin - (method url-fetch) - (uri (string-append - "https://data.iana.org/time-zones/releases/tzcode" - version ".tar.gz")) - (sha256 - (base32 - "0vbmswvv3li25s31shyllq5v24449lxnrki9hr043nipjd09sirf"))))))))) + (package/inherit tzdata))) (define-public libiconv (package -- cgit 1.4.1 From cdba91486a60bbba727d843707322f98f8286124 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Mon, 20 Jan 2020 18:13:53 +0100 Subject: gnu: make: Update to 4.3. * gnu/packages/patches/make-impure-dirs.patch: Adjust for renamed files. * gnu/packages/patches/make-glibc-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/base.scm (gnu-make): Update to 4.3. [source](uri): Change to ".gz" tarball. [source](patches): Remove obsolete. [arguments]: Remove #:configure-flags. Adjust for renamed files. [inputs]: Change from GUILE-2.0 to GUILE-3.0. * gnu/packages/commencement.scm (gnu-make-boot0)[arguments]: Add #:configure-flags. --- gnu/local.mk | 1 - gnu/packages/base.scm | 18 ++++------ gnu/packages/commencement.scm | 5 +++ gnu/packages/patches/make-glibc-compat.patch | 52 ---------------------------- gnu/packages/patches/make-impure-dirs.patch | 12 +++---- 5 files changed, 18 insertions(+), 70 deletions(-) delete mode 100644 gnu/packages/patches/make-glibc-compat.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 6958cc6af0..fb9f506f31 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1152,7 +1152,6 @@ dist_patch_DATA = \ %D%/packages/patches/luminance-hdr-qt-printer.patch \ %D%/packages/patches/lvm2-static-link.patch \ %D%/packages/patches/lxsession-use-gapplication.patch \ - %D%/packages/patches/make-glibc-compat.patch \ %D%/packages/patches/make-impure-dirs.patch \ %D%/packages/patches/mariadb-client-test-32bit.patch \ %D%/packages/patches/mars-install.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 9f8130be50..45f6cf79ba 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -360,31 +360,27 @@ functionality beyond that which is outlined in the POSIX standard.") (define-public gnu-make (package (name "make") - (version "4.2.1") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/make/make-" version - ".tar.bz2")) + ".tar.gz")) (sha256 (base32 - "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn")) - (patches (search-patches "make-impure-dirs.patch" - "make-glibc-compat.patch")))) + "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0")) + (patches (search-patches "make-impure-dirs.patch")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) ; to detect Guile - (inputs `(("guile" ,guile-2.0))) + (inputs `(("guile" ,guile-3.0))) (outputs '("out" "debug")) (arguments - '(;; Work around faulty glob detection with glibc 2.27. See - ;; . - #:configure-flags '("make_cv_sys_gnu_glob=yes") - #:phases + '(#:phases (modify-phases %standard-phases (add-before 'build 'set-default-shell (lambda* (#:key inputs #:allow-other-keys) ;; Change the default shell from /bin/sh. (let ((bash (assoc-ref inputs "bash"))) - (substitute* "job.c" + (substitute* "src/job.c" (("default_shell =.*$") (format #f "default_shell = \"~a/bin/sh\";\n" bash))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index d173f5a19b..851bb02163 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -1412,6 +1412,11 @@ exec " gcc "/bin/" program #:implicit-inputs? #f #:tests? #f ; cannot run "make check" ,@(substitute-keyword-arguments (package-arguments gnu-make) + ((#:configure-flags flags ''()) + ;; The generated config.status has some problems due to the + ;; bootstrap environment. Disable dependency tracking to work + ;; around it. + `(cons "--disable-dependency-tracking" ,flags)) ((#:phases phases) `(modify-phases ,phases (replace 'build diff --git a/gnu/packages/patches/make-glibc-compat.patch b/gnu/packages/patches/make-glibc-compat.patch deleted file mode 100644 index 9ce7f2b5bf..0000000000 --- a/gnu/packages/patches/make-glibc-compat.patch +++ /dev/null @@ -1,52 +0,0 @@ -Work with the new glob interface in glibc 2.27. - -Taken from this upstream commit: -https://git.savannah.gnu.org/cgit/make.git/commit/?id=193f1e81edd6b1b56b0eb0ff8aa4b41c7b4257b4 - -diff --git a/dir.c b/dir.c -index adbb8a9..c343e4c 100644 ---- a/dir.c -+++ b/dir.c -@@ -1299,15 +1299,40 @@ local_stat (const char *path, struct stat *buf) - } - #endif - -+/* Similarly for lstat. */ -+#if !defined(lstat) && !defined(WINDOWS32) || defined(VMS) -+# ifndef VMS -+# ifndef HAVE_SYS_STAT_H -+int lstat (const char *path, struct stat *sbuf); -+# endif -+# else -+ /* We are done with the fake lstat. Go back to the real lstat */ -+# ifdef lstat -+# undef lstat -+# endif -+# endif -+# define local_lstat lstat -+#elif defined(WINDOWS32) -+/* Windows doesn't support lstat(). */ -+# define local_lstat local_stat -+#else -+static int -+local_lstat (const char *path, struct stat *buf) -+{ -+ int e; -+ EINTRLOOP (e, lstat (path, buf)); -+ return e; -+} -+#endif -+ - void - dir_setup_glob (glob_t *gl) - { - gl->gl_opendir = open_dirstream; - gl->gl_readdir = read_dirstream; - gl->gl_closedir = free; -+ gl->gl_lstat = local_lstat; - gl->gl_stat = local_stat; -- /* We don't bother setting gl_lstat, since glob never calls it. -- The slot is only there for compatibility with 4.4 BSD. */ - } - - void diff --git a/gnu/packages/patches/make-impure-dirs.patch b/gnu/packages/patches/make-impure-dirs.patch index 83a5fbe3a5..89595b06ec 100644 --- a/gnu/packages/patches/make-impure-dirs.patch +++ b/gnu/packages/patches/make-impure-dirs.patch @@ -4,9 +4,9 @@ don't look in /usr/include and friends. Patch from Nixpkgs, by Eelco Dolstra. -diff -rc make-3.81-orig/read.c make-3.81/read.c -*** make-3.81-orig/read.c 2006-03-17 15:24:20.000000000 +0100 ---- make-3.81/read.c 2007-05-24 17:16:31.000000000 +0200 +diff -rc make-3.81-orig/src/read.c make-3.81/src/read.c +*** make-3.81-orig/src/read.c 2006-03-17 15:24:20.000000000 +0100 +--- make-3.81/src/read.c 2007-05-24 17:16:31.000000000 +0200 *************** *** 99,107 **** --- 99,109 ---- @@ -21,9 +21,9 @@ diff -rc make-3.81-orig/read.c make-3.81/read.c #endif 0 }; -diff -rc make-3.81-orig/remake.c make-3.81/remake.c -*** make-3.81-orig/remake.c 2006-03-20 03:36:37.000000000 +0100 ---- make-3.81/remake.c 2007-05-24 17:06:54.000000000 +0200 +diff -rc make-3.81-orig/src/remake.c make-3.81/src/remake.c +*** make-3.81-orig/src/remake.c 2006-03-20 03:36:37.000000000 +0100 +--- make-3.81/src/remake.c 2007-05-24 17:06:54.000000000 +0200 *************** *** 1452,1460 **** --- 1452,1462 ---- -- cgit 1.4.1 From 2073b55e6b964cb8ca15e8c74cb32dac00f05f0d Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Thu, 6 Feb 2020 15:32:00 +0100 Subject: gnu: gcc: Switch back to using 'C_INCLUDE_PATH' instead of 'CPATH'. Fixes . Initially reported by Julien Lepiller . * gnu/packages/base.scm (make-gcc-libc): Remove 'treat-glibc-as-system-header' phase from 'arguments'. * gnu/packages/commencement.scm (gcc-final): Likewise. * gnu/packages/gcc.scm (gcc-4.7)[arguments]: Add "include/c++" to 'CPLUS_INCLUDE_PATH'. (gcc-6)[native-search-paths]: Remove. * gnu/packages/make-bootstrap.scm (gcc-for-bootstrap): Remove 'native-search-paths' and 'arguments'. * gnu/packages/patches/python-2.7-search-paths.patch, gnu/packages/patches/python-3-search-paths.patch: Replace "CPATH" with "C_INCLUDE_PATH". * guix/build-system/cmake.scm (lower): When not cross-compiling, move INPUTS from the 'host-inputs' field to the 'build-inputs' field of the bag, right after NATIVE-INPUTS. * guix/build-system/glib-or-gtk.scm (lower): Likewise. * guix/build-system/gnu.scm (lower): Likewise. * guix/build-system/meson.scm (lower): Likewise. --- gnu/packages/base.scm | 19 +++------------- gnu/packages/commencement.scm | 9 -------- gnu/packages/gcc.scm | 18 +++++----------- gnu/packages/make-bootstrap.scm | 25 ++-------------------- gnu/packages/patches/python-2.7-search-paths.patch | 4 ++-- gnu/packages/patches/python-3-search-paths.patch | 4 ++-- guix/build-system/cmake.scm | 5 +++-- guix/build-system/glib-or-gtk.scm | 16 +++++++------- guix/build-system/gnu.scm | 10 +++++++-- guix/build-system/meson.scm | 14 ++++++------ 10 files changed, 40 insertions(+), 84 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 45f6cf79ba..05a48ce7e0 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014, 2019 Andreas Enge ;;; Copyright © 2012 Nikita Karetnikov ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver @@ -981,21 +981,8 @@ with the Linux kernel.") (package-name libc) "-" (package-version libc))) (arguments - (substitute-keyword-arguments - (ensure-keyword-arguments (package-arguments base-gcc) - '(#:implicit-inputs? #f)) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'configure 'treat-glibc-as-system-header - (lambda _ - (let ((libc (assoc-ref %build-inputs "libc"))) - ;; GCCs build processes requires that the libc - ;; we're building against is on the system header - ;; search path. - (for-each (lambda (var) - (setenv var (string-append libc "/include"))) - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH")) - #t))))))) + (ensure-keyword-arguments (package-arguments base-gcc) + '(#:implicit-inputs? #f))) (native-inputs `(,@(package-native-inputs base-gcc) ,@(append (fold alist-delete (%final-inputs) '("libc" "libc:static"))) diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index e26bc1cec2..2a0a83ad49 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -2193,15 +2193,6 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" char-set:letter) ,(package-name lib))) (list gmp-6.0 mpfr mpc)) - #t))) - (add-before 'configure 'treat-glibc-as-system-header - (lambda* (#:key inputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "libc"))) - ;; Make sure Glibc is treated as a "system header" so - ;; #include_next does the right thing. - (for-each (lambda (var) - (setenv var (string-append libc "/include"))) - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH")) #t)))))))) ;; This time we want Texinfo, so we get the manual. Add diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 94f7e15382..69bac8dd0c 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2014, 2015, 2018 Mark H Weaver ;;; Copyright © 2014, 2015, 2016, 2017, 2019 Ricardo Wurmus ;;; Copyright © 2015 Andreas Enge @@ -340,7 +340,9 @@ where the OS part is overloaded to denote a specific ABI---into GCC (files '("include"))) (search-path-specification (variable "CPLUS_INCLUDE_PATH") - (files '("include"))) + ;; Add 'include/c++' here so that 's "#include_next + ;; " finds GCC's , not libc's. + (files '("include/c++" "include"))) (search-path-specification (variable "LIBRARY_PATH") (files '("lib" "lib64"))))) @@ -476,17 +478,7 @@ Go. It also includes runtime support libraries for these languages.") "gcc-5.0-libvtv-runpath.patch")))) (inputs `(("isl" ,isl) - ,@(package-inputs gcc-4.7))) - - (native-search-paths - ;; We have to use 'CPATH' for GCC > 5, not 'C_INCLUDE_PATH' & co., due to - ;; . - (list (search-path-specification - (variable "CPATH") - (files '("include"))) - (search-path-specification - (variable "LIBRARY_PATH") - (files '("lib" "lib64"))))))) + ,@(package-inputs gcc-4.7))))) (define-public gcc-7 (package diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index 0144a6e9a2..eea59758fd 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès ;;; Copyright © 2017 Efraim Flashner ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Mark H Weaver @@ -95,32 +95,11 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (package (inherit gcc) (outputs '("out")) ;all in one so libgcc_s is easily found - (native-search-paths - ;; Set CPLUS_INCLUDE_PATH so GCC is able to find the libc - ;; C++ headers. - (cons (search-path-specification - (variable "CPLUS_INCLUDE_PATH") - (files '("include"))) - (package-native-search-paths gcc))) (inputs `( ;; Distinguish the name so we can refer to it below. ("bootstrap-libc" ,(glibc-for-bootstrap glibc)) ("libc:static" ,(glibc-for-bootstrap glibc) "static") - ,@(package-inputs gcc))) - (arguments - (substitute-keyword-arguments (package-arguments gcc) - ((#:phases phases) - `(modify-phases ,phases - (add-before 'configure 'treat-glibc-as-system-header - (lambda* (#:key inputs #:allow-other-keys) - (let ((libc (assoc-ref inputs "bootstrap-libc"))) - ;; GCCs build processes requires that the libc - ;; we're building against is on the system header - ;; search path. - (for-each (lambda (var) - (setenv var (string-append libc "/include"))) - '("C_INCLUDE_PATH" "CPLUS_INCLUDE_PATH")) - #t)))))))))) + ,@(package-inputs gcc)))))) (define (package-with-relocatable-glibc p) "Return a variant of P that uses the libc as defined by diff --git a/gnu/packages/patches/python-2.7-search-paths.patch b/gnu/packages/patches/python-2.7-search-paths.patch index 5a345c7691..3318f44d23 100644 --- a/gnu/packages/patches/python-2.7-search-paths.patch +++ b/gnu/packages/patches/python-2.7-search-paths.patch @@ -1,4 +1,4 @@ -Make sure the build system honors CPATH and LIBRARY_PATH when +Make sure the build system honors C_INCLUDE_PATH and LIBRARY_PATH when looking for headers and libraries. --- Python-2.7.10/setup.py 2015-10-07 18:33:18.125153186 +0200 @@ -10,7 +10,7 @@ looking for headers and libraries. + # Always honor these variables. + if not cross_compiling: + lib_dirs += os.getenv('LIBRARY_PATH', '').split(os.pathsep) -+ inc_dirs += os.getenv('CPATH', '').split(os.pathsep) ++ inc_dirs += os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) + else: + lib_dirs = os.getenv('CROSS_LIBRARY_PATH', '').split(os.pathsep) + inc_dirs = os.getenv('CROSS_CPATH', '').split(os.pathsep) diff --git a/gnu/packages/patches/python-3-search-paths.patch b/gnu/packages/patches/python-3-search-paths.patch index aaf7236631..612201d1f2 100644 --- a/gnu/packages/patches/python-3-search-paths.patch +++ b/gnu/packages/patches/python-3-search-paths.patch @@ -1,4 +1,4 @@ -Make sure the build system honors CPATH and LIBRARY_PATH when +Make sure the build system honors C_INCLUDE_PATH and LIBRARY_PATH when looking for headers and libraries. --- a/setup.py 2015-10-07 23:32:58.891329173 +0200 @@ -10,7 +10,7 @@ looking for headers and libraries. - self.lib_dirs = self.compiler.library_dirs + system_lib_dirs - self.inc_dirs = self.compiler.include_dirs + system_include_dirs + self.lib_dirs = os.getenv('LIBRARY_PATH', '').split(os.pathsep) -+ self.inc_dirs = os.getenv('CPATH', '').split(os.pathsep) ++ self.inc_dirs = os.getenv('C_INCLUDE_PATH', '').split(os.pathsep) else: # Add the sysroot paths. 'sysroot' is a compiler option used to # set the logical path of the standard system headers and diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm index 1fc0931a27..29259c5785 100644 --- a/guix/build-system/cmake.scm +++ b/guix/build-system/cmake.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2020 Ludovic Courtès ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2017 Ricardo Wurmus ;;; @@ -72,6 +72,7 @@ '()) ,@`(("cmake" ,cmake)) ,@native-inputs + ,@(if target '() inputs) ,@(if target ;; Use the standard cross inputs of ;; 'gnu-build-system'. @@ -79,7 +80,7 @@ '()) ;; Keep the standard inputs of 'gnu-build-system'. ,@(standard-packages))) - (host-inputs inputs) + (host-inputs (if target inputs '())) ;; The cross-libc is really a target package, but for bootstrapping ;; reasons, we can't put it in 'host-inputs'. Namely, 'cross-gcc' is a diff --git a/guix/build-system/glib-or-gtk.scm b/guix/build-system/glib-or-gtk.scm index 8de7dfbfc2..fb1f8fb930 100644 --- a/guix/build-system/glib-or-gtk.scm +++ b/guix/build-system/glib-or-gtk.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015, 2019 Ludovic Courtès +;;; Copyright © 2013, 2014, 2015, 2019, 2020 Ludovic Courtès ;;; Copyright © 2013 Cyril Roelandt ;;; Copyright © 2014 Federico Beffa ;;; @@ -92,15 +92,15 @@ (bag (name name) (system system) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs)) - (build-inputs `(("glib:bin" ,glib "bin") ; to compile schemas + (host-inputs (if source + `(("source" ,source)) + '())) + (build-inputs `(,@native-inputs + ,@inputs + ("glib:bin" ,glib "bin") ; to compile schemas ,@(if implicit-inputs? (standard-packages) - '()) - ,@native-inputs)) + '()))) (outputs outputs) (build glib-or-gtk-build) (arguments (strip-keyword-arguments private-keywords arguments))))) diff --git a/guix/build-system/gnu.scm b/guix/build-system/gnu.scm index 3cc89f8852..6e66f5ffce 100644 --- a/guix/build-system/gnu.scm +++ b/guix/build-system/gnu.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019 Ludovic Courtès +;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2019, 2020 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. ;;; @@ -296,13 +296,19 @@ standard packages used as implicit inputs of the GNU build system." `(("source" ,source)) '()) ,@native-inputs + + ;; When not cross-compiling, ensure implicit inputs come + ;; last. That way, libc headers come last, which allows + ;; #include_next to work correctly; see + ;; . + ,@(if target '() inputs) ,@(if (and target implicit-cross-inputs?) (standard-cross-packages target 'host) '()) ,@(if implicit-inputs? (standard-packages) '()))) - (host-inputs inputs) + (host-inputs (if target inputs '())) ;; The cross-libc is really a target package, but for bootstrapping ;; reasons, we can't put it in 'host-inputs'. Namely, 'cross-gcc' is a diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index b29f2f4ecf..b68bcb80de 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -74,13 +74,13 @@ (system system) (build-inputs `(("meson" ,meson) ("ninja" ,ninja) - ,@native-inputs)) - (host-inputs `(,@(if source - `(("source" ,source)) - '()) - ,@inputs - ;; Keep the standard inputs of 'gnu-build-system'. - ,@(standard-packages))) + ,@native-inputs + ,@inputs + ;; Keep the standard inputs of 'gnu-build-system'. + ,@(standard-packages))) + (host-inputs (if source + `(("source" ,source)) + '())) (outputs outputs) (build meson-build) (arguments (strip-keyword-arguments private-keywords arguments))))) -- cgit 1.4.1 From 3e3a37b2bcb1f23011fde8626559f83504177889 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 1 Feb 2020 16:28:43 +0100 Subject: gnu: binutils: Update to 2.34. * gnu/packages/base.scm (binutils): Update to 2.34. [arguments]: Add #:make-flags. [properties]: New field. (binutils+documentation): New public variable. * gnu/packages/make-bootstrap.scm (%binutils-static)[arguments]: Inherit #:make-flags. --- gnu/packages/base.scm | 30 ++++++++++++++++++++++++++---- gnu/packages/make-bootstrap.scm | 6 +++++- 2 files changed, 31 insertions(+), 5 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 05a48ce7e0..7e5df241a9 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -10,7 +10,7 @@ ;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Mathieu Othacehe -;;; Copyright © 2017, 2018 Marius Bakke +;;; Copyright © 2017, 2018, 2020 Marius Bakke ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Ricardo Wurmus @@ -399,14 +399,14 @@ change. GNU make offers many powerful extensions over the standard utility.") (define-public binutils (package (name "binutils") - (version "2.33.1") + (version "2.34") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/binutils/binutils-" version ".tar.bz2")) (sha256 (base32 - "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c")) + "1rin1f5c7wm4n3piky6xilcrpf2s0n3dd5vqq8irrxkcic3i1w49")) (patches (search-patches "binutils-loongson-workaround.patch")))) (build-system gnu-build-system) @@ -431,7 +431,17 @@ change. GNU make offers many powerful extensions over the standard utility.") ;; Make sure 'ar' and 'ranlib' produce archives in a ;; deterministic fashion. - "--enable-deterministic-archives"))) + "--enable-deterministic-archives") + + ;; XXX: binutils 2.34 was mistakenly released without generated manuals: + ;; . To avoid a + ;; circular dependency on texinfo, prevent the build system from creating + ;; the manuals by calling "true" instead of "makeinfo"... + #:make-flags '("MAKEINFO=true"))) + + ;; ...and "hide" this package so that users who install binutils get the + ;; version with documentation defined below. + (properties '((hidden? . #t))) (synopsis "Binary utilities: bfd gas gprof ld") (description @@ -444,6 +454,18 @@ included.") (license gpl3+) (home-page "https://www.gnu.org/software/binutils/"))) +;; Work around a problem with binutils 2.34 whereby manuals are missing from +;; the release tarball. Remove this and the related code above when updating. +(define-public binutils+documentation + (package/inherit + binutils + (native-inputs + `(("texinfo" ,texinfo))) + (arguments + (substitute-keyword-arguments (package-arguments binutils) + ((#:make-flags _ ''()) ''()))) + (properties '()))) + (define-public binutils-gold (package (inherit binutils) diff --git a/gnu/packages/make-bootstrap.scm b/gnu/packages/make-bootstrap.scm index eea59758fd..c1930582d1 100644 --- a/gnu/packages/make-bootstrap.scm +++ b/gnu/packages/make-bootstrap.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019 Mark H Weaver ;;; Copyright © 2018, 2019 Jan (janneke) Nieuwenhuizen -;;; Copyright © 2019 Marius Bakke +;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2020 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. @@ -374,6 +374,10 @@ for `sh' in $PATH, and without nscd, and with static NSS modules." (package-arguments binutils)) ((#:configure-flags flags _ ...) flags))) + #:make-flags ,(match (memq #:make-flags (package-arguments binutils)) + ((#:make-flags flags _ ...) + flags) + (_ ''())) #:strip-flags '("--strip-all") #:phases (modify-phases %standard-phases (add-before 'configure 'all-static -- cgit 1.4.1 From a493a5264664b5c3d8f4fcf636715f5ae817b278 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 15 Feb 2020 18:37:49 +0100 Subject: gnu: ath9k-htc-firmware: Build with binutils@2.33.1. * gnu/packages/base.scm (binutils-2.33): New public variable. * gnu/packages/cross-base.scm (cross-binutils): Add optional BINUTILS argument. * gnu/packages/firmware.scm (ath9k-htc-firmware)[native-inputs]: Build the xtensa-elf toolchain with BINUTILS-2.33. --- gnu/packages/base.scm | 19 +++++++++++++++++++ gnu/packages/cross-base.scm | 6 +++--- gnu/packages/firmware.scm | 9 +++++++-- 3 files changed, 29 insertions(+), 5 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 7e5df241a9..184ef3b841 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -466,6 +466,25 @@ included.") ((#:make-flags _ ''()) ''()))) (properties '()))) +;; FIXME: ath9k-firmware-htc-binutils.patch do not apply on 2.34 because of a +;; big refactoring of xtensa-modules.c (commit 567607c11fbf7105 upstream). +;; Keep this version around until the patch is updated. +(define-public binutils-2.33 + (package/inherit + binutils + (version "2.33.1") + (source (origin + (inherit (package-source binutils)) + (uri (string-append "mirror://gnu/binutils/binutils-" + version ".tar.bz2")) + (sha256 + (base32 + "1cmd0riv37bqy9mwbg6n3523qgr8b3bbm5kwj19sjrasl4yq9d0c")))) + (arguments + (substitute-keyword-arguments (package-arguments binutils) + ((#:make-flags _ ''()) ''()))) + (properties '()))) + (define-public binutils-gold (package (inherit binutils) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 497d415f57..667d1f786a 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -4,7 +4,7 @@ ;;; Copyright © 2016, 2019 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2016 Manolis Fragkiskos Ragkousis ;;; Copyright © 2018 Tobias Geerinckx-Rice -;;; Copyright © 2019 Marius Bakke +;;; Copyright © 2019, 2020 Marius Bakke ;;; Copyright © 2019 Carl Dong ;;; ;;; This file is part of GNU Guix. @@ -79,8 +79,8 @@ (source (origin (inherit (package-source original)) (patches (list patch)))))) -(define (cross-binutils target) - "Return a cross-Binutils for TARGET." +(define* (cross-binutils target #:optional (binutils binutils)) + "Return a cross-Binutils for TARGET using BINUTILS." (let ((binutils (package (inherit binutils) (arguments (substitute-keyword-arguments (package-arguments diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm index bec582d982..f9832161ea 100644 --- a/gnu/packages/firmware.scm +++ b/gnu/packages/firmware.scm @@ -6,6 +6,7 @@ ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018 Vagrant Cascadian ;;; Copyright © 2019 Mathieu Othacehe +;;; Copyright © 2020 Marius Bakke ;;; ;;; This file is part of GNU Guix. ;;; @@ -32,6 +33,7 @@ #:use-module (gnu packages) #:use-module (gnu packages admin) #:use-module (gnu packages assembly) + #:use-module (gnu packages base) #:use-module (gnu packages bison) #:use-module (gnu packages cmake) #:use-module (gnu packages cross-base) @@ -83,8 +85,11 @@ ;; The firmware is cross-compiled using a "bare bones" compiler (no libc.) ;; Use our own tool chain for that. - (native-inputs `(("cross-gcc" ,(cross-gcc "xtensa-elf")) - ("cross-binutils" ,(cross-binutils "xtensa-elf")) + (native-inputs `(("cross-gcc" ,(cross-gcc + "xtensa-elf" + #:xbinutils (cross-binutils "xtensa-elf" + binutils-2.33))) + ("cross-binutils" ,(cross-binutils "xtensa-elf" binutils-2.33)) ("cmake" ,cmake-minimal) ("perl" ,perl))) (home-page "http://wireless.kernel.org/en/users/Drivers/ath9k_htc") -- cgit 1.4.1 From a33eac038a811603c8b9ed106ae405a5f80a0e9d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 1 Feb 2020 16:29:02 +0100 Subject: gnu: glibc: Update to 2.31. * gnu/packages/patches/glibc-supported-locales.patch: Adjust for upstream changes. * gnu/packages/patches/glibc-2.29-supported-locales.patch: New file, with previous contents. * gnu/packages/patches/gcc-4.9-libsanitizer-mode-size.patch, gnu/packages/patches/gcc-6-libsanitizer-mode-size.patch, gnu/packages/patches/gcc-7-libsanitizer-mode-size.patch, gnu/packages/patches/gcc-8-libsanitizer-mode-size.patch, gnu/packages/patches/gcc-9-libsanitizer-mode-size.patch: New files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/gcc.scm (gcc-4.9, gcc-5, gcc-6, gcc-7, gcc-8, gcc-9)[source](patches): Add the respective patch files. * gnu/packages/base.scm (glibc): Update to 2.31. [source](patches): Remove obsolete. (glibc-2.30): New public variable. (glibc-2.29)[source](patches): Adjust for renamed patch file. --- gnu/local.mk | 6 +++ gnu/packages/base.scm | 25 ++++++++-- gnu/packages/gcc.scm | 6 +++ .../patches/gcc-4.9-libsanitizer-mode-size.patch | 52 +++++++++++++++++++ .../patches/gcc-6-libsanitizer-mode-size.patch | 53 ++++++++++++++++++++ .../patches/gcc-7-libsanitizer-mode-size.patch | 53 ++++++++++++++++++++ .../patches/gcc-8-libsanitizer-mode-size.patch | 56 +++++++++++++++++++++ .../patches/gcc-9-libsanitizer-mode-size.patch | 58 ++++++++++++++++++++++ .../patches/glibc-2.29-supported-locales.patch | 33 ++++++++++++ gnu/packages/patches/glibc-supported-locales.patch | 11 ++-- 10 files changed, 343 insertions(+), 10 deletions(-) create mode 100644 gnu/packages/patches/gcc-4.9-libsanitizer-mode-size.patch create mode 100644 gnu/packages/patches/gcc-6-libsanitizer-mode-size.patch create mode 100644 gnu/packages/patches/gcc-7-libsanitizer-mode-size.patch create mode 100644 gnu/packages/patches/gcc-8-libsanitizer-mode-size.patch create mode 100644 gnu/packages/patches/gcc-9-libsanitizer-mode-size.patch create mode 100644 gnu/packages/patches/glibc-2.29-supported-locales.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 347713239d..7b3d314993 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -883,6 +883,11 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \ %D%/packages/patches/gcc-4.9-libsanitizer-ustat.patch \ %D%/packages/patches/gcc-libsanitizer-ustat.patch \ + %D%/packages/patches/gcc-4.9-libsanitizer-mode-size.patch \ + %D%/packages/patches/gcc-6-libsanitizer-mode-size.patch \ + %D%/packages/patches/gcc-7-libsanitizer-mode-size.patch \ + %D%/packages/patches/gcc-8-libsanitizer-mode-size.patch \ + %D%/packages/patches/gcc-9-libsanitizer-mode-size.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ %D%/packages/patches/gcc-strmov-store-file-names.patch \ %D%/packages/patches/gcc-4-compile-with-gcc-5.patch \ @@ -954,6 +959,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-2.29-git-updates.patch \ %D%/packages/patches/glibc-2.27-supported-locales.patch \ %D%/packages/patches/glibc-2.28-supported-locales.patch \ + %D%/packages/patches/glibc-2.29-supported-locales.patch \ %D%/packages/patches/glibc-supported-locales.patch \ %D%/packages/patches/glm-restore-install-target.patch \ %D%/packages/patches/gmp-arm-asm-nothumb.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 184ef3b841..13bcf7fe9d 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -593,13 +593,13 @@ the store.") ;; version 2.28, GNU/Hurd used a different glibc branch. (package (name "glibc") - (version "2.30") + (version "2.31") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) (sha256 (base32 - "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72")) + "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj")) (snippet ;; Disable 'ldconfig' and /etc/ld.so.cache. The latter is ;; required on LFS distros to avoid loading the distro's libc.so @@ -611,7 +611,6 @@ the store.") #t)) (modules '((guix build utils))) (patches (search-patches "glibc-ldd-x86_64.patch" - "glibc-CVE-2019-19126.patch" "glibc-hidden-visibility-ldconfig.patch" "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch" @@ -843,6 +842,24 @@ with the Linux kernel.") ;; 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.30 + (package + (inherit glibc) + (version "2.30") + (source (origin + (inherit (package-source glibc)) + (uri (string-append "mirror://gnu/glibc/glibc-" version ".tar.xz")) + (sha256 + (base32 + "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72")) + (patches (search-patches "glibc-ldd-x86_64.patch" + "glibc-CVE-2019-19126.patch" + "glibc-hidden-visibility-ldconfig.patch" + "glibc-versioned-locpath.patch" + "glibc-allow-kernel-2.6.32.patch" + "glibc-reinstate-prlimit64-fallback.patch" + "glibc-2.29-supported-locales.patch")))))) + (define-public glibc-2.29 (package (inherit glibc) @@ -861,7 +878,7 @@ with the Linux kernel.") "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch" "glibc-reinstate-prlimit64-fallback.patch" - "glibc-supported-locales.patch")))))) + "glibc-2.29-supported-locales.patch")))))) (define-public glibc-2.28 (package diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 69bac8dd0c..90cb97e15c 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -402,6 +402,7 @@ Go. It also includes runtime support libraries for these languages.") "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-4.9-libsanitizer-fix.patch" "gcc-4.9-libsanitizer-ustat.patch" + "gcc-4.9-libsanitizer-mode-size.patch" "gcc-arm-bug-71399.patch" "gcc-asan-missing-include.patch" "gcc-libvtv-runpath.patch" @@ -441,6 +442,7 @@ Go. It also includes runtime support libraries for these languages.") "gcc-5.0-libvtv-runpath.patch" "gcc-5-source-date-epoch-1.patch" "gcc-5-source-date-epoch-2.patch" + "gcc-6-libsanitizer-mode-size.patch" "gcc-fix-texi2pod.patch")) (modules '((guix build utils))) (snippet @@ -473,6 +475,7 @@ Go. It also includes runtime support libraries for these languages.") (base32 "0i89fksfp6wr1xg9l8296aslcymv2idn60ip31wr9s4pwin7kwby")) (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-6-libsanitizer-mode-size.patch" "gcc-6-source-date-epoch-1.patch" "gcc-6-source-date-epoch-2.patch" "gcc-5.0-libvtv-runpath.patch")))) @@ -492,6 +495,7 @@ Go. It also includes runtime support libraries for these languages.") (base32 "0qg6kqc5l72hpnj4vr6l0p69qav0rh4anlkk3y55540zy3klc6dq")) (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-7-libsanitizer-mode-size.patch" "gcc-5.0-libvtv-runpath.patch")))) (description "GCC is the GNU Compiler Collection. It provides compiler front-ends @@ -510,6 +514,7 @@ It also includes runtime support libraries for these languages."))) (base32 "0b3xv411xhlnjmin2979nxcbnidgvzqdf4nbhix99x60dkzavfk4")) (patches (search-patches "gcc-8-strmov-store-file-names.patch" + "gcc-8-libsanitizer-mode-size.patch" "gcc-5.0-libvtv-runpath.patch")))))) (define-public gcc-9 @@ -524,6 +529,7 @@ It also includes runtime support libraries for these languages."))) (base32 "01mj3yk7z49i49168hg2cg7qs4bsccrrnv7pjmbdlf8j2a7z0vpa")) (patches (search-patches "gcc-9-strmov-store-file-names.patch" + "gcc-9-libsanitizer-mode-size.patch" "gcc-9-asan-fix-limits-include.patch" "gcc-5.0-libvtv-runpath.patch")))))) diff --git a/gnu/packages/patches/gcc-4.9-libsanitizer-mode-size.patch b/gnu/packages/patches/gcc-4.9-libsanitizer-mode-size.patch new file mode 100644 index 0000000000..7df22c21aa --- /dev/null +++ b/gnu/packages/patches/gcc-4.9-libsanitizer-mode-size.patch @@ -0,0 +1,52 @@ +Fix assertion failure in libsanitizer when using glibc 2.31 and later. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92154 +https://reviews.llvm.org/D69104 + +Adapted from these upstream revision: + +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=277981 +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=279653 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 196eb3b3c64..b588e07e5ab 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -928,7 +928,11 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); + CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); ++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) ++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit ++ on many architectures. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); ++#endif + CHECK_SIZE_AND_OFFSET(ipc_perm, __seq); + + CHECK_TYPE_SIZE(shmid_ds); +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index aec950454b3..6d94fc65c28 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -154,20 +154,13 @@ namespace __sanitizer { + u64 __unused1; + u64 __unused2; + #elif defined(__sparc__) +-# if defined(__arch64__) + unsigned mode; +- unsigned short __pad1; +-# else +- unsigned short __pad1; +- unsigned short mode; + unsigned short __pad2; +-# endif + unsigned short __seq; + unsigned long long __unused1; + unsigned long long __unused2; + #else +- unsigned short mode; +- unsigned short __pad1; ++ unsigned int mode; + unsigned short __seq; + unsigned short __pad2; + #if defined(__x86_64__) && !defined(_LP64) diff --git a/gnu/packages/patches/gcc-6-libsanitizer-mode-size.patch b/gnu/packages/patches/gcc-6-libsanitizer-mode-size.patch new file mode 100644 index 0000000000..005e3c4079 --- /dev/null +++ b/gnu/packages/patches/gcc-6-libsanitizer-mode-size.patch @@ -0,0 +1,53 @@ +Fix assertion failure in libsanitizer when using glibc 2.31 and later. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92154 +https://reviews.llvm.org/D69104 + +Adapted from these upstream revision: + +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=277981 +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=279653 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 069d8d557de..c49c28c6e07 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1130,8 +1130,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); + #ifndef __GLIBC_PREREQ + #define __GLIBC_PREREQ(x, y) 0 + #endif +-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) +-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ ++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) ++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit ++ on many architectures. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index 304d04e3935..6dee89c97e1 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -207,20 +207,13 @@ namespace __sanitizer { + unsigned long __unused1; + unsigned long __unused2; + #elif defined(__sparc__) +-# if defined(__arch64__) + unsigned mode; +- unsigned short __pad1; +-# else +- unsigned short __pad1; +- unsigned short mode; + unsigned short __pad2; +-# endif + unsigned short __seq; + unsigned long long __unused1; + unsigned long long __unused2; + #else +- unsigned short mode; +- unsigned short __pad1; ++ unsigned int mode; + unsigned short __seq; + unsigned short __pad2; + #if defined(__x86_64__) && !defined(_LP64) + diff --git a/gnu/packages/patches/gcc-7-libsanitizer-mode-size.patch b/gnu/packages/patches/gcc-7-libsanitizer-mode-size.patch new file mode 100644 index 0000000000..41b4a4cac6 --- /dev/null +++ b/gnu/packages/patches/gcc-7-libsanitizer-mode-size.patch @@ -0,0 +1,53 @@ +Fix assertion failure in libsanitizer when using glibc 2.31 and later. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92154 +https://reviews.llvm.org/D69104 + +Adapted from these upstream revision: + +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=277981 +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=279653 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 97eae3fc7bc..4089d4695e2 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1145,8 +1145,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); + CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); +-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) +-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ ++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) ++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit ++ on many architectures. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index c139322839a..7c3c2d866e5 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -211,20 +211,13 @@ namespace __sanitizer { + unsigned long __unused1; + unsigned long __unused2; + #elif defined(__sparc__) +-# if defined(__arch64__) + unsigned mode; +- unsigned short __pad1; +-# else +- unsigned short __pad1; +- unsigned short mode; + unsigned short __pad2; +-# endif + unsigned short __seq; + unsigned long long __unused1; + unsigned long long __unused2; + #else +- unsigned short mode; +- unsigned short __pad1; ++ unsigned int mode; + unsigned short __seq; + unsigned short __pad2; + #if defined(__x86_64__) && !defined(_LP64) + diff --git a/gnu/packages/patches/gcc-8-libsanitizer-mode-size.patch b/gnu/packages/patches/gcc-8-libsanitizer-mode-size.patch new file mode 100644 index 0000000000..e343034991 --- /dev/null +++ b/gnu/packages/patches/gcc-8-libsanitizer-mode-size.patch @@ -0,0 +1,56 @@ +Fix assertion failure in libsanitizer when using glibc 2.31 and later. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92154 +https://reviews.llvm.org/D69104 + +Adapted from these upstream revision: + +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=277981 +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=279653 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index a915d37cdfe..5c720b2e700 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1147,8 +1147,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); + CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); +-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) +-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ ++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) ++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit ++ on many architectures. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index 4d11d071776..eda75a7cd84 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -210,14 +210,8 @@ namespace __sanitizer { + u64 __unused1; + u64 __unused2; + #elif defined(__sparc__) +-#if defined(__arch64__) + unsigned mode; +- unsigned short __pad1; +-#else +- unsigned short __pad1; +- unsigned short mode; + unsigned short __pad2; +-#endif + unsigned short __seq; + unsigned long long __unused1; + unsigned long long __unused2; +@@ -228,8 +222,7 @@ namespace __sanitizer { + unsigned long __unused1; + unsigned long __unused2; + #else +- unsigned short mode; +- unsigned short __pad1; ++ unsigned int mode; + unsigned short __seq; + unsigned short __pad2; + #if defined(__x86_64__) && !defined(_LP64) + diff --git a/gnu/packages/patches/gcc-9-libsanitizer-mode-size.patch b/gnu/packages/patches/gcc-9-libsanitizer-mode-size.patch new file mode 100644 index 0000000000..9e99a3d198 --- /dev/null +++ b/gnu/packages/patches/gcc-9-libsanitizer-mode-size.patch @@ -0,0 +1,58 @@ +Fix assertion failure in libsanitizer when using glibc 2.31 and later. + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92154 +https://reviews.llvm.org/D69104 + +This is a combination of these upstream revisions: + +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=277981 +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=279653 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 6cd4a5bac8b..d823a12190c 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -1156,8 +1156,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); + CHECK_SIZE_AND_OFFSET(ipc_perm, gid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); + CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); +-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) +-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ ++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) ++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit ++ on many architectures. */ + CHECK_SIZE_AND_OFFSET(ipc_perm, mode); + #endif + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +index 73af92af1e8..6a673a7c995 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h +@@ -211,26 +211,13 @@ namespace __sanitizer { + u64 __unused1; + u64 __unused2; + #elif defined(__sparc__) +-#if defined(__arch64__) + unsigned mode; +- unsigned short __pad1; +-#else +- unsigned short __pad1; +- unsigned short mode; + unsigned short __pad2; +-#endif + unsigned short __seq; + unsigned long long __unused1; + unsigned long long __unused2; +-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__) +- unsigned int mode; +- unsigned short __seq; +- unsigned short __pad1; +- unsigned long __unused1; +- unsigned long __unused2; + #else +- unsigned short mode; +- unsigned short __pad1; ++ unsigned int mode; + unsigned short __seq; + unsigned short __pad2; + #if defined(__x86_64__) && !defined(_LP64) diff --git a/gnu/packages/patches/glibc-2.29-supported-locales.patch b/gnu/packages/patches/glibc-2.29-supported-locales.patch new file mode 100644 index 0000000000..05865dc7be --- /dev/null +++ b/gnu/packages/patches/glibc-2.29-supported-locales.patch @@ -0,0 +1,33 @@ +This patch is taken from debian's glibc package (generate-supported.mk). +It install the localedata/SUPPORTED file of the glibc. This file lists +all the supported locales of the glibc. + +diff --git a/localedata/Makefile b/localedata/Makefile +index 65079f9eb8..14818f84e0 100644 +--- a/localedata/Makefile ++++ b/localedata/Makefile +@@ -169,7 +169,8 @@ endif + # Files to install. + install-others := $(addprefix $(inst_i18ndir)/, \ + $(addsuffix .gz, $(charmaps)) \ +- $(locales)) ++ $(locales)) \ ++ $(inst_i18ndir)/SUPPORTED + + tests: $(objdir)/iconvdata/gconv-modules + +@@ -380,6 +381,14 @@ endif + + include SUPPORTED + ++$(inst_i18ndir)/SUPPORTED: SUPPORTED $(+force) ++ for locale in $(SUPPORTED-LOCALES); do \ ++ [ $$locale = true ] && continue; \ ++ echo $$locale | sed 's,/, ,' >> LOCALES; \ ++ done ++ $(make-target-directory) ++ $(INSTALL_DATA) LOCALES $@ ++ + INSTALL-SUPPORTED-LOCALE-ARCHIVE=$(addprefix install-archive-, $(SUPPORTED-LOCALES)) + INSTALL-SUPPORTED-LOCALE-FILES=$(addprefix install-files-, $(SUPPORTED-LOCALES)) + \ No newline at end of file diff --git a/gnu/packages/patches/glibc-supported-locales.patch b/gnu/packages/patches/glibc-supported-locales.patch index 05865dc7be..28577c75c0 100644 --- a/gnu/packages/patches/glibc-supported-locales.patch +++ b/gnu/packages/patches/glibc-supported-locales.patch @@ -3,20 +3,19 @@ It install the localedata/SUPPORTED file of the glibc. This file lists all the supported locales of the glibc. diff --git a/localedata/Makefile b/localedata/Makefile -index 65079f9eb8..14818f84e0 100644 --- a/localedata/Makefile +++ b/localedata/Makefile -@@ -169,7 +169,8 @@ endif - # Files to install. +@@ -176,7 +176,8 @@ + else install-others := $(addprefix $(inst_i18ndir)/, \ $(addsuffix .gz, $(charmaps)) \ - $(locales)) + $(locales)) \ + $(inst_i18ndir)/SUPPORTED + endif tests: $(objdir)/iconvdata/gconv-modules - -@@ -380,6 +381,14 @@ endif +@@ -401,6 +402,14 @@ include SUPPORTED @@ -30,4 +29,4 @@ index 65079f9eb8..14818f84e0 100644 + INSTALL-SUPPORTED-LOCALE-ARCHIVE=$(addprefix install-archive-, $(SUPPORTED-LOCALES)) INSTALL-SUPPORTED-LOCALE-FILES=$(addprefix install-files-, $(SUPPORTED-LOCALES)) - \ No newline at end of file + -- cgit 1.4.1 From d7ca0f73ff6db21ec254c7a229feb3467103154f Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Thu, 5 Mar 2020 17:47:41 +0100 Subject: gnu: coreutils: Update to 8.32. * gnu/packages/base.scm (coreutils): Update to 8.32. [arguments]: Remove obsolete phase. --- gnu/packages/base.scm | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 13bcf7fe9d..1989bdd7eb 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -290,14 +290,14 @@ used to apply commands with arbitrarily long arguments.") (define-public coreutils (package (name "coreutils") - (version "8.31") + (version "8.32") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/coreutils/coreutils-" version ".tar.xz")) (sha256 (base32 - "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz")))) + "1yjcrh5hw70c0yn8zw55pd6j51dj90anpq8mmg649ps9g3gdhn24")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! @@ -329,16 +329,6 @@ used to apply commands with arbitrarily long arguments.") (("/bin/sh") (which "sh"))) (substitute* (find-files "tests" "\\.sh$") (("#!/bin/sh") (string-append "#!" (which "sh")))) - #t)) - (add-before 'check 'disable-broken-test - (lambda _ - ;; This test hits the 127 character shebang limit in the build - ;; environment due to the way "env -S" splits arguments into - ;; shebangs. Note that "env-S-script.sh" works around this - ;; specific issue, but "env-S.pl" is not adjusted for build - ;; environments with long prefixes (/tmp/guix-build-...). - (substitute* "Makefile" - (("^.*tests/misc/env-S.pl.*$") "")) #t))))) (synopsis "Core GNU utilities (file, text, shell)") (description -- cgit 1.4.1 From 02043f36d728fd46a3d9b5bc7449cd847f1b231e Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sun, 8 Mar 2020 20:41:51 +0100 Subject: gnu: coreutils: Fix cross-compilation. Fix coreutils cross-compilation for aarch64 that was broken by 8.32 update. The following error occured: src/ls.c: In function 'print_dir': src/ls.c:3026:24: error: 'SYS_getdents' undeclared (first use in this function); did you mean 'SYS_getdents64'? if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1 ^~~~~~~~~~~~ SYS_getdents64 * gnu/packages/patches/coreutils-ls.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (coreutils): Apply it. --- gnu/local.mk | 1 + gnu/packages/base.scm | 5 +- gnu/packages/patches/coreutils-ls.patch | 117 ++++++++++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/coreutils-ls.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 0fe2c90781..7c3e2648e9 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -797,6 +797,7 @@ dist_patch_DATA = \ %D%/packages/patches/combinatorial-blas-awpm.patch \ %D%/packages/patches/combinatorial-blas-io-fix.patch \ %D%/packages/patches/containerd-test-with-go1.13.patch \ + %D%/packages/patches/coreutils-ls.patch \ %D%/packages/patches/cpufrequtils-fix-aclocal.patch \ %D%/packages/patches/crawl-upgrade-saves.patch \ %D%/packages/patches/crda-optional-gcrypt.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1989bdd7eb..f048e4b119 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -9,7 +9,7 @@ ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra -;;; Copyright © 2017 Mathieu Othacehe +;;; Copyright © 2017, 2020 Mathieu Othacehe ;;; Copyright © 2017, 2018, 2020 Marius Bakke ;;; Copyright © 2017 Eric Bavier ;;; Copyright © 2018 Tobias Geerinckx-Rice @@ -297,7 +297,8 @@ used to apply commands with arbitrarily long arguments.") version ".tar.xz")) (sha256 (base32 - "1yjcrh5hw70c0yn8zw55pd6j51dj90anpq8mmg649ps9g3gdhn24")))) + "1yjcrh5hw70c0yn8zw55pd6j51dj90anpq8mmg649ps9g3gdhn24")) + (patches (search-patches "coreutils-ls.patch")))) (build-system gnu-build-system) (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! diff --git a/gnu/packages/patches/coreutils-ls.patch b/gnu/packages/patches/coreutils-ls.patch new file mode 100644 index 0000000000..59cbbf00b5 --- /dev/null +++ b/gnu/packages/patches/coreutils-ls.patch @@ -0,0 +1,117 @@ +Patch taken from upstream to fix cross-compilation for aarch64. This can be +removed on the next coreutils release. + +From 10fcb97bd728f09d4a027eddf8ad2900f0819b0a Mon Sep 17 00:00:00 2001 +From: Paul Eggert +Date: Thu, 5 Mar 2020 17:25:29 -0800 +Subject: [PATCH] ls: restore 8.31 behavior on removed directories + +* NEWS: Mention this. +* src/ls.c: Do not include +(print_dir): Don't worry about whether the directory is removed. +* tests/ls/removed-directory.sh: Adjust to match new (i.e., old) +behavior. +--- + NEWS | 6 ++++++ + src/ls.c | 22 ---------------------- + tests/ls/removed-directory.sh | 10 ++-------- + 3 files changed, 8 insertions(+), 30 deletions(-) + +diff --git a/NEWS b/NEWS +index fdc8bf5db..653e7178b 100644 +--- a/NEWS ++++ b/NEWS +@@ -2,6 +2,12 @@ GNU coreutils NEWS -*- outline -*- + + * Noteworthy changes in release ?.? (????-??-??) [?] + ++** Changes in behavior ++ ++ On GNU/Linux systems, ls no longer issues an error message on ++ directory merely because it was removed. This reverts a change ++ that was made in release 8.32. ++ + + * Noteworthy changes in release 8.32 (2020-03-05) [stable] + +diff --git a/src/ls.c b/src/ls.c +index 24b983287..4acf5f44d 100644 +--- a/src/ls.c ++++ b/src/ls.c +@@ -49,10 +49,6 @@ + # include + #endif + +-#ifdef __linux__ +-# include +-#endif +- + #include + #include + #include +@@ -2896,7 +2892,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + struct dirent *next; + uintmax_t total_blocks = 0; + static bool first = true; +- bool found_any_entries = false; + + errno = 0; + dirp = opendir (name); +@@ -2972,7 +2967,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + next = readdir (dirp); + if (next) + { +- found_any_entries = true; + if (! file_ignored (next->d_name)) + { + enum filetype type = unknown; +@@ -3018,22 +3012,6 @@ print_dir (char const *name, char const *realname, bool command_line_arg) + if (errno != EOVERFLOW) + break; + } +-#ifdef __linux__ +- else if (! found_any_entries) +- { +- /* If readdir finds no directory entries at all, not even "." or +- "..", then double check that the directory exists. */ +- if (syscall (SYS_getdents, dirfd (dirp), NULL, 0) == -1 +- && errno != EINVAL) +- { +- /* We exclude EINVAL as that pertains to buffer handling, +- and we've passed NULL as the buffer for simplicity. +- ENOENT is returned if appropriate before buffer handling. */ +- file_failure (command_line_arg, _("reading directory %s"), name); +- } +- break; +- } +-#endif + else + break; + +diff --git a/tests/ls/removed-directory.sh b/tests/ls/removed-directory.sh +index e8c835dab..fe8f929a1 100755 +--- a/tests/ls/removed-directory.sh ++++ b/tests/ls/removed-directory.sh +@@ -26,20 +26,14 @@ case $host_triplet in + *) skip_ 'non linux kernel' ;; + esac + +-LS_FAILURE=2 +- +-cat <<\EOF >exp-err || framework_failure_ +-ls: reading directory '.': No such file or directory +-EOF +- + cwd=$(pwd) + mkdir d || framework_failure_ + cd d || framework_failure_ + rmdir ../d || framework_failure_ + +-returns_ $LS_FAILURE ls >../out 2>../err || fail=1 ++ls >../out 2>../err || fail=1 + cd "$cwd" || framework_failure_ + compare /dev/null out || fail=1 +-compare exp-err err || fail=1 ++compare /dev/null err || fail=1 + + Exit $fail -- cgit 1.4.1 From 11a5ffba7327250ebe7b67c777204e49858310bb Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sat, 7 Mar 2020 03:53:38 -0500 Subject: gnu: coreutils: Remove libcap dependency for the Hurd. * gnu/packages/linux.scm (libcap)[supported-systems]: Remove the Hurd. * gnu/packages/base.scm (coreutils)[inputs]: Include libcap only for supported systems. Fixes building on the Hurd. --- gnu/packages/base.scm | 14 ++++++++------ gnu/packages/linux.scm | 2 ++ 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index f048e4b119..d74d304de1 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2014 Alex Kost ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner -;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017, 2020 Mathieu Othacehe @@ -303,11 +303,13 @@ used to apply commands with arbitrarily long arguments.") (inputs `(("acl" ,acl) ; TODO: add SELinux ("gmp" ,gmp) ;bignums in 'expr', yay! - ;; Drop the dependency on libcap when cross-compiling since it's - ;; not quite cross-compilable. - ,@(if (%current-target-system) - '() - `(("libcap" ,libcap))))) ;capability support is 'ls', etc. + ;; Do not use libcap when cross-compiling since it's not quite + ;; cross-compilable; and use it only for supported systems. + ,@(if (and (not (%current-target-system)) + (not (member (%current-system) + (package-supported-systems libcap)))) + `(("libcap" ,libcap)) ;capability support in 'ls', etc. + '()))) (native-inputs ;; Perl is needed to run tests in native builds, and to run the bundled ;; copy of help2man. However, don't pass it when cross-compiling since diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index e9f261e859..977f448b56 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2020 Pierre Neidhardt ;;; Copyright © 2020 Chris Marusich ;;; Copyright © 2020 Vincent Legoll +;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; ;;; This file is part of GNU Guix. ;;; @@ -2068,6 +2069,7 @@ configuration (iptunnel, ipmaddr).") (assoc-ref %outputs "out")) "RAISE_SETFCAP=no"))) (native-inputs `(("perl" ,perl))) + (supported-systems (delete "i586-gnu" %supported-systems)) (home-page "https://sites.google.com/site/fullycapable/") (synopsis "Library for working with POSIX capabilities") (description -- cgit 1.4.1 From d8f78f54489eae44ffbee3f2af7bbc130e8c0c72 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 16 Mar 2020 15:31:58 +0100 Subject: gnu: ld-wrapper: Use _IOLBF on Guile 2.0 only. * gnu/packages/base.scm (make-ld-wrapper)[arguments]: Wrap use of '_IOLBF' in 'cond-expand' and use 'line instead on Guile > 2.0. --- gnu/packages/base.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index d74d304de1..196106fa29 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -546,7 +546,9 @@ wrapper for the cross-linker for that target, called 'TARGET-ld'." '(string-append bin "/ld"))) (go (string-append ld ".go"))) - (setvbuf (current-output-port) _IOLBF) + (setvbuf (current-output-port) + (cond-expand (guile-2.0 _IOLBF) + (else 'line))) (format #t "building ~s/bin/ld wrapper in ~s~%" (assoc-ref %build-inputs "binutils") out) -- cgit 1.4.1 From 1b70995498973fe899f8f039586e303c7ec7a3bd Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 18 Mar 2020 20:04:57 +0100 Subject: gnu: make-ld-wrapper: Default to Guile 3.0. * gnu/packages/base.scm (make-ld-wrapper): Use GUILE-3.0 as the default Guile. --- gnu/packages/base.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 196106fa29..8dbc0b4b40 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -508,7 +508,7 @@ included.") (define* (make-ld-wrapper name #:key (target (const #f)) binutils - (guile (canonical-package guile-2.2)) + (guile (canonical-package guile-3.0)) (bash (canonical-package bash)) (guile-for-build guile)) "Return a package called NAME that contains a wrapper for the 'ld' program -- cgit 1.4.1 From 974c42a70a12f0c4ed298c2c8dab3f154338de58 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 1 Mar 2020 16:37:37 +0100 Subject: gnu: glibc: Add clock patches for the Hurd. * gnu/packages/patches/glibc-hurd-clock_t_centiseconds.patch: New file. * gnu/packages/patches/glibc-hurd-clock_gettime_monotonic.patch: New file. * gnu/local.mk (dist_patch_DATA): Update them. * gnu/packages/base.scm (glibc): Use them. --- gnu/local.mk | 4 +- gnu/packages/base.scm | 4 +- .../glibc-hurd-clock_gettime_monotonic.patch | 84 ++++++++++++++++++++ .../patches/glibc-hurd-clock_t_centiseconds.patch | 90 ++++++++++++++++++++++ 4 files changed, 180 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/glibc-hurd-clock_gettime_monotonic.patch create mode 100644 gnu/packages/patches/glibc-hurd-clock_t_centiseconds.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index adeaa6deaa..f7b0a2577d 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -11,7 +11,7 @@ # Copyright © 2016 Ben Woodcroft # Copyright © 2016, 2017, 2018, 2019 Alex Vong # Copyright © 2016, 2017, 2018, 2019 Efraim Flashner -# Copyright © 2016, 2017, 2018, 2019 Jan (janneke) Nieuwenhuizen +# Copyright © 2016, 2017, 2018, 2019, 2020 Jan (janneke) Nieuwenhuizen # Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice # Copyright © 2017, 2018 Clément Lassieur # Copyright © 2017, 2020 Mathieu Othacehe @@ -962,6 +962,8 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-bootstrap-system-2.16.0.patch \ %D%/packages/patches/glibc-bootstrap-system.patch \ %D%/packages/patches/glibc-hidden-visibility-ldconfig.patch \ + %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \ + %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \ %D%/packages/patches/glibc-hurd-magic-pid.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-locales.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index c3298b3cec..1b7a834ac8 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -612,7 +612,9 @@ the store.") "glibc-versioned-locpath.patch" "glibc-allow-kernel-2.6.32.patch" "glibc-reinstate-prlimit64-fallback.patch" - "glibc-supported-locales.patch")))) + "glibc-supported-locales.patch" + "glibc-hurd-clock_t_centiseconds.patch" + "glibc-hurd-clock_gettime_monotonic.patch")))) (build-system gnu-build-system) ;; Glibc's refers to , for instance, so glibc diff --git a/gnu/packages/patches/glibc-hurd-clock_gettime_monotonic.patch b/gnu/packages/patches/glibc-hurd-clock_gettime_monotonic.patch new file mode 100644 index 0000000000..1c3fe427f9 --- /dev/null +++ b/gnu/packages/patches/glibc-hurd-clock_gettime_monotonic.patch @@ -0,0 +1,84 @@ +This is needed to run Python on the Hurd, especially during the build of +python-boot0. + +Adapted from https://salsa.debian.org/glibc-team/glibc/-/blob/glibc-2.31/debian/patches/hurd-i386/unsubmitted-clock_t_centiseconds.diff + +Use the realtime clock for the monotonic clock. This is of course not a proper +implementation (which is being done in Mach), but will permit to fix at least +the iceweasel stack. + +vlc however doesn't build when _POSIX_CLOCK_SELECTION is enabled but +_POSIX_TIMERS is not, and they refuse to fix that (see #765578), so disable the +former. + +From 0aa1dfd580cf9ad7b812c307b128decb782b825f Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Mon, 2 Mar 2020 18:59:04 +0100 +Subject: [PATCH 2/2] Use realtime clock for the monotonic clock. + +--- + sysdeps/mach/clock_gettime.c | 2 +- + sysdeps/mach/hurd/bits/posix_opt.h | 6 +++--- + sysdeps/posix/clock_getres.c | 1 + + sysdeps/pthread/timer_create.c | 2 +- + 4 files changed, 6 insertions(+), 5 deletions(-) + +diff --git a/sysdeps/mach/clock_gettime.c b/sysdeps/mach/clock_gettime.c +index ac3547df3c..af8681ba4e 100644 +--- a/sysdeps/mach/clock_gettime.c ++++ b/sysdeps/mach/clock_gettime.c +@@ -25,7 +25,7 @@ + int + __clock_gettime (clockid_t clock_id, struct timespec *ts) + { +- if (clock_id != CLOCK_REALTIME) ++ if (clock_id != CLOCK_MONOTONIC && clock_id != CLOCK_REALTIME) + { + errno = EINVAL; + return -1; +diff --git a/sysdeps/mach/hurd/bits/posix_opt.h b/sysdeps/mach/hurd/bits/posix_opt.h +index 0050151332..27b3a28ab7 100644 +--- a/sysdeps/mach/hurd/bits/posix_opt.h ++++ b/sysdeps/mach/hurd/bits/posix_opt.h +@@ -163,10 +163,10 @@ + #define _POSIX_THREAD_PROCESS_SHARED -1 + + /* The monotonic clock might be available. */ +-#define _POSIX_MONOTONIC_CLOCK 0 ++#define _POSIX_MONOTONIC_CLOCK 200809L + +-/* The clock selection interfaces are available. */ +-#define _POSIX_CLOCK_SELECTION 200809L ++/* The clock selection interfaces are not really available yet. */ ++#define _POSIX_CLOCK_SELECTION -1 + + /* Advisory information interfaces could be available in future. */ + #define _POSIX_ADVISORY_INFO 0 +diff --git a/sysdeps/posix/clock_getres.c b/sysdeps/posix/clock_getres.c +index fcd79fd554..1dd02aa449 100644 +--- a/sysdeps/posix/clock_getres.c ++++ b/sysdeps/posix/clock_getres.c +@@ -52,6 +52,7 @@ __clock_getres (clockid_t clock_id, struct timespec *res) + switch (clock_id) + { + case CLOCK_REALTIME: ++ case CLOCK_MONOTONIC: + retval = realtime_getres (res); + break; + +diff --git a/sysdeps/pthread/timer_create.c b/sysdeps/pthread/timer_create.c +index 9d8a9ea8ae..3430582c09 100644 +--- a/sysdeps/pthread/timer_create.c ++++ b/sysdeps/pthread/timer_create.c +@@ -48,7 +48,7 @@ timer_create (clockid_t clock_id, struct sigevent *evp, timer_t *timerid) + return -1; + } + +- if (clock_id != CLOCK_REALTIME) ++ if (clock_id != CLOCK_REALTIME && clock_id != CLOCK_MONOTONIC) + { + __set_errno (EINVAL); + return -1; +-- +2.24.0 + diff --git a/gnu/packages/patches/glibc-hurd-clock_t_centiseconds.patch b/gnu/packages/patches/glibc-hurd-clock_t_centiseconds.patch new file mode 100644 index 0000000000..8f9676c873 --- /dev/null +++ b/gnu/packages/patches/glibc-hurd-clock_t_centiseconds.patch @@ -0,0 +1,90 @@ +This is needed to run Python on the Hurd, especially during the build of +python-boot0. + +Adapted from https://salsa.debian.org/glibc-team/glibc/-/blob/glibc-2.31/debian/patches/hurd-i386/unsubmitted-clock_t_centiseconds.diff + + commit d57f2f9b4bd007846af2fb4217486ea572579010 + Author: Richard Braun + Date: Tue Aug 27 11:35:31 2013 +0200 + + Express CPU time (clock_t of times(2)) in centiseconds + +From 170c292b643fdc1eb56881e6592b07c0c019993e Mon Sep 17 00:00:00 2001 +From: Jan Nieuwenhuizen +Date: Mon, 2 Mar 2020 18:28:54 +0100 +Subject: [PATCH 1/2] Express CPU time (clock_t) in centiseconds + +--- + sysdeps/mach/hurd/clock.c | 8 ++++---- + sysdeps/mach/hurd/getclktck.c | 5 ++--- + sysdeps/mach/hurd/setitimer.c | 2 +- + sysdeps/mach/hurd/times.c | 2 +- + 4 files changed, 8 insertions(+), 9 deletions(-) + +diff --git a/sysdeps/mach/hurd/clock.c b/sysdeps/mach/hurd/clock.c +index 7cb42df786..4db49b579d 100644 +--- a/sysdeps/mach/hurd/clock.c ++++ b/sysdeps/mach/hurd/clock.c +@@ -44,10 +44,10 @@ clock (void) + if (err) + return __hurd_fail (err); + +- total = bi.user_time.seconds * 1000000 + bi.user_time.microseconds; +- total += tti.user_time.seconds * 1000000 + tti.user_time.microseconds; +- total += bi.system_time.seconds * 1000000 + bi.system_time.microseconds; +- total += tti.system_time.seconds * 1000000 + tti.system_time.microseconds; ++ total = bi.user_time.seconds * 100 + bi.user_time.microseconds / 10000; ++ total += tti.user_time.seconds * 100 + tti.user_time.microseconds / 10000; ++ total += bi.system_time.seconds * 100 + bi.system_time.microseconds / 10000; ++ total += tti.system_time.seconds * 100 + tti.system_time.microseconds / 10000; + + return total; + } +diff --git a/sysdeps/mach/hurd/getclktck.c b/sysdeps/mach/hurd/getclktck.c +index 943e36e805..5a3cf0930b 100644 +--- a/sysdeps/mach/hurd/getclktck.c ++++ b/sysdeps/mach/hurd/getclktck.c +@@ -18,12 +18,11 @@ + + #include + +-/* Return frequency of `times'. +- Since Mach reports CPU times in microseconds, we always use 1 million. */ ++/* Return frequency of `times'. */ + int + __getclktck (void) + { +- return 1000000; ++ return 100; + } + + /* Before glibc 2.2, the Hurd actually did this differently, so we +diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c +index b16f4ddd5d..8bf1464830 100644 +--- a/sysdeps/mach/hurd/setitimer.c ++++ b/sysdeps/mach/hurd/setitimer.c +@@ -43,7 +43,7 @@ quantize_timeval (struct timeval *tv) + static time_t quantum = -1; + + if (quantum == -1) +- quantum = 1000000 / __getclktck (); ++ quantum = 100 / __getclktck (); + + tv->tv_usec = ((tv->tv_usec + (quantum - 1)) / quantum) * quantum; + if (tv->tv_usec >= 1000000) +diff --git a/sysdeps/mach/hurd/times.c b/sysdeps/mach/hurd/times.c +index 23ed992783..cbf6039b19 100644 +--- a/sysdeps/mach/hurd/times.c ++++ b/sysdeps/mach/hurd/times.c +@@ -29,7 +29,7 @@ + static inline clock_t + clock_from_time_value (const time_value_t *t) + { +- return t->seconds * 1000000 + t->microseconds; ++ return t->seconds * 100 + t->microseconds / 10000; + } + + /* Store the CPU time used by this process and all its +-- +2.24.0 + -- cgit 1.4.1 From 096a8e35e746d623810e214e3e4a1008b99598fe Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Sun, 8 Mar 2020 14:01:17 +0100 Subject: gnu: glibc: Add signal SA_SIGINFO support for the Hurd. * gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/base.scm (glibc): Use it. --- gnu/local.mk | 1 + gnu/packages/base.scm | 3 +- .../patches/glibc-hurd-signal-sa-siginfo.patch | 637 +++++++++++++++++++++ 3 files changed, 640 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch (limited to 'gnu/packages/base.scm') diff --git a/gnu/local.mk b/gnu/local.mk index f7b0a2577d..f0f47aa691 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -965,6 +965,7 @@ dist_patch_DATA = \ %D%/packages/patches/glibc-hurd-clock_gettime_monotonic.patch \ %D%/packages/patches/glibc-hurd-clock_t_centiseconds.patch \ %D%/packages/patches/glibc-hurd-magic-pid.patch \ + %D%/packages/patches/glibc-hurd-signal-sa-siginfo.patch \ %D%/packages/patches/glibc-ldd-x86_64.patch \ %D%/packages/patches/glibc-locales.patch \ %D%/packages/patches/glibc-locales-2.28.patch \ diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 1b7a834ac8..5c976aee52 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -614,7 +614,8 @@ the store.") "glibc-reinstate-prlimit64-fallback.patch" "glibc-supported-locales.patch" "glibc-hurd-clock_t_centiseconds.patch" - "glibc-hurd-clock_gettime_monotonic.patch")))) + "glibc-hurd-clock_gettime_monotonic.patch" + "glibc-hurd-signal-sa-siginfo.patch")))) (build-system gnu-build-system) ;; Glibc's refers to , for instance, so glibc diff --git a/gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch b/gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch new file mode 100644 index 0000000000..36ea55e188 --- /dev/null +++ b/gnu/packages/patches/glibc-hurd-signal-sa-siginfo.patch @@ -0,0 +1,637 @@ +This patch is needed to build e2fsprogs, util-linux. + +Taken from https://salsa.debian.org/glibc-team/glibc/-/blob/glibc-2.31/debian/patches/hurd-i386/tg-hurdsig-SA_SIGINFO.diff + +From: Jeremie Koenig +Subject: [PATCH] implement SA_SIGINFO signal handlers. + + 52baaca Hurd signals: Copy bits/sigaction.h + 4232c66 Hurd signals: SA_SIGINFO support + 1831cfe Hurd signals: Use POSIX sigcodes + +--- + hurd/hurd/signal.h | 5 + + hurd/hurdfault.c | 2 + hurd/hurdinit.c | 2 + hurd/hurdsig.c | 6 - + sysdeps/mach/hurd/bits/sigaction.h | 86 +++++++++++++++++++++ + sysdeps/mach/hurd/i386/bits/sigcontext.h | 4 + sysdeps/mach/hurd/i386/exc2signal.c | 123 +++++++++++++++++++----------- + sysdeps/mach/hurd/i386/trampoline.c | 125 ++++++++++++++++++++++++++++--- + sysdeps/mach/hurd/kill.c | 2 + sysdeps/mach/hurd/setitimer.c | 2 + 10 files changed, 293 insertions(+), 64 deletions(-) + +Index: glibc-2.31/hurd/hurd/signal.h +=================================================================== +--- glibc-2.31.orig/hurd/hurd/signal.h ++++ glibc-2.31/hurd/hurd/signal.h +@@ -290,6 +290,11 @@ extern int _hurd_raise_signal (struct hu + extern void _hurd_exception2signal (struct hurd_signal_detail *detail, + int *signo); + ++/* Translate a Mach exception into a signal with a legacy sigcode. */ ++ ++extern void _hurd_exception2signal_legacy (struct hurd_signal_detail *detail, ++ int *signo); ++ + + /* Make the thread described by SS take the signal described by SIGNO and + DETAIL. If the process is traced, this will in fact stop with a SIGNO +Index: glibc-2.31/hurd/hurdfault.c +=================================================================== +--- glibc-2.31.orig/hurd/hurdfault.c ++++ glibc-2.31/hurd/hurdfault.c +@@ -70,7 +70,7 @@ _hurdsig_fault_catch_exception_raise (ma + codes into a signal number and subcode. */ + _hurd_exception2signal (&d, &signo); + +- return HURD_PREEMPT_SIGNAL_P (&_hurdsig_fault_preemptor, signo, d.code) ++ return HURD_PREEMPT_SIGNAL_P (&_hurdsig_fault_preemptor, signo, d.exc_subcode) + ? 0 : EGREGIOUS; + } + +Index: glibc-2.31/hurd/hurdinit.c +=================================================================== +--- glibc-2.31.orig/hurd/hurdinit.c ++++ glibc-2.31/hurd/hurdinit.c +@@ -177,7 +177,7 @@ _hurd_new_proc_init (char **argv, + /* This process is "traced", meaning it should stop on signals or exec. + We are all set up now to handle signals. Stop ourselves, to inform + our parent (presumably a debugger) that the exec has completed. */ +- __msg_sig_post (_hurd_msgport, SIGTRAP, 0, __mach_task_self ()); ++ __msg_sig_post (_hurd_msgport, SIGTRAP, TRAP_TRACE, __mach_task_self ()); + } + + #include +Index: glibc-2.31/hurd/hurdsig.c +=================================================================== +--- glibc-2.31.orig/hurd/hurdsig.c ++++ glibc-2.31/hurd/hurdsig.c +@@ -730,7 +730,7 @@ post_signal (struct hurd_sigstate *ss, + { /* PE cannot be null. */ + do + { +- if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->code)) ++ if (HURD_PREEMPT_SIGNAL_P (pe, signo, detail->exc_subcode)) + { + if (pe->preemptor) + { +@@ -1374,7 +1374,7 @@ _S_msg_sig_post (mach_port_t me, + if (err = signal_allowed (signo, refport)) + return err; + +- d.code = sigcode; ++ d.code = d.exc_subcode = sigcode; + d.exc = 0; + + /* Post the signal to a global receiver thread (or mark it pending in +@@ -1403,7 +1403,7 @@ _S_msg_sig_post_untraced (mach_port_t me + if (err = signal_allowed (signo, refport)) + return err; + +- d.code = sigcode; ++ d.code = d.exc_subcode = sigcode; + d.exc = 0; + + /* Post the signal to the designated signal-receiving thread. This will +Index: glibc-2.31/sysdeps/mach/hurd/bits/sigaction.h +=================================================================== +--- /dev/null ++++ glibc-2.31/sysdeps/mach/hurd/bits/sigaction.h +@@ -0,0 +1,86 @@ ++/* Copyright (C) 1991-2015 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, write to the Free ++ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA ++ 02111-1307 USA. */ ++ ++#ifndef _BITS_SIGACTION_H ++#define _BITS_SIGACTION_H 1 ++ ++#ifndef _SIGNAL_H ++# error "Never include directly; use instead." ++#endif ++ ++/* These definitions match those used by the 4.4 BSD kernel. ++ If the operating system has a `sigaction' system call that correctly ++ implements the POSIX.1 behavior, there should be a system-dependent ++ version of this file that defines `struct sigaction' and the `SA_*' ++ constants appropriately. */ ++ ++/* Structure describing the action to be taken when a signal arrives. */ ++struct sigaction ++ { ++ /* Signal handler. */ ++#if defined __USE_POSIX199309 || defined __USE_XOPEN_EXTENDED ++ union ++ { ++ /* Used if SA_SIGINFO is not set. */ ++ __sighandler_t sa_handler; ++ /* Used if SA_SIGINFO is set. */ ++ void (*sa_sigaction) (int, siginfo_t *, void *); ++ } ++ __sigaction_handler; ++# define sa_handler __sigaction_handler.sa_handler ++# define sa_sigaction __sigaction_handler.sa_sigaction ++#else ++ __sighandler_t sa_handler; ++#endif ++ ++ /* Additional set of signals to be blocked. */ ++ __sigset_t sa_mask; ++ ++ /* Special flags. */ ++ int sa_flags; ++ }; ++ ++/* Bits in `sa_flags'. */ ++#if defined __USE_XOPEN_EXTENDED || defined __USE_MISC ++# define SA_ONSTACK 0x0001 /* Take signal on signal stack. */ ++#endif ++#if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8 ++# define SA_RESTART 0x0002 /* Restart syscall on signal return. */ ++# define SA_NODEFER 0x0010 /* Don't automatically block the signal when ++ its handler is being executed. */ ++# define SA_RESETHAND 0x0004 /* Reset to SIG_DFL on entry to handler. */ ++#endif ++#define SA_NOCLDSTOP 0x0008 /* Don't send SIGCHLD when children stop. */ ++#define SA_SIGINFO 0x0040 /* Signal handler with SA_SIGINFO args */ ++ ++#ifdef __USE_MISC ++# define SA_INTERRUPT 0 /* Historical no-op ("not SA_RESTART"). */ ++ ++/* Some aliases for the SA_ constants. */ ++# define SA_NOMASK SA_NODEFER ++# define SA_ONESHOT SA_RESETHAND ++# define SA_STACK SA_ONSTACK ++#endif ++ ++ ++/* Values for the HOW argument to `sigprocmask'. */ ++#define SIG_BLOCK 1 /* Block signals. */ ++#define SIG_UNBLOCK 2 /* Unblock signals. */ ++#define SIG_SETMASK 3 /* Set the set of blocked signals. */ ++ ++#endif +Index: glibc-2.31/sysdeps/mach/hurd/i386/bits/sigcontext.h +=================================================================== +--- glibc-2.31.orig/sysdeps/mach/hurd/i386/bits/sigcontext.h ++++ glibc-2.31/sysdeps/mach/hurd/i386/bits/sigcontext.h +@@ -97,6 +97,10 @@ struct sigcontext + #define sc_ps sc_efl + + ++/* The deprecated sigcode values below are passed as an extra, non-portable ++ argument to regular signal handlers. You should use SA_SIGINFO handlers ++ instead, which use the standard POSIX signal codes. */ ++ + /* Codes for SIGFPE. */ + #define FPE_INTOVF_TRAP 0x1 /* integer overflow */ + #define FPE_INTDIV_FAULT 0x2 /* integer divide by zero */ +Index: glibc-2.31/sysdeps/mach/hurd/i386/exc2signal.c +=================================================================== +--- glibc-2.31.orig/sysdeps/mach/hurd/i386/exc2signal.c ++++ glibc-2.31/sysdeps/mach/hurd/i386/exc2signal.c +@@ -23,8 +23,8 @@ + /* Translate the Mach exception codes, as received in an `exception_raise' RPC, + into a signal number and signal subcode. */ + +-void +-_hurd_exception2signal (struct hurd_signal_detail *detail, int *signo) ++static void ++exception2signal (struct hurd_signal_detail *detail, int *signo, int posix) + { + detail->error = 0; + +@@ -36,44 +36,62 @@ _hurd_exception2signal (struct hurd_sign + break; + + case EXC_BAD_ACCESS: +- if (detail->exc_code == KERN_INVALID_ADDRESS +- || detail->exc_code == KERN_PROTECTION_FAILURE +- || detail->exc_code == KERN_WRITE_PROTECTION_FAILURE) +- *signo = SIGSEGV; +- else +- *signo = SIGBUS; +- detail->code = detail->exc_subcode; ++ switch (detail->exc_code) ++ { ++ case KERN_INVALID_ADDRESS: ++ case KERN_MEMORY_FAILURE: ++ *signo = SIGSEGV; ++ detail->code = posix ? SEGV_MAPERR : detail->exc_subcode; ++ break; ++ ++ case KERN_PROTECTION_FAILURE: ++ case KERN_WRITE_PROTECTION_FAILURE: ++ *signo = SIGSEGV; ++ detail->code = posix ? SEGV_ACCERR : detail->exc_subcode; ++ break; ++ ++ default: ++ *signo = SIGBUS; ++ detail->code = posix ? BUS_ADRERR : detail->exc_subcode; ++ break; ++ } + detail->error = detail->exc_code; + break; + + case EXC_BAD_INSTRUCTION: + *signo = SIGILL; +- if (detail->exc_code == EXC_I386_INVOP) +- detail->code = ILL_INVOPR_FAULT; +- else if (detail->exc_code == EXC_I386_STKFLT) +- detail->code = ILL_STACK_FAULT; +- else +- detail->code = 0; ++ switch (detail->exc_code) ++ { ++ case EXC_I386_INVOP: ++ detail->code = posix ? ILL_ILLOPC : ILL_INVOPR_FAULT; ++ break; ++ ++ case EXC_I386_STKFLT: ++ detail->code = posix ? ILL_BADSTK : ILL_STACK_FAULT; ++ break; ++ ++ default: ++ detail->code = 0; ++ break; ++ } + break; + + case EXC_ARITHMETIC: ++ *signo = SIGFPE; + switch (detail->exc_code) + { + case EXC_I386_DIV: /* integer divide by zero */ +- *signo = SIGFPE; +- detail->code = FPE_INTDIV_FAULT; ++ detail->code = posix ? FPE_INTDIV : FPE_INTDIV_FAULT; + break; + + case EXC_I386_INTO: /* integer overflow */ +- *signo = SIGFPE; +- detail->code = FPE_INTOVF_TRAP; ++ detail->code = posix ? FPE_INTOVF : FPE_INTOVF_TRAP; + break; + + /* These aren't anywhere documented or used in Mach 3.0. */ + case EXC_I386_NOEXT: + case EXC_I386_EXTOVR: + default: +- *signo = SIGFPE; + detail->code = 0; + break; + +@@ -82,51 +100,43 @@ _hurd_exception2signal (struct hurd_sign + Give an error code corresponding to the first bit set. */ + if (detail->exc_subcode & FPS_IE) + { +- *signo = SIGILL; +- detail->code = ILL_FPEOPR_FAULT; ++ /* NB: We used to send SIGILL here but we can't distinguish ++ POSIX vs. legacy with respect to what signal we send. */ ++ detail->code = posix ? FPE_FLTINV : 0 /*ILL_FPEOPR_FAULT*/; + } + else if (detail->exc_subcode & FPS_DE) + { +- *signo = SIGFPE; +- detail->code = FPE_FLTDNR_FAULT; ++ detail->code = posix ? FPE_FLTUND : FPE_FLTDNR_FAULT; + } + else if (detail->exc_subcode & FPS_ZE) + { +- *signo = SIGFPE; +- detail->code = FPE_FLTDIV_FAULT; ++ detail->code = posix ? FPE_FLTDIV : FPE_FLTDIV_FAULT; + } + else if (detail->exc_subcode & FPS_OE) + { +- *signo = SIGFPE; +- detail->code = FPE_FLTOVF_FAULT; ++ detail->code = posix ? FPE_FLTOVF : FPE_FLTOVF_FAULT; + } + else if (detail->exc_subcode & FPS_UE) + { +- *signo = SIGFPE; +- detail->code = FPE_FLTUND_FAULT; ++ detail->code = posix ? FPE_FLTUND : FPE_FLTUND_FAULT; + } + else if (detail->exc_subcode & FPS_PE) + { +- *signo = SIGFPE; +- detail->code = FPE_FLTINX_FAULT; ++ detail->code = posix ? FPE_FLTRES : FPE_FLTINX_FAULT; + } + else + { +- *signo = SIGFPE; + detail->code = 0; + } + break; + + /* These two can only be arithmetic exceptions if we +- are in V86 mode, which sounds like emulation to me. +- (See Mach 3.0 i386/trap.c.) */ ++ are in V86 mode. (See Mach 3.0 i386/trap.c.) */ + case EXC_I386_EMERR: +- *signo = SIGFPE; +- detail->code = FPE_EMERR_FAULT; ++ detail->code = posix ? 0 : FPE_EMERR_FAULT; + break; + case EXC_I386_BOUND: +- *signo = SIGFPE; +- detail->code = FPE_EMBND_FAULT; ++ detail->code = posix ? FPE_FLTSUB : FPE_EMBND_FAULT; + break; + } + break; +@@ -143,7 +153,7 @@ _hurd_exception2signal (struct hurd_sign + if (detail->exc_code == EXC_I386_BOUND) + { + *signo = SIGFPE; +- detail->code = FPE_SUBRNG_FAULT; ++ detail->code = posix ? FPE_FLTSUB : FPE_SUBRNG_FAULT; + } + else + { +@@ -154,13 +164,34 @@ _hurd_exception2signal (struct hurd_sign + + case EXC_BREAKPOINT: + *signo = SIGTRAP; +- if (detail->exc_code == EXC_I386_SGL) +- detail->code = DBG_SINGLE_TRAP; +- else if (detail->exc_code == EXC_I386_BPT) +- detail->code = DBG_BRKPNT_FAULT; +- else +- detail->code = 0; ++ switch (detail->exc_code) ++ { ++ case EXC_I386_SGL: ++ detail->code = posix ? TRAP_BRKPT : DBG_SINGLE_TRAP; ++ break; ++ ++ case EXC_I386_BPT: ++ detail->code = posix ? TRAP_BRKPT : DBG_BRKPNT_FAULT; ++ break; ++ ++ default: ++ detail->code = 0; ++ break; ++ } + break; + } + } + libc_hidden_def (_hurd_exception2signal) ++ ++void ++_hurd_exception2signal (struct hurd_signal_detail *detail, int *signo) ++{ ++ exception2signal (detail, signo, 1); ++} ++ ++void ++_hurd_exception2signal_legacy (struct hurd_signal_detail *detail, int *signo) ++{ ++ exception2signal (detail, signo, 0); ++} ++ +Index: glibc-2.31/sysdeps/mach/hurd/i386/trampoline.c +=================================================================== +--- glibc-2.31.orig/sysdeps/mach/hurd/i386/trampoline.c ++++ glibc-2.31/sysdeps/mach/hurd/i386/trampoline.c +@@ -19,13 +19,66 @@ + #include + #include + #include ++#include + #include + #include + #include + #include "hurdfault.h" + #include ++#include + + ++/* Fill in a siginfo_t structure for SA_SIGINFO-enabled handlers. */ ++static void fill_siginfo (siginfo_t *si, int signo, ++ const struct hurd_signal_detail *detail, ++ const struct machine_thread_all_state *state) ++{ ++ si->si_signo = signo; ++ si->si_errno = detail->error; ++ si->si_code = detail->code; ++ ++ /* XXX We would need a protocol change for sig_post to include ++ * this information. */ ++ si->si_pid = -1; ++ si->si_uid = -1; ++ ++ /* Address of the faulting instruction or memory access. */ ++ if (detail->exc == EXC_BAD_ACCESS) ++ si->si_addr = (void *) detail->exc_subcode; ++ else ++ si->si_addr = (void *) state->basic.eip; ++ ++ /* XXX On SIGCHLD, this should be the exit status of the child ++ * process. We would need a protocol change for the proc server ++ * to send this information along with the signal. */ ++ si->si_status = 0; ++ ++ si->si_band = 0; /* SIGPOLL is not supported yet. */ ++ si->si_value.sival_int = 0; /* sigqueue() is not supported yet. */ ++} ++ ++/* Fill in a ucontext_t structure SA_SIGINFO-enabled handlers. */ ++static void fill_ucontext (ucontext_t *uc, const struct sigcontext *sc) ++{ ++ uc->uc_flags = 0; ++ uc->uc_link = NULL; ++ uc->uc_sigmask = sc->sc_mask; ++ uc->uc_stack.ss_sp = (__ptr_t) sc->sc_esp; ++ uc->uc_stack.ss_size = 0; ++ uc->uc_stack.ss_flags = 0; ++ ++ /* Registers. */ ++ memcpy (&uc->uc_mcontext.gregs[REG_GS], &sc->sc_gs, ++ (REG_TRAPNO - REG_GS) * sizeof (int)); ++ uc->uc_mcontext.gregs[REG_TRAPNO] = 0; ++ uc->uc_mcontext.gregs[REG_ERR] = 0; ++ memcpy (&uc->uc_mcontext.gregs[REG_EIP], &sc->sc_eip, ++ (NGREG - REG_EIP) * sizeof (int)); ++ ++ /* XXX FPU state. */ ++ memset (&uc->uc_mcontext.fpregs, 0, sizeof (fpregset_t)); ++} ++ + struct sigcontext * + _hurd_setup_sighandler (struct hurd_sigstate *ss, __sighandler_t handler, + int signo, struct hurd_signal_detail *detail, +@@ -43,15 +96,38 @@ _hurd_setup_sighandler (struct hurd_sigs + struct + { + int signo; +- long int sigcode; +- struct sigcontext *scp; /* Points to ctx, below. */ ++ union ++ { ++ /* Extra arguments for traditional signal handlers */ ++ struct ++ { ++ long int sigcode; ++ struct sigcontext *scp; /* Points to ctx, below. */ ++ } legacy; ++ ++ /* Extra arguments for SA_SIGINFO handlers */ ++ struct ++ { ++ siginfo_t *siginfop; /* Points to siginfo, below. */ ++ ucontext_t *uctxp; /* Points to uctx, below. */ ++ } posix; ++ }; + void *sigreturn_addr; + void *sigreturn_returns_here; + struct sigcontext *return_scp; /* Same; arg to sigreturn. */ ++ ++ /* NB: sigreturn assumes link is next to ctx. */ + struct sigcontext ctx; + struct hurd_userlink link; ++ ucontext_t ucontext; ++ siginfo_t siginfo; + } *stackframe; + ++ /* sigaction for preemptors */ ++ static const struct sigaction legacy_sigaction = { ++ .sa_flags = SA_RESTART ++ }; ++ + if (ss->context) + { + /* We have a previous sigcontext that sigreturn was about +@@ -94,9 +170,13 @@ _hurd_setup_sighandler (struct hurd_sigs + the SP on sigreturn. */ + state->basic.uesp = state->basic.ecx; + +- /* XXX what if handler != action->handler (for instance, if a signal +- * preemptor took over) ? */ + action = & _hurd_sigstate_actions (ss) [signo]; ++ if ( (action->sa_flags & SA_SIGINFO) ++ && handler != (__sighandler_t) action->sa_sigaction ++ || !(action->sa_flags & SA_SIGINFO) ++ && handler != action->sa_handler) ++ /* A signal preemptor took over, use legacy semantic. */ ++ action = &legacy_sigaction; + + if ((action->sa_flags & SA_ONSTACK) + && !(ss->sigaltstack.ss_flags & (SS_DISABLE|SS_ONSTACK))) +@@ -140,15 +220,9 @@ _hurd_setup_sighandler (struct hurd_sigs + = &stackframe->link.thread.next; + ss->active_resources = &stackframe->link; + +- /* Set up the arguments for the signal handler. */ +- stackframe->signo = signo; +- stackframe->sigcode = detail->code; +- stackframe->scp = stackframe->return_scp = scp = &stackframe->ctx; +- stackframe->sigreturn_addr = &__sigreturn; +- stackframe->sigreturn_returns_here = firewall; /* Crash on return. */ +- + /* Set up the sigcontext from the current state of the thread. */ + ++ scp = &stackframe->ctx; + scp->sc_onstack = ss->sigaltstack.ss_flags & SS_ONSTACK ? 1 : 0; + + /* struct sigcontext is laid out so that starting at sc_gs mimics a +@@ -162,6 +236,35 @@ _hurd_setup_sighandler (struct hurd_sigs + &state->fpu, &scp->sc_i386_float_state, + sizeof (state->fpu)); + ++ /* Set up the arguments for the signal handler. */ ++ stackframe->signo = signo; ++ if (action->sa_flags & SA_SIGINFO) ++ { ++ stackframe->posix.siginfop = &stackframe->siginfo; ++ stackframe->posix.uctxp = &stackframe->ucontext; ++ fill_siginfo (&stackframe->siginfo, signo, detail, state); ++ fill_ucontext (&stackframe->ucontext, scp); ++ } ++ else ++ { ++ if (detail->exc) ++ { ++ int nsigno; ++ _hurd_exception2signal_legacy (detail, &nsigno); ++ assert (nsigno == signo); ++ } ++ else ++ detail->code = 0; ++ ++ stackframe->legacy.sigcode = detail->code; ++ stackframe->legacy.scp = &stackframe->ctx; ++ } ++ ++ /* Set up the bottom of the stack. */ ++ stackframe->sigreturn_addr = &__sigreturn; ++ stackframe->sigreturn_returns_here = firewall; /* Crash on return. */ ++ stackframe->return_scp = &stackframe->ctx; ++ + _hurdsig_end_catch_fault (); + + if (! ok) +Index: glibc-2.31/sysdeps/mach/hurd/kill.c +=================================================================== +--- glibc-2.31.orig/sysdeps/mach/hurd/kill.c ++++ glibc-2.31/sysdeps/mach/hurd/kill.c +@@ -64,7 +64,7 @@ __kill (pid_t pid, int sig) + { + if (msgport != MACH_PORT_NULL) + /* Send a signal message to his message port. */ +- return __msg_sig_post (msgport, sig, 0, refport); ++ return __msg_sig_post (msgport, sig, SI_USER, refport); + + /* The process has no message port. Perhaps try direct + frobnication of the task. */ +Index: glibc-2.31/sysdeps/mach/hurd/setitimer.c +=================================================================== +--- glibc-2.31.orig/sysdeps/mach/hurd/setitimer.c ++++ glibc-2.31/sysdeps/mach/hurd/setitimer.c +@@ -105,7 +105,7 @@ timer_thread (void) + __msg_sig_post_request (_hurd_msgport, + _hurd_itimer_port, + MACH_MSG_TYPE_MAKE_SEND_ONCE, +- SIGALRM, 0, __mach_task_self ()); ++ SIGALRM, SI_TIMER, __mach_task_self ()); + break; + + case MACH_RCV_INTERRUPTED: +Index: glibc-2.31/sysdeps/mach/hurd/i386/sigcontextinfo.h +=================================================================== +--- glibc-2.31.orig/sysdeps/mach/hurd/i386/sigcontextinfo.h ++++ glibc-2.31/sysdeps/mach/hurd/i386/sigcontextinfo.h +@@ -18,11 +18,10 @@ + #ifndef _SIGCONTEXTINFO_H + #define _SIGCONTEXTINFO_H + +-#define SIGCONTEXT struct sigcontext + static inline uintptr_t +-sigcontext_get_pc (struct sigcontext ctx) ++sigcontext_get_pc (struct ucontext_t *ctx) + { +- return ctx.sc_eip; ++ return ctx->uc_mcontext.gregs[REG_EIP]; + } + + #endif -- cgit 1.4.1 From 846f5da1296c09d667179c7da2cbb18929bcde67 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Wed, 26 Feb 2020 20:22:18 -0500 Subject: gnu: make: Support for the Hurd. * gnu/packages/base.scm (gnu-make): Use fork/exec rather than posix_spawn on the Hurd. Also, add __alloca linkage workaround. --- gnu/packages/base.scm | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 5c976aee52..aa5200294f 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -369,7 +369,11 @@ standard.") (inputs `(("guile" ,guile-3.0))) (outputs '("out" "debug")) (arguments - '(#:phases + `(,@(if (hurd-target?) + '(#:configure-flags '("CFLAGS=-D__alloca=alloca" + "ac_cv_func_posix_spawn=no")) + '()) + #:phases (modify-phases %standard-phases (add-before 'build 'set-default-shell (lambda* (#:key inputs #:allow-other-keys) -- cgit 1.4.1 From 5fd0c288cf238e4369cc6bd0bfbee068a362a9f0 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sat, 28 Mar 2020 20:57:27 +0100 Subject: gnu: OpenJDK: Build with GNU Make 4.2. * gnu/packages/base.scm (gnu-make-4.2): New public variable. * gnu/packages/java.scm (openjdk9, openjdk10, openjdk11, openjdk12)[native-inputs]: Add it. --- gnu/packages/base.scm | 25 +++++++++++++++++++++++++ gnu/packages/java.scm | 6 ++++++ 2 files changed, 31 insertions(+) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index aa5200294f..da18a9d60b 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -395,6 +395,31 @@ change. GNU make offers many powerful extensions over the standard utility.") (license gpl3+) (home-page "https://www.gnu.org/software/make/"))) +(define-public gnu-make-4.2 + (package + (inherit gnu-make) + (version "4.2.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/make/make-" version + ".tar.bz2")) + (sha256 + (base32 + "12f5zzyq2w56g95nni65hc0g5p7154033y2f3qmjvd016szn5qnn")))) + (arguments + `(#:configure-flags '("CFLAGS=-D__alloca=alloca") + #:phases + (modify-phases %standard-phases + (add-before 'build 'set-default-shell + (lambda* (#:key inputs #:allow-other-keys) + ;; Change the default shell from /bin/sh. + (let ((bash (assoc-ref inputs "bash"))) + (substitute* "job.c" + (("default_shell =.*$") + (format #f "default_shell = \"~a/bin/sh\";\n" + bash))) + #t)))))))) + (define-public binutils (package (name "binutils") diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index edf8d3ce8e..c68b0d3fd2 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1880,6 +1880,9 @@ new Date();")) (native-inputs `(("icedtea-8" ,icedtea-8) ("icedtea-8:jdk" ,icedtea-8 "jdk") + ;; XXX: The build system is not particularly parallel safe and + ;; fails with newer versions of GNU Make. + ("make@4.2" ,gnu-make-4.2) ("unzip" ,unzip) ("which" ,which) ("zip" ,zip))) @@ -1936,6 +1939,7 @@ new Date();")) (native-inputs `(("openjdk9" ,openjdk9) ("openjdk9:jdk" ,openjdk9 "jdk") + ("make@4.2" ,gnu-make-4.2) ("unzip" ,unzip) ("which" ,which) ("zip" ,zip))))) @@ -2156,6 +2160,7 @@ new Date();")) `(("autoconf" ,autoconf) ("openjdk10" ,openjdk10) ("openjdk10:jdk" ,openjdk10 "jdk") + ("make" ,gnu-make-4.2) ("pkg-config" ,pkg-config) ("unzip" ,unzip) ("which" ,which) @@ -2204,6 +2209,7 @@ new Date();")) `(("autoconf" ,autoconf) ("openjdk11" ,openjdk11) ("openjdk11:jdk" ,openjdk11 "jdk") + ("make@4.2" ,gnu-make-4.2) ("pkg-config" ,pkg-config) ("unzip" ,unzip) ("which" ,which) -- cgit 1.4.1 From 2c7ea1892520396c5ced4904b943ae142948aec9 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 5 Mar 2020 14:25:08 -0500 Subject: gnu: coreutils: Handle failing tests on Hurd. * gnu/base/coreutils.scm (coreutils)[arguments]: Use make-flags to mark some tests XFAIL_TESTS on the Hurd. --- gnu/packages/base.scm | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index da18a9d60b..43dc8c492e 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -322,6 +322,20 @@ used to apply commands with arbitrarily long arguments.") (outputs '("out" "debug")) (arguments `(#:parallel-build? #f ; help2man may be called too early + ,@(if (hurd-target?) + '(#:make-flags ; these tests fail deterministically + (list (string-append "XFAIL_TESTS=tests/misc/env-S.pl" + " tests/misc/kill.sh" + " tests/misc/nice.sh" + " tests/split/fail.sh" + " test-fdutimensat" + " test-futimens" + " test-linkat" + " test-renameat" + " test-renameatu" + " test-tls" + " test-utimensat"))) + '()) #:phases (modify-phases %standard-phases (add-before 'build 'patch-shell-references (lambda _ -- cgit 1.4.1 From 1808e64de095c8b0960bc8ac8df0ef48a5f95109 Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Mon, 30 Mar 2020 13:03:11 +0200 Subject: gnu: coreutils: Typo: Use libcap only when supported. * gnu/packages/base.scm (coreutils)[inputs]: Typo: Use libcap only when supported. --- gnu/packages/base.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 43dc8c492e..80a158a685 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -307,8 +307,8 @@ used to apply commands with arbitrarily long arguments.") ;; Do not use libcap when cross-compiling since it's not quite ;; cross-compilable; and use it only for supported systems. ,@(if (and (not (%current-target-system)) - (not (member (%current-system) - (package-supported-systems libcap)))) + (member (%current-system) + (package-supported-systems libcap))) `(("libcap" ,libcap)) ;capability support in 'ls', etc. '()))) (native-inputs -- cgit 1.4.1 From aa8db0ed0de700f6a6977b9bda2ea02b28224301 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Mon, 13 Apr 2020 07:42:07 +0200 Subject: gnu: coreutils: Mark three more tests XFAIL on the Hurd. * gnu/packages/base.scm (coreutils)[arguments]: Add three more failing tests. --- gnu/packages/base.scm | 3 +++ 1 file changed, 3 insertions(+) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 80a158a685..9041d99b65 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -327,7 +327,10 @@ used to apply commands with arbitrarily long arguments.") (list (string-append "XFAIL_TESTS=tests/misc/env-S.pl" " tests/misc/kill.sh" " tests/misc/nice.sh" + " tests/misc/shred-passes.sh" " tests/split/fail.sh" + " tests/split/l-chunk.sh" + " tests/dd/stats.sh" " test-fdutimensat" " test-futimens" " test-linkat" -- cgit 1.4.1 From 4e0059beb1a7cf857f1575792febf995aadbef40 Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Wed, 15 Apr 2020 09:42:09 +0200 Subject: gnu: tar: Disable troublesome tests on the Hurd. The sparse03.at test apparently freezes the Hurd; messages on the console: 165: listing sparse files bigger than 2^33 ext2fs: device:hd0s1: warning: bit already cleared for block 245780 ext2fs: device:hd0s1: warning: bit already cleared for block 245781 ext2fs: device:hd0s1: warning: bit already cleared for block 245782 ... ext2fs: BUG: unexpected fault on disk image ... err 0xa ext2fs: disk-pager.c:98: fault_handler: Assertion 'err' failed. the other tests just fail. * gnu/packages/base.scm (tar)[arguments]: When compiling for the Hurd, skip `sparse' and failing tests. --- gnu/packages/base.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 9041d99b65..31563bab5c 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -171,7 +171,22 @@ implementation offers several extensions over the standard utility.") (build-system gnu-build-system) ;; Note: test suite requires ~1GiB of disk space. (arguments - `(#:phases (modify-phases %standard-phases + `(,@(if (hurd-target?) + '(#:make-flags + (list (string-append + "TESTSUITEFLAGS= -k '" + "!sparse" + ",!renamed dirs in incrementals" + ",!--exclude-tag option in incremental pass" + ",!incremental dumps with -C" + ",!incremental dumps of nested directories" + ",!incremental restores with -C" + ",!concatenated incremental archives (renames)" + ",!renamed directory containing subdirectories" + ",!renamed subdirectories" + "'"))) + '()) + #:phases (modify-phases %standard-phases (add-before 'build 'set-shell-file-name (lambda* (#:key inputs #:allow-other-keys) ;; Do not use "/bin/sh" to run programs. -- cgit 1.4.1 From 8176ef86bee124b1cb77a9f893684a3b1222e8ab Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Apr 2020 00:37:07 +0200 Subject: gnu: Update glibc locale compatibility packages for 2.29. * gnu/packages/base.scm (glibc-locales-2.28, glibc-utf8-locales-2.28): Rename to ... (glibc-locales-2.29, glibc-utf8-locales-2.29): ... this. Update to 2.29. --- gnu/packages/base.scm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 31563bab5c..13971b9f18 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1241,12 +1241,12 @@ test environments.") (make-glibc-utf8-locales glibc)) ;; Packages provided to ease use of binaries linked against the previous libc. -(define-public glibc-locales-2.28 - (package (inherit (make-glibc-locales glibc-2.28)) - (name "glibc-locales-2.28"))) -(define-public glibc-utf8-locales-2.28 - (package (inherit (make-glibc-utf8-locales glibc-2.28)) - (name "glibc-utf8-locales-2.28"))) +(define-public glibc-locales-2.29 + (package (inherit (make-glibc-locales glibc-2.29)) + (name "glibc-locales-2.29"))) +(define-public glibc-utf8-locales-2.29 + (package (inherit (make-glibc-utf8-locales glibc-2.29)) + (name "glibc-utf8-locales-2.29"))) ;; These should no longer be needed. (define-public glibc-utf8-locales-2.27 -- cgit 1.4.1 From 23eb368cd384e082c8f166191b32f37217280088 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 24 Apr 2020 00:37:49 +0200 Subject: gnu: Remove obsolete glibc-locales packages. * gnu/packages/base.scm (glibc-utf8-locales-2.27, glibc-locales-2.27): Remove variables. --- gnu/packages/base.scm | 6 ------ 1 file changed, 6 deletions(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 13971b9f18..9899067544 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -1248,12 +1248,6 @@ test environments.") (package (inherit (make-glibc-utf8-locales glibc-2.29)) (name "glibc-utf8-locales-2.29"))) -;; These should no longer be needed. -(define-public glibc-utf8-locales-2.27 - (deprecated-package "glibc-utf8-locales-2.27" glibc-utf8-locales-2.28)) -(define-public glibc-locales-2.27 - (deprecated-package "glibc-locales-2.27" glibc-locales-2.28)) - (define-public which (package (name "which") -- cgit 1.4.1 From 1339a03b6d28c0b1726b501bde27a807f960edff Mon Sep 17 00:00:00 2001 From: "Jan (janneke) Nieuwenhuizen" Date: Thu, 30 Apr 2020 00:00:24 +0200 Subject: gnu: glibc/hurd-headers: Cross-build fix for the Hurd. * gnu/packages/base.scm (glibc/hurd-headers)[native-inputs]: Add mig; when cross-building use 32-bit mig. --- gnu/packages/base.scm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index a49ea25196..38e8d363eb 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -6,7 +6,7 @@ ;;; Copyright © 2014 Alex Kost ;;; Copyright © 2014, 2015 Manolis Fragkiskos Ragkousis ;;; Copyright © 2016, 2017, 2019 Efraim Flashner -;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2016, 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2016, 2018 Alex Vong ;;; Copyright © 2017 Rene Saavedra ;;; Copyright © 2017 Mathieu Othacehe @@ -1173,6 +1173,15 @@ command.") (outputs '("out")) (propagated-inputs `(("gnumach-headers" ,gnumach-headers) ("hurd-headers" ,hurd-headers))) + (native-inputs + `(("mig" ,(if (%current-target-system) + ;; XXX: When targeting i586-pc-gnu, we need a 32-bit MiG, + ;; hence this hack. + (package + (inherit mig) + (arguments `(#:system "i686-linux"))) + mig)) + ,@(package-native-inputs glibc))) (arguments (substitute-keyword-arguments (package-arguments glibc) ;; We just pass the flags really needed to build the headers. -- cgit 1.4.1 From cef0e08c235d1eb9943571648ef57a59041bb292 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 11 May 2020 12:52:43 +0200 Subject: gnu: proot: Fix test failures. The upgrade to Make 4.3 and Coreutils 8.30 introduced test failures that this commit addresses. * gnu/packages/base.scm (coreutils-8.30): New variable. * gnu/packages/linux.scm (proot)[native-inputs]: Add COREUTILS-8.30 and GNU-MAKE-4.2. --- gnu/packages/base.scm | 28 ++++++++++++++++++++++++++++ gnu/packages/linux.scm | 11 ++++++++++- 2 files changed, 38 insertions(+), 1 deletion(-) (limited to 'gnu/packages/base.scm') diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm index 5ea129a9ae..279fe9e3d8 100644 --- a/gnu/packages/base.scm +++ b/gnu/packages/base.scm @@ -384,6 +384,34 @@ standard.") (outputs '("out")) (inputs '()))) +(define-public coreutils-8.30 + ;; XXX: This version is kept just so we can run PRoot tests. + (hidden-package + (package + (inherit coreutils-minimal) + (version "8.30") + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnu/coreutils/coreutils-" + version ".tar.xz")) + (sha256 + (base32 + "0mxhw43d4wpqmvg0l4znk1vm10fy92biyh90lzdnqjcic2lb6cg8")))) + (arguments + (substitute-keyword-arguments (package-arguments coreutils-minimal) + ((#:phases phases '%standard-phases) + `(modify-phases ,phases + (add-before 'check 'disable-broken-test + (lambda _ + ;; This test hits the 127 character shebang limit in the build + ;; environment due to the way "env -S" splits arguments into + ;; shebangs. Note that "env-S-script.sh" works around this + ;; specific issue, but "env-S.pl" is not adjusted for build + ;; environments with long prefixes (/tmp/guix-build-...). + (substitute* "Makefile" + (("^.*tests/misc/env-S.pl.*$") "")) + #t))))))))) + (define-public gnu-make (package (name "make") diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm index c429b05cff..7cf7521e24 100644 --- a/gnu/packages/linux.scm +++ b/gnu/packages/linux.scm @@ -6099,7 +6099,16 @@ userspace queueing component and the logging subsystem.") (native-inputs `(("which" ,which) ;; For 'mcookie', used by some of the tests. - ("util-linux" ,util-linux))) + ("util-linux" ,util-linux) + + ;; XXX: Choose the old coreutils because its 'stat' + ;; program does not use statx(2) when running 'stat -c + ;; %a' or similar, which PRoot doesn't properly support. + ("coreutils-old" ,coreutils-8.30) + + ;; XXX: 'test-c6b77b77.sh' runs 'make' and that leads + ;; make 4.3 to segfault. + ("make-old" ,gnu-make-4.2))) (inputs `(("talloc" ,talloc))) (home-page "https://github.com/proot-me/PRoot") (synopsis "Unprivileged chroot, bind mount, and binfmt_misc") -- cgit 1.4.1