gcc2, gcc4: Correct LINK_SPEC
Correct LINK_SPEC so it
* Sets appropriate dynamic-link options for any type of dynamically
linked executable, not only position-independent ones.
* Does not omit these options if "-pie" is specified by the user.
* Recognizes the "-static" option.
* Includes a hyphen previously missing from "--no-undefined".
Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
Diff
gcc/gcc/config/arm/haiku.h | 6 +++---
gcc/gcc/config/i386/haiku.h | 6 +++---
gcc/gcc/config/i386/haiku64.h | 6 +++---
gcc/gcc/config/m68k/haiku.h | 6 +++---
gcc/gcc/config/mips/haiku.h | 5 +++--
gcc/gcc/config/rs6000/haiku.h | 6 +++---
legacy/gcc/gcc/config/i386/haiku.h | 6 +++---
7 files changed, 21 insertions(+), 20 deletions(-)
@@ -77,8 +77,8 @@
#undef LINK_SPEC
#define LINK_SPEC \
"%{!o*:-o %b} -m armelf \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} %{shared:-shared} \
%{nostart|shared:-e 0;:-no-undefined} %{mbig-endian:-EB} \
%{shared:-shared;!r:%{fno-pic|fno-PIC|fno-pie|fno-PIE:;:%{!pie:-pie}} \
%{!static:--export-dynamic --allow-shlib-undefined}} %{static:-static} \
%{nostart|shared:-e 0;:--no-undefined} %{mbig-endian:-EB} \
%{mlittle-endian:-EL} -X"
@@ -55,9 +55,9 @@
#undef LINK_SPEC
#define LINK_SPEC \
"-m elf_i386_haiku \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} %{shared:-shared} \
%{nostart|shared:-e 0;:-no-undefined}"
%{shared:-shared;!r:%{fno-pic|fno-PIC|fno-pie|fno-PIE:;:%{!pie:-pie}} \
%{!static:--export-dynamic --allow-shlib-undefined}} %{static:-static} \
%{nostart|shared:-e 0;:--no-undefined}"
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
@@ -66,9 +66,9 @@
#undef LINK_SPEC
#define LINK_SPEC \
"%{" SPEC_64 ":-m elf_x86_64_haiku} %{" SPEC_32 ":-m elf_i386_haiku} \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} %{shared:-shared} \
%{nostart|shared:-e 0;:-no-undefined}"
%{shared:-shared;!r:%{fno-pic|fno-PIC|fno-pie|fno-PIE:;:%{!pie:-pie}} \
%{!static:--export-dynamic --allow-shlib-undefined}} %{static:-static} \
%{nostart|shared:-e 0;:--no-undefined}"
/* A C statement (sans semicolon) to output to the stdio stream
FILE the assembler definition of uninitialized global DECL named
@@ -110,9 +110,9 @@
#define LINK_SPEC \
"%{!o*:-o %b} -m m68kelf \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} -no-undefined \
%{nostart:-e 0}"
%{shared:-shared;!r:%{fno-pic|fno-PIC|fno-pie|fno-PIE:;:%{!pie:-pie}} \
%{!static:--export-dynamic --allow-shlib-undefined}} %{static:-static} \
--no-undefined %{nostart:-e 0}"
@@ -42,6 +42,7 @@
#undef LINK_SPEC
#define LINK_SPEC \
"%{!o*:-o %b} -m elf_mipsel_haiku \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} %{nostart:-e 0}"
%{shared:-shared;!r:%{fno-pic|fno-PIC|fno-pie|fno-PIE:;:%{!pie:-pie}} \
%{!static:--export-dynamic --allow-shlib-undefined}} %{static:-static} \
%{nostart:-e 0}"
@@ -55,6 +55,6 @@
#undef LINK_SPEC
#define LINK_SPEC \
"%{!o*:-o %b} -m elf32ppchaiku \
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:; \
:-pie --allow-shlib-undefined --export-dynamic} %{shared:-shared} \
%{nostart|shared:-e 0;:-no-undefined}"
%{shared:-shared;!r:%{fno-pic|fno-PIC|fno-pie|fno-PIE:;:%{!pie:-pie}} \
%{!static:--export-dynamic --allow-shlib-undefined}} %{static:-static} \
%{nostart|shared:-e 0;:--no-undefined}"
@@ -187,9 +187,9 @@
#undef LINK_SPEC
#define LINK_SPEC \
"%{!o*:-o %b} -m elf_i386_haiku \
%{!shared:%{!r:%{!fno-pic:%{!fno-PIC:-pie --export-dynamic}} \
%{!static:--no-add-needed --allow-shlib-undefined}}} \
%{shared:-shared -Bsymbolic} %{nostart|shared:-e 0} \
%{!shared:%{!r:%{!fno-pic:%{!fno-PIC:-pie}} \
%{!static:--no-add-needed --export-dynamic --allow-shlib-undefined}}} \
%{shared:-shared -Bsymbolic} %{static:-static} %{nostart|shared:-e 0} \
%{!nostart:%{!shared:--no-undefined}}"