diff options
author | Pirama Arumuga Nainar <pirama@google.com> | 2015-04-23 11:06:58 -0700 |
---|---|---|
committer | Pirama Arumuga Nainar <pirama@google.com> | 2015-04-30 17:59:43 -0700 |
commit | e1bc145815f4334641be19f1c45ecf85d25b6e5a (patch) | |
tree | b861976c5addc22b42abe36cbbb596a04b84a1dc /tools | |
parent | b928ea3b96fd7bb0945799da90b7b122968ddc53 (diff) | |
download | external_llvm-e1bc145815f4334641be19f1c45ecf85d25b6e5a.zip external_llvm-e1bc145815f4334641be19f1c45ecf85d25b6e5a.tar.gz external_llvm-e1bc145815f4334641be19f1c45ecf85d25b6e5a.tar.bz2 |
Export all dynamic symbols for opt and bugpoint
bug 15433215
Command line options from an LLVM module are registered and stored in a
static global object in libLLVMSupport. Linking the Hello module with
its own copy of libLLVMSupport meant this module's option was not
registered correctly. This patch updates Hello's build rules to not
link with libLLVMSupport and libLLVMCore.
Given the above change, the Hello module still needs to find LLVM
symbols that it used to pull directly. The second half of this patch
adds linker flag --export-dynamic to tools/opt and tools/bugpoint so
loaded modules can find LLVM symbols.
Other notes:
- The linker flag is not added to the device build of opt. No one
should be running opt on the device, AFAIK.
- Other tools that load modules, such as llc, lli and even clang, would
need this linker flag if they were to load modules correctly. Now
that we know how to fix the incorrect module loads, they can be fixed
if the need arises.
- Remove a duplicate from opt's llvm_opt_STATIC_LIBRARIES.
All supported tests pass!
Cherry pick of https://android-review.googlesource.com/#/c/148017/ from
AOSP
Change-Id: Ib76507ccfeae37a368718c5a1fb69da337f4f964
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bugpoint/Android.mk | 1 | ||||
-rw-r--r-- | tools/opt/Android.mk | 2 |
2 files changed, 2 insertions, 1 deletions
diff --git a/tools/bugpoint/Android.mk b/tools/bugpoint/Android.mk index 512a91f..752972a 100644 --- a/tools/bugpoint/Android.mk +++ b/tools/bugpoint/Android.mk @@ -52,6 +52,7 @@ LOCAL_SRC_FILES := $(bugpoint_SRC_FILES) LOCAL_STATIC_LIBRARIES := $(bugpoint_STATIC_LIBRARIES) LOCAL_LDLIBS += -lpthread -lm -ldl +LOCAL_LDFLAGS += -Wl,--export-dynamic include $(LLVM_ROOT_PATH)/llvm.mk include $(LLVM_HOST_BUILD_MK) diff --git a/tools/opt/Android.mk b/tools/opt/Android.mk index 814fabc..3c6a494 100644 --- a/tools/opt/Android.mk +++ b/tools/opt/Android.mk @@ -49,7 +49,6 @@ llvm_opt_STATIC_LIBRARIES := \ libLLVMTransformObjCARC \ libLLVMVectorize \ libLLVMScalarOpts \ - libLLVMTransformUtils \ libLLVMPasses \ libLLVMAnalysis \ libLLVMipo \ @@ -77,6 +76,7 @@ LOCAL_IS_HOST_MODULE := true LOCAL_SRC_FILES := $(llvm_opt_SRC_FILES) LOCAL_STATIC_LIBRARIES := $(llvm_opt_STATIC_LIBRARIES) LOCAL_LDLIBS += -lpthread -lm -ldl +LOCAL_LDFLAGS += -Wl,--export-dynamic include $(LLVM_ROOT_PATH)/llvm.mk include $(LLVM_HOST_BUILD_MK) |