diff options
author | earthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-05 13:30:42 +0000 |
---|---|---|
committer | earthdok@chromium.org <earthdok@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-05-05 13:30:42 +0000 |
commit | 121cbf6ec94489a2bd430ca2f54a5d7d520df113 (patch) | |
tree | 0b773ed1afdc8c7fba4f274258d5d9e5cc9e9afc /build | |
parent | e85a25702d02f18490c9e53812f1431ba92432f1 (diff) | |
download | chromium_src-121cbf6ec94489a2bd430ca2f54a5d7d520df113.zip chromium_src-121cbf6ec94489a2bd430ca2f54a5d7d520df113.tar.gz chromium_src-121cbf6ec94489a2bd430ca2f54a5d7d520df113.tar.bz2 |
Change the way libc++ is linked when use_custom_libcxx=1.
Instead of passing libc++.so and libc++abi.so on the command line to the linker,
we want to be able to simply pass -stdlib=libc++ to the clang driver and let it
make the decision about linking the DSOs. In this way we can avoid linking
libc++ into C executables.
To this effect we introduce a proxy target which adds -stdlib=libc++ to direct
dependents' flags but does not link the actual DSO. We also link libc++abi
statically into libc++. The latter change is necessary because clang's
-stdlib=libc++ mode is set up to use libsupc++ as the ABI implementation, and
will not automatically pick up libc++abi.so.
BUG=318770
R=glider@chromium.org, thakis@chromium.org
NOTRY=true
TEST=msan
Review URL: https://codereview.chromium.org/264613005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@268169 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'build')
-rw-r--r-- | build/common.gypi | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/build/common.gypi b/build/common.gypi index 1c83133..f479876 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -3811,8 +3811,7 @@ }], ['use_custom_libcxx==1', { 'dependencies': [ - '<(DEPTH)/third_party/libc++/libc++.gyp:libc++', - '<(DEPTH)/third_party/libc++abi/libc++abi.gyp:libc++abi', + '<(DEPTH)/third_party/libc++/libc++.gyp:libcxx_proxy', ], }], ['order_profiling!=0 and (chromeos==1 or OS=="linux" or OS=="android")', { |