From 5b5a8d6b21ec01b8d0d3ba4d5c9b9e81577072ed Mon Sep 17 00:00:00 2001 From: Tobias Geerinckx-Rice Date: Mon, 11 Jun 2018 02:35:27 +0200 Subject: gnu: isl: Update to 0.19. * gnu/packages/gcc.scm (isl): Update to 0.19. --- gnu/packages/gcc.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'gnu/packages/gcc.scm') diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5012d9a913..2ab70c107c 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -816,7 +816,7 @@ (define-public libstdc++-doc-5 (define-public isl (package (name "isl") - (version "0.18") + (version "0.19") (source (origin (method url-fetch) (uri (list (string-append @@ -827,7 +827,7 @@ (define-public isl name "-" version ".tar.gz"))) (sha256 (base32 - "06ybml6llhi4i56q90jnimbcgk1lpcdwhy9nxdxra2hxz3bhz2vb")))) + "1n4yz9rj24mv226hqbpw210ifvqkn8dgvpnkzf0s0lkq9zrjd5ym")))) (build-system gnu-build-system) (inputs `(("gmp" ,gmp))) (home-page "http://isl.gforge.inria.fr/") -- cgit v1.2.3 From 25bd72678ae4048b0b84ee82bc5f2644367e9715 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 10 Aug 2018 17:00:27 +0200 Subject: gnu: gcc@5: Build with isl@0.18. * gnu/packages/gcc.scm (gcc-5)[inputs]: Change ISL to ISL-0.18. (isl-0.18): New public variable. --- gnu/packages/gcc.scm | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'gnu/packages/gcc.scm') diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 5bdd70b0db..46b70ce497 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -451,7 +451,8 @@ (define-public gcc-5 "$OBJDUMP_FOR_TARGET -T")) #t)))) (inputs - `(("isl" ,isl) + `(;; GCC5 needs which is removed in later versions. + ("isl" ,isl-0.18) ,@(package-inputs gcc-4.7))))) (define-public gcc-6 @@ -860,6 +861,20 @@ (define-public isl dependence analysis and bounds on piecewise step-polynomials.") (license lgpl2.1+))) +(define-public isl-0.18 + (package + (inherit isl) + (version "0.18") + (source (origin + (method url-fetch) + (uri (list (string-append "http://isl.gforge.inria.fr/isl-" + version ".tar.bz2") + (string-append %gcc-infrastructure + "isl-" version ".tar.gz"))) + (sha256 + (base32 + "06ybml6llhi4i56q90jnimbcgk1lpcdwhy9nxdxra2hxz3bhz2vb")))))) + (define-public isl-0.11 (package (inherit isl) -- cgit v1.2.3 From 1aef659e86242020c7ec813e9a1f6ad35431de9d Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Wed, 1 Aug 2018 23:19:28 +0200 Subject: gnu: gcc: Fix build with glibc >= 2.28. * gnu/packages/patches/gcc-libsanitizer-ustat.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. * gnu/packages/gcc.scm (gcc-5)[source](patches): Add it. --- gnu/local.mk | 1 + gnu/packages/gcc.scm | 1 + gnu/packages/patches/gcc-libsanitizer-ustat.patch | 41 +++++++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 gnu/packages/patches/gcc-libsanitizer-ustat.patch (limited to 'gnu/packages/gcc.scm') diff --git a/gnu/local.mk b/gnu/local.mk index d1228b9261..9c79e843a8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -690,6 +690,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-fix-texi2pod.patch \ %D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \ %D%/packages/patches/gcc-libsanitizer-fix.patch \ + %D%/packages/patches/gcc-libsanitizer-ustat.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 \ diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 46b70ce497..2e2135ab51 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -431,6 +431,7 @@ (define-public gcc-5 (base32 "11zd1hgzkli3b2v70qsm2hyqppngd4616qc96lmm9zl2kl9yl32k")) (patches (search-patches "gcc-arm-bug-71399.patch" + "gcc-libsanitizer-ustat.patch" "gcc-strmov-store-file-names.patch" "gcc-5.0-libvtv-runpath.patch" "gcc-5-source-date-epoch-1.patch" diff --git a/gnu/packages/patches/gcc-libsanitizer-ustat.patch b/gnu/packages/patches/gcc-libsanitizer-ustat.patch new file mode 100644 index 0000000000..a4e0c6affa --- /dev/null +++ b/gnu/packages/patches/gcc-libsanitizer-ustat.patch @@ -0,0 +1,41 @@ +Remove use of deprecated ustat interface in glibc 2.28: + +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85835 + +Taken from upstream: + +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=260684 + +diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +index 858bb2184505..de18e56d11cf 100644 +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -157,7 +157,6 @@ typedef struct user_fpregs elf_fpregset_t; + # include + #endif + #include +-#include + #include + #include + #include +@@ -250,7 +249,19 @@ namespace __sanitizer { + #endif // SANITIZER_LINUX || SANITIZER_FREEBSD + + #if SANITIZER_LINUX && !SANITIZER_ANDROID +- unsigned struct_ustat_sz = sizeof(struct ustat); ++ // Use pre-computed size of struct ustat to avoid which ++ // has been removed from glibc 2.28. ++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \ ++ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \ ++ || defined(__x86_64__) ++#define SIZEOF_STRUCT_USTAT 32 ++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \ ++ || defined(__powerpc__) || defined(__s390__) ++#define SIZEOF_STRUCT_USTAT 20 ++#else ++#error Unknown size of struct ustat ++#endif ++ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + unsigned struct_rlimit64_sz = sizeof(struct rlimit64); + unsigned struct_statvfs64_sz = sizeof(struct statvfs64); + #endif // SANITIZER_LINUX && !SANITIZER_ANDROID -- cgit v1.2.3 From 45c78bf92487fbc659593a9ae75f15281a1068b7 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Sun, 26 Aug 2018 16:50:39 +0200 Subject: gnu: gcc: Include libsanitizer patch for versions 6 and 7. * gnu/packages/gcc.scm (gcc-6, gcc-7)[source](patches): Add "gcc-libsanitizer-ustat.patch". --- gnu/packages/gcc.scm | 2 ++ 1 file changed, 2 insertions(+) (limited to 'gnu/packages/gcc.scm') diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 2f4198fdea..e5b1433f92 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -469,6 +469,7 @@ (define-public gcc-6 (base32 "1m0lr7938lw5d773dkvwld90hjlcq2282517d1gwvrfzmwgg42w5")) (patches (search-patches "gcc-libsanitizer-fix.patch" + "gcc-libsanitizer-ustat.patch" "gcc-strmov-store-file-names.patch" "gcc-6-source-date-epoch-1.patch" "gcc-6-source-date-epoch-2.patch" @@ -513,6 +514,7 @@ (define-public gcc-7 (base32 "0p71bij6bfhzyrs8676a8jmpjsfz392s2rg862sdnsk30jpacb43")) (patches (search-patches "gcc-strmov-store-file-names.patch" + "gcc-libsanitizer-ustat.patch" "gcc-5.0-libvtv-runpath.patch")))) (description "GCC is the GNU Compiler Collection. It provides compiler front-ends -- cgit v1.2.3 From 3469a5ea47ba7481bda9b2ff144bc13efd943c87 Mon Sep 17 00:00:00 2001 From: Marius Bakke Date: Fri, 31 Aug 2018 17:40:40 +0200 Subject: gnu: gcc@4.9: Fix FTBFS with Glibc >= 2.28. * gnu/packages/commencement.scm (gcc-for-libstdc++): New variable. (libstdc++-boot0): Inherit from GCC-FOR-LIBSTDC++ instead of GCC-4.9. * gnu/packages/gcc.scm (gcc-4.9)[source](patches): Add "gcc-4.9-libsanitizer-ustat.patch". * gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/commencement.scm | 15 ++++++++- gnu/packages/gcc.scm | 1 + .../patches/gcc-4.9-libsanitizer-ustat.patch | 37 ++++++++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch (limited to 'gnu/packages/gcc.scm') diff --git a/gnu/local.mk b/gnu/local.mk index 3309186d12..29c605006c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -700,6 +700,7 @@ dist_patch_DATA = \ %D%/packages/patches/gcc-fix-texi2pod.patch \ %D%/packages/patches/gcc-4.8-libsanitizer-fix.patch \ %D%/packages/patches/gcc-4.9-libsanitizer-fix.patch \ + %D%/packages/patches/gcc-4.9-libsanitizer-ustat.patch \ %D%/packages/patches/gcc-libsanitizer-fix.patch \ %D%/packages/patches/gcc-libsanitizer-ustat.patch \ %D%/packages/patches/gcc-libvtv-runpath.patch \ diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 30a0ffcec9..0aa65fe638 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -186,12 +186,25 @@ (define (remove-triplet-prefix name) ,cf))))) (inputs %boot0-inputs)))) +;; Use a "fixed" package source for this early libstdc++ variant so we can +;; update GCC 4.9 without triggering a full rebuild. +(define gcc-for-libstdc++ + (package + (inherit gcc-4.9) + (source (origin + (inherit (package-source gcc-4.9)) + (patches (search-patches "gcc-4.9-libsanitizer-fix.patch" + "gcc-arm-bug-71399.patch" + "gcc-asan-missing-include.patch" + "gcc-libvtv-runpath.patch" + "gcc-fix-texi2pod.patch")))))) + (define libstdc++-boot0 ;; GCC's libcc1 is always built as a shared library (the top-level ;; 'Makefile.def' forcefully adds --enable-shared) and thus needs to refer ;; to libstdc++.so. We cannot build libstdc++-5.3 because it relies on ;; C++14 features missing in some of our bootstrap compilers. - (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-4.9)))) + (let ((lib (package-with-bootstrap-guile (make-libstdc++ gcc-for-libstdc++)))) (package (inherit lib) (name "libstdc++-boot0") diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index e5b1433f92..520f5cba0b 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -398,6 +398,7 @@ (define-public gcc-4.9 (base32 "14l06m7nvcvb0igkbip58x59w3nq6315k6jcz3wr9ch1rn9d44bc")) (patches (search-patches "gcc-4.9-libsanitizer-fix.patch" + "gcc-4.9-libsanitizer-ustat.patch" "gcc-arm-bug-71399.patch" "gcc-asan-missing-include.patch" "gcc-libvtv-runpath.patch" diff --git a/gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch b/gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch new file mode 100644 index 0000000000..795881ab9b --- /dev/null +++ b/gnu/packages/patches/gcc-4.9-libsanitizer-ustat.patch @@ -0,0 +1,37 @@ +Remove use of deprecated ustat interface in glibc 2.28: +https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85835 + +Adapted to GCC 4 series from this upstream patch: +https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=260684 + +--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc ++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc +@@ -81,7 +81,6 @@ + #include + #include + #include +-#include + #include + #include + #include +@@ -163,7 +162,19 @@ + unsigned struct_old_utsname_sz = sizeof(struct old_utsname); + unsigned struct_oldold_utsname_sz = sizeof(struct oldold_utsname); + unsigned struct_itimerspec_sz = sizeof(struct itimerspec); +- unsigned struct_ustat_sz = sizeof(struct ustat); ++ // Use pre-computed size of struct ustat to avoid which ++ // has been removed from glibc 2.28. ++#if defined(__aarch64__) || defined(__s390x__) || defined (__mips64) \ ++ || defined(__powerpc64__) || defined(__arch64__) || defined(__sparcv9) \ ++ || defined(__x86_64__) ++#define SIZEOF_STRUCT_USTAT 32 ++#elif defined(__arm__) || defined(__i386__) || defined(__mips__) \ ++ || defined(__powerpc__) || defined(__s390__) ++#define SIZEOF_STRUCT_USTAT 20 ++#else ++#error Unknown size of struct ustat ++#endif ++ unsigned struct_ustat_sz = SIZEOF_STRUCT_USTAT; + #endif // SANITIZER_LINUX + + #if SANITIZER_LINUX && !SANITIZER_ANDROID -- cgit v1.2.3