mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-06 02:47:20 +00:00
[llvm-config] Print --system-libs only when static linking
Modify the --system-libs option in llvm-config to print system libs only when using static linking. The system libraries are irrelevant when linking to a shared library since the library has appropriate library dependencies embedded. Modify the --system-libs test appropriately to force static linking, and disable it if static libs are not available (i.e. BUILD_SHARED_LIBS is enabled). Differential Revision: https://reviews.llvm.org/D27805 llvm-svn: 291285
This commit is contained in:
parent
a44b476fd0
commit
22cda48e3b
@ -7,7 +7,8 @@ llvm_canonicalize_cmake_booleans(
|
||||
HAVE_LIBZ
|
||||
HAVE_LIBXAR
|
||||
LLVM_ENABLE_DIA_SDK
|
||||
LLVM_ENABLE_FFI)
|
||||
LLVM_ENABLE_FFI
|
||||
BUILD_SHARED_LIBS)
|
||||
|
||||
configure_lit_site_cfg(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
|
||||
|
@ -377,6 +377,10 @@ else:
|
||||
if loadable_module:
|
||||
config.available_features.add('loadable_module')
|
||||
|
||||
# Static libraries are not built if BUILD_SHARED_LIBS is ON.
|
||||
if not config.build_shared_libs:
|
||||
config.available_features.add("static-libs")
|
||||
|
||||
# Sanitizers.
|
||||
if 'Address' in config.llvm_use_sanitizer:
|
||||
config.available_features.add("asan")
|
||||
|
@ -38,6 +38,7 @@ config.have_zlib = @HAVE_LIBZ@
|
||||
config.have_libxar = @HAVE_LIBXAR@
|
||||
config.have_dia_sdk = @LLVM_ENABLE_DIA_SDK@
|
||||
config.enable_ffi = @LLVM_ENABLE_FFI@
|
||||
config.build_shared_libs = @BUILD_SHARED_LIBS@
|
||||
|
||||
# Support substitution of the tools_dir with user parameters. This is
|
||||
# used when we can't determine the tool dir at configuration time.
|
||||
|
@ -1,4 +1,5 @@
|
||||
RUN: llvm-config --system-libs 2>&1 | FileCheck %s
|
||||
RUN: llvm-config --link-static --system-libs 2>&1 | FileCheck %s
|
||||
REQUIRES: static-libs
|
||||
UNSUPPORTED: system-windows
|
||||
CHECK: -l
|
||||
CHECK-NOT: error
|
||||
|
@ -1,4 +1,5 @@
|
||||
RUN: llvm-config --system-libs 2>&1 | FileCheck %s
|
||||
RUN: llvm-config --link-static --system-libs 2>&1 | FileCheck %s
|
||||
REQUIRES: static-libs
|
||||
REQUIRES: system-windows
|
||||
CHECK-NOT: -l
|
||||
CHECK: psapi.lib shell32.lib ole32.lib uuid.lib
|
||||
|
@ -698,8 +698,12 @@ int main(int argc, char **argv) {
|
||||
|
||||
// Print SYSTEM_LIBS after --libs.
|
||||
// FIXME: Each LLVM component may have its dependent system libs.
|
||||
if (PrintSystemLibs)
|
||||
OS << LLVM_SYSTEM_LIBS << '\n';
|
||||
if (PrintSystemLibs) {
|
||||
// Output system libraries only if linking against a static
|
||||
// library (since the shared library links to all system libs
|
||||
// already)
|
||||
OS << (LinkMode == LinkModeStatic ? LLVM_SYSTEM_LIBS : "") << '\n';
|
||||
}
|
||||
} else if (!Components.empty()) {
|
||||
errs() << "llvm-config: error: components given, but unused\n\n";
|
||||
usage();
|
||||
|
Loading…
Reference in New Issue
Block a user