From fcf7471a39854c6bf17a6b59beca52cd56a03ce2 Mon Sep 17 00:00:00 2001 From: Rainer Orth Date: Thu, 7 Jul 2011 08:52:48 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 9 +++++++++ gcc/config/i386/sol2-bi.h | 14 +++++++++----- gcc/config/i386/sol2.h | 8 ++++---- gcc/config/sol2.h | 13 ++++++------- gcc/config/sparc/sol2.h | 4 ++++ 5 files changed, 32 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8429d5c6064c..ad790d3844d0 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 394ca5808849..a988fa00b93b 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 f5e5c7626122..593e256c164d 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 d9c1fc99a40a..3867c7dd2453 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 24c7ade0177a..392b171be8d8 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__} \ -- 2.43.5