mirror of
https://review.haiku-os.org/buildtools
synced 2024-11-23 07:18:49 +01:00
gcc: Allow the user to build non-PI executables
* CC1_SPEC: Remove non-existent "no-fpic" command-line option; add "fno-PIC" and "fno-PIE" as options that disable the generation of position-independent code; use "-fPIC" by default. * LINK_SPEC: Pass "-shared" to the linker only if it was passed to gcc; output position-independent executables by default; when linking executables, allow undefined symbols in shared libraries and export all symbols (to match the behaviour of "-shared"). Signed-off-by: Jérôme Duval <jerome.duval@gmail.com>
This commit is contained in:
parent
f625dd9f94
commit
419211519c
@ -75,6 +75,6 @@
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{!o*:-o %b} -m armelf %{!r:-shared} %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}\
|
||||
#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} %{nostart:-e 0} %{shared:-shared -e 0} %{!shared: %{!nostart: -no-undefined}}\
|
||||
%{mbig-endian:-EB} %{mlittle-endian:-EL} -X"
|
||||
|
||||
|
@ -46,7 +46,7 @@ Boston, MA 02111-1307, USA. */
|
||||
user explicitly asks for the warnings with -Wmultichar. Note that
|
||||
CC1_SPEC is used for both cc1 and cc1plus. */
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%{!no-fpic:%{!fno-pic:%{!fno-pie:%{!fpie:%{!fPIC:%{!fPIE:-fpic}}}}}} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
|
||||
#define CC1_SPEC "%{fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE:;:-fPIC} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
|
||||
|
||||
#undef CC1PLUS_SPEC
|
||||
#define CC1PLUS_SPEC "%{!Wctor-dtor-privacy:-Wno-ctor-dtor-privacy}"
|
||||
|
@ -53,7 +53,7 @@ Boston, MA 02111-1307, USA. */
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "-m elf_i386_haiku %{!r:-shared} %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
|
||||
#define LINK_SPEC "-m elf_i386_haiku %{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:;:-pie --allow-shlib-undefined --export-dynamic} %{nostart:-e 0} %{shared:-shared -e 0} %{!shared: %{!nostart: -no-undefined}}"
|
||||
|
||||
/* A C statement (sans semicolon) to output to the stdio stream
|
||||
FILE the assembler definition of uninitialized global DECL named
|
||||
|
@ -65,7 +65,7 @@ Boston, MA 02111-1307, USA. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{" SPEC_64 ":-m elf_x86_64} %{" SPEC_32 ":-m elf_i386_haiku} \
|
||||
%{!r:-shared} %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
|
||||
%{shared|r|pie|fno-pic|fno-PIC|fno-pie|fno-PIE:;:-pie --allow-shlib-undefined --export-dynamic} %{nostart:-e 0} %{shared:-shared -e 0} %{!shared: %{!nostart: -no-undefined}}"
|
||||
|
||||
/* A C statement (sans semicolon) to output to the stdio stream
|
||||
FILE the assembler definition of uninitialized global DECL named
|
||||
|
@ -108,7 +108,7 @@ Boston, MA 02110-1301, USA. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
/*#define LINK_SPEC "%{!o*:-o %b} -m elf_m68k_haiku -shared -no-undefined %{nostart:-e 0}"*/
|
||||
#define LINK_SPEC "%{!o*:-o %b} -m m68kelf %{!r:-shared} -no-undefined %{nostart:-e 0}"
|
||||
#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}"
|
||||
|
||||
/* XXX: not sure for the rest there... */
|
||||
|
||||
|
@ -40,5 +40,5 @@ Boston, MA 02111-1307, USA. */
|
||||
while (0)
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{!o*:-o %b} -m elf_mipsel_haiku %{!r:-shared} %{nostart:-e 0}"
|
||||
#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}"
|
||||
|
||||
|
@ -53,7 +53,7 @@ Boston, MA 02111-1307, USA. */
|
||||
/* If ELF is the default format, we should not use /lib/elf. */
|
||||
|
||||
#undef LINK_SPEC
|
||||
#define LINK_SPEC "%{!o*:-o %b} -m elf32ppchaiku %{!r:-shared} %{nostart:-e 0} %{shared:-e 0} %{!shared: %{!nostart: -no-undefined}}"
|
||||
#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} %{nostart:-e 0} %{shared:-shared -e 0} %{!shared: %{!nostart: -no-undefined}}"
|
||||
|
||||
#undef CC1_SPEC
|
||||
#define CC1_SPEC "%{!no-fpic:%{!fno-pic:%{!fno-pie:%{!fpie:%{!fPIC:%{!fPIE:-fPIC}}}}}} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
|
||||
#define CC1_SPEC "%{fpic|fPIC|fpie|fPIE|fno-pic|fno-PIC|fno-pie|fno-PIE:;:-fPIC} %{!Wmultichar: -Wno-multichar} %(cc1_cpu) %{profile:-p}"
|
||||
|
Loading…
Reference in New Issue
Block a user