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: ... in rs6000/sysv4.h are: LINK_EH_SPEC NO_IMPLICIT_EXTERN_C However, there are some non-linux (eg, freebsd, lynx, etc.) that also include rs6000/sysv4.h and not gnu-user.h, so I think we need to keep this defines in rs6000/sysv4.h...or I could move them to freebsd{,64}.h, lynx.h, etc. Your preference is??? ...in rs6000/linux{,64}.h are: ASM_APP_ON ASM_APP_OFF CPLUSPLUS_CPP_SPEC LINK_GCC_C_SEQUENCE_SPEC USE_LD_AS_NEEDED TARGET_POSIX_IO These we should be able to freely remove from rs6000/linux{,64}.h since gnu-user.h provides the same identical definitions. There are also a few macros that gnu-user.h defines that are different than the what rs6000/*.h files define (eg, STARTFILE_SPEC, ENDFILE_SPEC, CC1_SPEC LIB_SPEC and TARGET_LIBC_HAS_FUNCTION), so we'll want to leave those macro definitions as well. Peter