diff options
Diffstat (limited to 'gcc/gcc.c')
-rw-r--r-- | gcc/gcc.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/gcc/gcc.c b/gcc/gcc.c index ff0f5845224..29735be1b9b 100644 --- a/gcc/gcc.c +++ b/gcc/gcc.c @@ -548,7 +548,9 @@ proper position among the other output files. */ #else #define ADD_STATIC_LIBASAN_LIBS #endif -#ifdef HAVE_LD_STATIC_DYNAMIC +#ifdef LIBASAN_EARLY_SPEC +#define LIBASAN_SPEC ADD_STATIC_LIBASAN_LIBS +#elif defined(HAVE_LD_STATIC_DYNAMIC) #define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \ "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \ ADD_STATIC_LIBASAN_LIBS @@ -557,6 +559,10 @@ proper position among the other output files. */ #endif #endif +#ifndef LIBASAN_EARLY_SPEC +#define LIBASAN_EARLY_SPEC "" +#endif + #ifndef LIBTSAN_SPEC #ifdef HAVE_LD_STATIC_DYNAMIC #define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION \ @@ -705,7 +711,8 @@ proper position among the other output files. */ "%{fuse-ld=*:-fuse-ld=%*}\ %X %{o*} %{e*} %{N} %{n} %{r}\ %{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!nostartfiles:%S}}\ - %{static:} %{L*} %(mfwrap) %(link_libgcc) %o\ + %{static:} %{L*} %(mfwrap) %(link_libgcc) \ + %{fsanitize=address:" LIBASAN_EARLY_SPEC "} %o\ %{fopenmp|ftree-parallelize-loops=*:%:include(libgomp.spec)%(link_gomp)}\ %{fgnu-tm:%:include(libitm.spec)%(link_itm)}\ %(mflib) " STACK_SPLIT_SPEC "\ |