This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, rs6000] Fix many powerpc*-linux ASAN test suite failures
- From: Peter Bergner <bergner at vnet dot ibm dot com>
- To: Jakub Jelinek <jakub at redhat dot com>
- Cc: David Edelsohn <dje dot gcc at gmail dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 23 Jul 2014 15:06:09 -0500
- Subject: Re: [PATCH, rs6000] Fix many powerpc*-linux ASAN test suite failures
- Authentication-results: sourceware.org; auth=none
- References: <1405464182 dot 4285 dot 24 dot camel at otta> <CAGWvnykbyQ+ghA5_BtDUjUYbCLdOyYhr4w=djJnhAwOSz5HkmQ at mail dot gmail dot com> <20140716092358 dot GB31640 at tucnak dot redhat dot com>
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