With a recent libsanitizer merge from upstream, we're now seeing a lot
of ASAN test suite failures with the following error:
==26426==ASan runtime does not come first in initial library list; you should
either link runtime to your application or manually preload it with
LD_PRELOAD.
This is caused by powerpc*-linux not defining LIBASAN_EARLY_SPEC which is
defined in gnu-user.h. It looks like all *-linux architectures include
gnu-user.h except for powerpc*-linux. The following patch makes powerpc*-linux
match the other linux architectures... and fixes a compiler error when we
try to redefine CC1_SPEC.
This passed bootstrap and regtesting on powerpc64-linux with no regressions.
Ok for mainline?
Peter
* config.gcc (powerpc*-*-linux*): Include gnu-user.h in tm_file.
* config/rs6000/sysv4.h (CC!_SPEC): Undefine it before defining it.
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: \