From: Rainer Orth Date: Thu, 7 Jul 2011 08:52:48 +0000 (+0000) Subject: sol2.h (ASM_SPEC): Split into ... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=fcf7471a39854c6bf17a6b59beca52cd56a03ce2;p=gcc.git sol2.h (ASM_SPEC): Split into ... * config/sol2.h (ASM_SPEC): Split into ... (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine. (ASM_SPEC): Use ASM_SPEC_BASE. * config/sparc/sol2.h (ASM_SPEC): Redefine. From-SVN: r175957 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8429d5c6064..ad790d3844d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2011-07-07 Rainer Orth + + * config/sol2.h (ASM_SPEC): Split into ... + (ASM_SPEC_BASE, ASM_PIC_SPEC): ... this. + * config/i386/sol2.h (ASM_SPEC): Define using ASM_SPEC_BASE. + * config/i386/sol2-bi.h (ASM_CPU_SPEC): Redefine. + (ASM_SPEC): Use ASM_SPEC_BASE. + * config/sparc/sol2.h (ASM_SPEC): Redefine. + 2011-07-07 Georg-Johann Lay * config/avr/avr.md (*reload_insi): Change predicate #1 to diff --git a/gcc/config/i386/sol2-bi.h b/gcc/config/i386/sol2-bi.h index 394ca580884..a988fa00b93 100644 --- a/gcc/config/i386/sol2-bi.h +++ b/gcc/config/i386/sol2-bi.h @@ -31,15 +31,19 @@ along with GCC; see the file COPYING3. If not see /* GNU as understands --32 and --64, but the native Solaris assembler requires -xarch=generic or -xarch=generic64 instead. */ -#undef ASM_SPEC +#undef ASM_CPU_SPEC #ifdef USE_GAS -#define ASM_SPEC "%{m32:--32} %{m64:--64} -s %(asm_cpu)" +#define ASM_CPU_SPEC "%{m32:--32} %{m64:--64}" #else -#define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{Ym,*} " \ - "%{m32:-xarch=generic} %{m64:-xarch=generic64} " \ - "-s %(asm_cpu)" +#define ASM_CPU_SPEC "%{m32:-xarch=generic} %{m64:-xarch=generic64}" #endif +/* Don't let i386/x86-64.h override i386/sol2.h version. Still cannot use + -K PIC with the Solaris 10+ assembler, it gives many warnings: + Absolute relocation is used for symbol "" */ +#undef ASM_SPEC +#define ASM_SPEC ASM_SPEC_BASE + /* We do not need to search a special directory for startup files. */ #undef MD_STARTFILE_PREFIX diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h index f5e5c762612..593e256c164 100644 --- a/gcc/config/i386/sol2.h +++ b/gcc/config/i386/sol2.h @@ -61,12 +61,12 @@ along with GCC; see the file COPYING3. If not see #define ASM_CPU_SPEC "" -/* Removed -K PIC from generic sol2.h ASM_SPEC: the Solaris 8 and 9 assembler - gives many warnings: R_386_32 relocation is used for symbol ".text", and +/* Don't include ASM_PIC_SPEC. While the Solaris 8 and 9 assembler accepts + -K PIC, it gives many warnings: + R_386_32 relocation is used for symbol "" GNU as doesn't recognize -K at all. */ -/* FIXME: Perhaps split between common and CPU-specific parts? */ #undef ASM_SPEC -#define ASM_SPEC "%{v:-V} %{Qy:} %{!Qn:-Qy} %{Ym,*} -s %(asm_cpu)" +#define ASM_SPEC ASM_SPEC_BASE #define SUBTARGET_CPU_EXTRA_SPECS \ { "cpp_subtarget", CPP_SUBTARGET_SPEC }, \ diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h index d9c1fc99a40..3867c7dd245 100644 --- a/gcc/config/sol2.h +++ b/gcc/config/sol2.h @@ -99,13 +99,12 @@ along with GCC; see the file COPYING3. If not see TARGET_SUB_OS_CPP_BUILTINS(); \ } while (0) -/* It's safe to pass -s always, even if -g is not used. */ -#undef ASM_SPEC -#define ASM_SPEC "\ -%{v:-V} %{Qy:} %{!Qn:-Qy} %{Ym,*} -s \ -%{fpic|fpie|fPIC|fPIE:-K PIC} \ -%(asm_cpu) \ -" +/* It's safe to pass -s always, even if -g is not used. Those options are + handled by both Sun as and GNU as. */ +#define ASM_SPEC_BASE \ +"%{v:-V} %{Qy:} %{!Qn:-Qy} %{Ym,*} -s %(asm_cpu)" + +#define ASM_PIC_SPEC " %{fpic|fpie|fPIC|fPIE:-K PIC}" #undef LIB_SPEC #define LIB_SPEC \ diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index 24c7ade0177..392b171be8d 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -120,6 +120,10 @@ along with GCC; see the file COPYING3. If not see #define ASM_CPU_DEFAULT_SPEC ASM_CPU32_DEFAULT_SPEC #endif +/* Both Sun as and GNU as understand -K PIC. */ +#undef ASM_SPEC +#define ASM_SPEC ASM_SPEC_BASE ASM_PIC_SPEC + #undef CPP_CPU_SPEC #define CPP_CPU_SPEC "\ %{mcpu=sparclet|mcpu=tsc701:-D__sparclet__} \