aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/gnu-user.h4
-rw-r--r--gcc/gcc.c11
3 files changed, 20 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index fabcb5d..1e97691 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2012-11-22 H.J. Lu <hongjiu.lu@intel.com>
+
+ * gcc.c (ADD_STATIC_LIBASAN_LIBS): New macro. Defined
+ with STATIC_LIBASAN_LIBS.
+ (LIBASAN_SPEC): Add STATIC_LIBASAN_LIBS.
+ * config/gnu-user.h (STATIC_LIBASAN_LIBS): New macro.
+
2012-11-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.md (*arm_abssi2): Define predicable attribute.
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
index cb45749..8c4bbc6 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -98,3 +98,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define TARGET_C99_FUNCTIONS 1
#define TARGET_HAS_SINCOS 1
+
+/* Additional libraries needed by -static-libasan. */
+#undef STATIC_LIBASAN_LIBS
+#define STATIC_LIBASAN_LIBS "-ldl -lpthread"
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 0f8bcea..764ee1b 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -545,11 +545,18 @@ proper position among the other output files. */
#define STACK_SPLIT_SPEC " %{fsplit-stack: --wrap=pthread_create}"
#ifndef LIBASAN_SPEC
+#ifdef STATIC_LIBASAN_LIBS
+#define ADD_STATIC_LIBASAN_LIBS \
+ " %{static-libasan:" STATIC_LIBASAN_LIBS "}"
+#else
+#define ADD_STATIC_LIBASAN_LIBS
+#endif
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION \
- "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}"
+ "} -lasan %{static-libasan:" LD_DYNAMIC_OPTION "}" \
+ ADD_STATIC_LIBASAN_LIBS
#else
-#define LIBASAN_SPEC "-lasan"
+#define LIBASAN_SPEC "-lasan" ADD_STATIC_LIBASAN_LIBS
#endif
#endif