diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-04-07 21:24:37 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-04-07 22:28:36 +0200 |
commit | dfc8bb207104cb3c25c0922508acf6d3c27b69fc (patch) | |
tree | 00bc86e0d66aa285292b243233c6ea91be453dc9 /gnu/packages | |
parent | 71b671681472d64c1077c2014132af56ce49ce4e (diff) | |
download | guix-dfc8bb207104cb3c25c0922508acf6d3c27b69fc.tar guix-dfc8bb207104cb3c25c0922508acf6d3c27b69fc.tar.gz |
gnu: gcc: Disable RUNPATH validation for native builds.
* gnu/packages/gcc.scm (gcc-4.7)[arguments]: Pass
#:validate-runpath? #f.
* gnu/packages/commencement.scm (gcc-boot0)[arguments]: Override
#:validate-runpath? with 'substitute-keyword-arguments'.
(gcc-final)[arguments]: Likewise.
* gnu/packages/cross-base.scm (cross-gcc-arguments): Likewise.
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/commencement.scm | 12 | ||||
-rw-r--r-- | gnu/packages/cross-base.scm | 2 | ||||
-rw-r--r-- | gnu/packages/gcc.scm | 5 |
3 files changed, 14 insertions, 5 deletions
diff --git a/gnu/packages/commencement.scm b/gnu/packages/commencement.scm index 766aea4bfd..14af246e99 100644 --- a/gnu/packages/commencement.scm +++ b/gnu/packages/commencement.scm @@ -158,6 +158,8 @@ (srfi srfi-1) (srfi srfi-26)) ,@(substitute-keyword-arguments (package-arguments gcc-4.8) + ((#:validate-runpath? _) + #t) ((#:configure-flags flags) `(append (list ,(string-append "--target=" (boot-triplet)) @@ -500,11 +502,6 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" #:allowed-references ("out" "lib" ,glibc-final) - ;; Things like libasan.so and libstdc++.so NEED ld.so and/or - ;; libgcc_s.so but RUNPATH is empty. This is a false positive, so turn - ;; it off. - #:validate-runpath? #f - ;; Build again GMP & co. within GCC's build process, because it's hard ;; to do outside (because GCC-BOOT0 is a cross-compiler, and thus ;; doesn't honor $LIBRARY_PATH, which breaks `gnu-build-system'.) @@ -529,6 +526,11 @@ exec ~a/bin/~a-~a -B~a/lib -Wl,-dynamic-linker -Wl,~a/~a \"$@\"~%" "/lib") flag)) ,flags))) + ((#:validate-runpath? _) + ;; Things like libasan.so and libstdc++.so NEED ld.so and/or + ;; libgcc_s.so but RUNPATH is empty. This is a false positive, so + ;; turn it off. + #f) ((#:phases phases) `(alist-delete 'symlink-libgcc_eh ,phases))))) diff --git a/gnu/packages/cross-base.scm b/gnu/packages/cross-base.scm index 565a4a8220..0f15a0aaec 100644 --- a/gnu/packages/cross-base.scm +++ b/gnu/packages/cross-base.scm @@ -175,6 +175,8 @@ may be either a libc package or #f.)" #t))) ,phases) phases))) + ((#:validate-runpath? _) + #t) ((#:strip-binaries? _) ;; Disable stripping as this can break binaries, with object files of ;; libgcc.a showing up as having an unknown architecture. See diff --git a/gnu/packages/gcc.scm b/gnu/packages/gcc.scm index 68c9e98762..4c06f84155 100644 --- a/gnu/packages/gcc.scm +++ b/gnu/packages/gcc.scm @@ -189,6 +189,11 @@ where the OS part is overloaded to denote a specific ABI---into GCC ,(if stripped? "-g0" "-g"))))) #:tests? #f + + ;; libstdc++.so NEEDs libgcc_s.so but somehow it doesn't get + ;; $(libdir) in its RUNPATH, so turn it off. + #:validate-runpath? #f + #:phases (alist-cons-before 'configure 'pre-configure |