From 14e55b16dfc37df6e7fb0725ea697c32e7c7beb3 Mon Sep 17 00:00:00 2001 From: Chandler Carruth Date: Tue, 21 Oct 2014 00:36:28 +0000 Subject: [PATCH] Teach lit to filter the host LDFLAGS down from the build system and into the CGO build environment. This lets things like -rpath propagate down to the C++ code that is built along side the Go bindings when testing them. Patch by Peter Collingbourne, and verified that it works by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@220252 91177308-0d34-0410-b5e6-96231b3b80d8 --- cmake/modules/AddLLVM.cmake | 1 + test/Bindings/Go/go.test | 2 +- test/Bindings/Go/lit.local.cfg | 1 + test/Makefile | 1 + test/lit.site.cfg.in | 1 + 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake index 127d5389d19..81b21fbfb6f 100644 --- a/cmake/modules/AddLLVM.cmake +++ b/cmake/modules/AddLLVM.cmake @@ -657,6 +657,7 @@ function(configure_lit_site_cfg input output) set(HOST_CC "${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1}") set(HOST_CXX "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_COMPILER_ARG1}") + set(HOST_LDFLAGS "${CMAKE_EXE_LINKER_FLAGS}") configure_file(${input} ${output} @ONLY) endfunction() diff --git a/test/Bindings/Go/go.test b/test/Bindings/Go/go.test index ec860ba4acc..ff0cf90e1d8 100644 --- a/test/Bindings/Go/go.test +++ b/test/Bindings/Go/go.test @@ -2,7 +2,7 @@ ; RUN: env CGO_CPPFLAGS="$(llvm-config --cppflags)" \ ; RUN: CGO_CXXFLAGS=-std=c++11 \ ; RUN: CGO_LDFLAGS="$(llvm-config --ldflags --libs --system-libs \ -; RUN: $(../build.sh --print-components))" \ +; RUN: $(../build.sh --print-components)) $CGO_LDFLAGS" \ ; RUN: %go test -tags byollvm . ; REQUIRES: shell diff --git a/test/Bindings/Go/lit.local.cfg b/test/Bindings/Go/lit.local.cfg index f366397a2b2..e86595b8cb5 100644 --- a/test/Bindings/Go/lit.local.cfg +++ b/test/Bindings/Go/lit.local.cfg @@ -54,3 +54,4 @@ def fixup_compiler_path(compiler): config.environment['CC'] = fixup_compiler_path(config.host_cc) config.environment['CXX'] = fixup_compiler_path(config.host_cxx) +config.environment['CGO_LDFLAGS'] = config.host_ldflags diff --git a/test/Makefile b/test/Makefile index 546266a838f..156009d026c 100644 --- a/test/Makefile +++ b/test/Makefile @@ -136,6 +136,7 @@ lit.site.cfg: FORCE @$(ECHOPATH) s=@GO_EXECUTABLE@=$(GO)=g >> lit.tmp @$(ECHOPATH) s!@HOST_CC@!$(CC)!g >> lit.tmp @$(ECHOPATH) s!@HOST_CXX@!$(CXX)!g >> lit.tmp + @$(ECHOPATH) s!@HOST_LDFLAGS@!$(LDFLAGS)!g >> lit.tmp @$(ECHOPATH) s=@ENABLE_SHARED@=$(ENABLE_SHARED)=g >> lit.tmp @$(ECHOPATH) s=@ENABLE_ASSERTIONS@=$(ENABLE_ASSERTIONS)=g >> lit.tmp @$(ECHOPATH) s=@TARGETS_TO_BUILD@=$(TARGETS_TO_BUILD)=g >> lit.tmp diff --git a/test/lit.site.cfg.in b/test/lit.site.cfg.in index 65551c03a87..f3141df3268 100644 --- a/test/lit.site.cfg.in +++ b/test/lit.site.cfg.in @@ -22,6 +22,7 @@ config.host_os = "@HOST_OS@" config.host_arch = "@HOST_ARCH@" config.host_cc = "@HOST_CC@" config.host_cxx = "@HOST_CXX@" +config.host_ldflags = "@HOST_LDFLAGS@" config.llvm_use_intel_jitevents = "@LLVM_USE_INTEL_JITEVENTS@" config.llvm_use_sanitizer = "@LLVM_USE_SANITIZER@" config.have_zlib = "@HAVE_LIBZ@"