gnu: gcc: Do not pass -dynamic-linker to linker when !shared on arm.
Fixes <http://bugs.gnu.org/20102>. * gnu/packages/patches/gcc-arm-link-spec-fix.patch: New file. * gnu-system.am (dist_patch_DATA): Add it. * gnu/packages/gcc.scm (gcc-4.8, gcc-4.9): Add patch. * gnu/packages/cross-base.scm (cross-gcc): Preserve patches from gcc-4.8. Co-Authored-By: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
parent
7b2abd0055
commit
1421afa94a
|
@ -412,6 +412,7 @@ dist_patch_DATA = \
|
||||||
gnu/packages/patches/flashrom-use-libftdi1.patch \
|
gnu/packages/patches/flashrom-use-libftdi1.patch \
|
||||||
gnu/packages/patches/flex-bison-tests.patch \
|
gnu/packages/patches/flex-bison-tests.patch \
|
||||||
gnu/packages/patches/gawk-shell.patch \
|
gnu/packages/patches/gawk-shell.patch \
|
||||||
|
gnu/packages/patches/gcc-arm-link-spec-fix.patch \
|
||||||
gnu/packages/patches/gcc-cross-environment-variables.patch \
|
gnu/packages/patches/gcc-cross-environment-variables.patch \
|
||||||
gnu/packages/patches/geoclue-config.patch \
|
gnu/packages/patches/geoclue-config.patch \
|
||||||
gnu/packages/patches/ghostscript-runpath.patch \
|
gnu/packages/patches/ghostscript-runpath.patch \
|
||||||
|
|
|
@ -202,8 +202,10 @@ GCC that does not target a libc; otherwise, target that libc."
|
||||||
target))
|
target))
|
||||||
(source (origin (inherit (package-source gcc-4.8))
|
(source (origin (inherit (package-source gcc-4.8))
|
||||||
(patches
|
(patches
|
||||||
(cons (search-patch "gcc-cross-environment-variables.patch")
|
(append
|
||||||
(cross-gcc-patches target)))))
|
(origin-patches (package-source gcc-4.8))
|
||||||
|
(cons (search-patch "gcc-cross-environment-variables.patch")
|
||||||
|
(cross-gcc-patches target))))))
|
||||||
|
|
||||||
;; For simplicity, use a single output. Otherwise libgcc_s & co. are not
|
;; For simplicity, use a single output. Otherwise libgcc_s & co. are not
|
||||||
;; found by default, etc.
|
;; found by default, etc.
|
||||||
|
|
|
@ -309,7 +309,8 @@ Go. It also includes runtime support libraries for these languages.")
|
||||||
version "/gcc-" version ".tar.bz2"))
|
version "/gcc-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"15c6gwm6dzsaagamxkak5smdkf1rdfbqqjs9jdbrp3lbg4ism02a"))))))
|
"15c6gwm6dzsaagamxkak5smdkf1rdfbqqjs9jdbrp3lbg4ism02a"))
|
||||||
|
(patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
|
||||||
|
|
||||||
(define-public gcc-4.9
|
(define-public gcc-4.9
|
||||||
(package (inherit gcc-4.7)
|
(package (inherit gcc-4.7)
|
||||||
|
@ -320,7 +321,8 @@ Go. It also includes runtime support libraries for these languages.")
|
||||||
version "/gcc-" version ".tar.bz2"))
|
version "/gcc-" version ".tar.bz2"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))))))
|
"1pbjp4blk2ycaa6r3jmw4ky5f1s9ji3klbqgv8zs2sl5jn1cj810"))
|
||||||
|
(patches (list (search-patch "gcc-arm-link-spec-fix.patch")))))))
|
||||||
|
|
||||||
(define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
|
(define* (custom-gcc gcc name languages #:key (separate-lib-output? #t))
|
||||||
"Return a custom version of GCC that supports LANGUAGES."
|
"Return a custom version of GCC that supports LANGUAGES."
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
Do not pass -dynamic-linker to linker when !shared.
|
||||||
|
Fixes <http://bugs.gnu.org/20102>.
|
||||||
|
|
||||||
|
Patch by Ludovic Courtès <ludo@gnu.org>.
|
||||||
|
|
||||||
|
--- gcc-4.8.4/gcc/config/arm/linux-elf.h.orig 2015-04-08 20:31:20.376900478 +0200
|
||||||
|
+++ gcc-4.8.4/gcc/config/arm/linux-elf.h 2015-04-08 20:31:36.437014437 +0200
|
||||||
|
@@ -65,7 +65,7 @@
|
||||||
|
%{symbolic:-Bsymbolic} \
|
||||||
|
%{!static: \
|
||||||
|
%{rdynamic:-export-dynamic} \
|
||||||
|
- -dynamic-linker " GNU_USER_DYNAMIC_LINKER "} \
|
||||||
|
+ %{!shared:-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}} \
|
||||||
|
-X \
|
||||||
|
%{mbig-endian:-EB} %{mlittle-endian:-EL}" \
|
||||||
|
SUBTARGET_EXTRA_LINK_SPEC
|
Loading…
Reference in New Issue