On Wed, 2014-07-23 at 15:06 -0500, Peter Bergner wrote:
> On Wed, 2014-07-16 at 11:23 +0200, Jakub Jelinek wrote: 
> > On Wed, Jul 16, 2014 at 05:18:06AM -0400, David Edelsohn wrote:
> > > This seems weird. Why wasn't this file included before or whenever it
> > > was added for other *-linux targets?  This seems to define SPECs that
> > > should have been necessary before now.
> > 
> > All other Linux targets where asan is supported got the right definitions
> > from gnu-user.h, it was needed even on the older release branches.
> 
> Ok, I compiled a source file that #includes tm.h and looked at the -dD -E
> output to see what macros get defined with and without this change.
> There are a few macros the gnu-user.h defines that are identical to what
> some of the rs6000/sysv4.h or rs6000/linux{,64}.h header files define, so
> we could remove those.  There are some that are different too, so we'd
> need to keep those.  The following are the macros that are identical:

FYI, here is the mainline patch that removes the redundant macro defines
in rs6000/linux.h and rs6000/linux64.h.  This also passed bootstrap and
regtesting with no regressions.


Peter


        * config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
        * config/rs6000/sysv4.h (CC!_SPEC): Undefine it before defining it.
        * config/rs6000/linux.h (CPLUSPLUS_CPP_SPEC): Delete define.
        (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
        (USE_LD_AS_NEEDED): Likewise.
        (ASM_APP_ON): Likewise.
        (ASM_APP_OFF): Likewise.
        (TARGET_POSIX_IO): Likewise.
        * config/rs6000/linux64.h (CPLUSPLUS_CPP_SPEC): Likewise.
        (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
        (USE_LD_AS_NEEDED): Likewise.
        (ASM_APP_ON): Likewise.
        (ASM_APP_OFF): Likewise.
        (TARGET_POSIX_IO): Likewise.

Index: gcc/config.gcc
===================================================================
--- gcc/config.gcc      (revision 212572)
+++ gcc/config.gcc      (working copy)
@@ -2243,7 +2243,7 @@ powerpc-*-rtems*)
        tmake_file="${tmake_file} rs6000/t-fprules rs6000/t-rtems 
rs6000/t-ppccomm"
        ;;
 powerpc*-*-linux*)
-       tm_file="${tm_file} dbxelf.h elfos.h freebsd-spec.h rs6000/sysv4.h"
+       tm_file="${tm_file} dbxelf.h elfos.h gnu-user.h freebsd-spec.h 
rs6000/sysv4.h"
        extra_options="${extra_options} rs6000/sysv4.opt"
        tmake_file="rs6000/t-fprules rs6000/t-ppcos ${tmake_file} 
rs6000/t-ppccomm"
        extra_objs="$extra_objs rs6000-linux.o"
Index: gcc/config/rs6000/sysv4.h
===================================================================
--- gcc/config/rs6000/sysv4.h   (revision 212572)
+++ gcc/config/rs6000/sysv4.h   (working copy)
@@ -539,6 +539,7 @@ ENDIAN_SELECT(" -mbig", " -mlittle", DEF
 #endif
 
 /* Pass -G xxx to the compiler.  */
+#undef CC1_SPEC
 #define        CC1_SPEC "%{G*} %(cc1_cpu)" \
 "%{meabi: %{!mcall-*: -mcall-sysv }} \
 %{!meabi: %{!mno-eabi: \
Index: gcc/config/rs6000/linux.h
===================================================================
--- gcc/config/rs6000/linux.h   (revision 212572)
+++ gcc/config/rs6000/linux.h   (working copy)
@@ -56,12 +56,6 @@
 #undef CPP_OS_DEFAULT_SPEC
 #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
 
-/* The GNU C++ standard library currently requires _GNU_SOURCE being
-   defined on glibc-based systems. This temporary hack accomplishes this,
-   it should go away as soon as libstdc++-v3 has a real fix.  */
-#undef  CPLUSPLUS_CPP_SPEC
-#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-
 #undef  LINK_SHLIB_SPEC
 #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
 
@@ -98,22 +92,6 @@
   %{rdynamic:-export-dynamic} \
   -dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
 
-#define LINK_GCC_C_SEQUENCE_SPEC \
-  "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
-
-/* Use --as-needed -lgcc_s for eh support.  */
-#ifdef HAVE_LD_AS_NEEDED
-#define USE_LD_AS_NEEDED 1
-#endif
-
-/* Override rs6000.h definition.  */
-#undef  ASM_APP_ON
-#define ASM_APP_ON "#APP\n"
-
-/* Override rs6000.h definition.  */
-#undef  ASM_APP_OFF
-#define ASM_APP_OFF "#NO_APP\n"
-
 /* For backward compatibility, we must continue to use the AIX
    structure return convention.  */
 #undef  DRAFT_V4_STRUCT_RET
@@ -129,8 +107,6 @@
 #define RELOCATABLE_NEEDS_FIXUP \
   (rs6000_isa_flags & rs6000_isa_flags_explicit & OPTION_MASK_RELOCATABLE)
 
-#define TARGET_POSIX_IO
-
 #ifdef TARGET_LIBC_PROVIDES_SSP
 /* ppc32 glibc provides __stack_chk_guard in -0x7008(2).  */
 #define TARGET_THREAD_SSP_OFFSET       -0x7008
Index: gcc/config/rs6000/linux64.h
===================================================================
--- gcc/config/rs6000/linux64.h (revision 212572)
+++ gcc/config/rs6000/linux64.h (working copy)
@@ -343,12 +343,6 @@ extern int dot_symbols;
 #undef  CPP_OS_DEFAULT_SPEC
 #define CPP_OS_DEFAULT_SPEC "%(cpp_os_linux)"
 
-/* The GNU C++ standard library currently requires _GNU_SOURCE being
-   defined on glibc-based systems. This temporary hack accomplishes this,
-   it should go away as soon as libstdc++-v3 has a real fix.  */
-#undef  CPLUSPLUS_CPP_SPEC
-#define CPLUSPLUS_CPP_SPEC "-D_GNU_SOURCE %(cpp)"
-
 #undef  LINK_SHLIB_SPEC
 #define LINK_SHLIB_SPEC "%{shared:-shared} %{!shared: %{static:-static}}"
 
@@ -440,14 +434,6 @@ extern int dot_symbols;
 #undef  WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE 32
 
-/* Override rs6000.h definition.  */
-#undef  ASM_APP_ON
-#define ASM_APP_ON "#APP\n"
-
-/* Override rs6000.h definition.  */
-#undef  ASM_APP_OFF
-#define ASM_APP_OFF "#NO_APP\n"
-
 #undef  RS6000_MCOUNT
 #define RS6000_MCOUNT "_mcount"
 
@@ -547,16 +533,6 @@ extern int dot_symbols;
 #undef DRAFT_V4_STRUCT_RET
 #define DRAFT_V4_STRUCT_RET (!TARGET_64BIT)
 
-#define TARGET_POSIX_IO
-
-#define LINK_GCC_C_SEQUENCE_SPEC \
-  "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
-
-/* Use --as-needed -lgcc_s for eh support.  */
-#ifdef HAVE_LD_AS_NEEDED
-#define USE_LD_AS_NEEDED 1
-#endif
-
 #ifdef TARGET_LIBC_PROVIDES_SSP
 /* ppc32 glibc provides __stack_chk_guard in -0x7008(2),
    ppc64 glibc provides it at -0x7010(13).  */


Reply via email to