Merge branch 'master' of https://android.googlesource.com/toolchain/mclinker into aosp
Conflicts:
m4/llvm.m4
Change-Id: I809c460cb338707818dff205979427af8fcd00ed
diff --git a/m4/llvm.m4 b/m4/llvm.m4
index 69f1ea8..bdb1136 100644
--- a/m4/llvm.m4
+++ b/m4/llvm.m4
@@ -12,6 +12,17 @@
AC_DEFUN([CHECK_LLVM],
[dnl
+ AC_ARG_WITH([llvm-shared-lib],
+ AS_HELP_STRING([--with-llvm-shared-lib],
+ [Link shared library against LLVM to reduce size (full path to libLLVM.so)]),)
+ AC_MSG_CHECKING(for libLLVM.so)
+ if test -n ${withval} -a -f ${withval}; then
+ LLVM_SHARED_LIB="${withval}"
+ AC_MSG_RESULT(${LLVM_SHARED_LIB})
+ else
+ AC_MSG_RESULT([no])
+ fi
+
AC_ARG_WITH(
[llvm-config],
[AS_HELP_STRING([--with-llvm-config[[=PATH]]],
@@ -57,7 +68,12 @@
LLVM_CPPFLAGS="`${LLVM_CONFIG_BIN} --cxxflags`"
LLVM_LDFLAGS="`${LLVM_CONFIG_BIN} --libs`"
LLVM_LDFLAGS="${LLVM_LDFLAGS} `${LLVM_CONFIG_BIN} --system-libs`"
- LLVM_LDFLAGS="${LLVM_LDFLAGS} `${LLVM_CONFIG_BIN} --ldflags`"
+ if test -n "${LLVM_SHARED_LIB}" -a -f "${LLVM_SHARED_LIB}"; then
+ # Use libLLVM.so instead of lots libLLVM*.a
+ LLVM_LDFLAGS="${LLVM_SHARED_LIB} `${LLVM_CONFIG_BIN} --ldflags`"
+ else
+ LLVM_LDFLAGS="${LLVM_LDFLAGS} `${LLVM_CONFIG_BIN} --ldflags`"
+ fi
LLVM_LDFLAGS="`echo ${LLVM_LDFLAGS} | sed 's/\n//g'`"
LLVM_LDFLAGS="`echo ${LLVM_LDFLAGS} | sed 's/-lgtest_main -lgtest//g'`"
@@ -102,6 +118,14 @@
*-*-interix*)
llvm_cv_os_type="Interix"
llvm_cv_platform_type="Unix" ;;
+ *-*-linux-android*)
+ llvm_cv_os_type="Linux"
+ llvm_cv_platform_type="Unix"
+ # Android bionic doesn't need -lpthread. Pthread stuff in -lc instead.
+ # Likewise for -lrt.
+ LLVM_LDFLAGS="`echo ${LLVM_LDFLAGS} | sed 's/-lpthread//g'`"
+ LLVM_LDFLAGS="`echo ${LLVM_LDFLAGS} | sed 's/-lrt//g'`"
+ LLVM_LDFLAGS="`echo ${LLVM_LDFLAGS} | sed 's/-ltinfo//g'`" ;;
*-*-linux*)
llvm_cv_os_type="Linux"
llvm_cv_platform_type="Unix" ;;