| Index: build/common.gypi
|
| diff --git a/build/common.gypi b/build/common.gypi
|
| index e7b0527c34f39c8c13b86878f6ad5da0b8425d50..56dc197b40e0b1b7d5740c45aa57bdf4cafc4b76 100644
|
| --- a/build/common.gypi
|
| +++ b/build/common.gypi
|
| @@ -5260,6 +5260,16 @@
|
| }, # configuration "Release"
|
| }, # configurations
|
| 'xcode_settings': {
|
| + # Everything should include libc++ headers. Just passing
|
| + # -stdlib=libc++ doesn't just work in NaCl targets with asan enabled
|
| + # until http://crbug.com/544325 is fixed, so tell the compiler to not
|
| + # add any include paths, and instead below add the c++ include
|
| + # directory as include_dirs. Then we can not set CLANG_CXX_LIBRARY
|
| + # to libc++ for NaCl targets and that way they'll link against
|
| + # libstdc++ on the ASan bots (ASan requires a C++ library to be linked
|
| + # even for the C-only NaCl programs).
|
| + 'OTHER_CPLUSPLUSFLAGS': [ '$inherited', '-nostdinc++', ],
|
| +
|
| 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic
|
| # (Equivalent to -fPIC)
|
| # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min
|
| @@ -5277,22 +5287,53 @@
|
| '-fno-strict-aliasing', # See http://crbug.com/32204.
|
| ],
|
| 'conditions': [
|
| - ['component=="shared_library"', {
|
| - # In component builds, link to the system libc++. This requires
|
| - # OS X 10.7, but we currently pass -mmacosx-version-min=10.6.
|
| - # Xcode's clang complains about this, but our open-source bundled
|
| - # chromium clang doesn't. This has the effect of making
|
| - # everything depend on libc++, which means component-build
|
| - # binaries won't run on 10.6 (no libc++ there), but for a
|
| - # developer-only configuration that's ok.
|
| - # (We don't want to raise the deployment target yet so that
|
| - # official and dev builds have the same deployment target. This
|
| - # affects things like which functions are considered deprecated.)
|
| + # TODO(thakis): Remove this condition once http://crbug.com/544325
|
| + # is fixed. Some targets below native_client still link use the
|
| + # 10.6 SDK which doesn't contain a libc++.
|
| + ['mac_sdk!="10.6"', {
|
| + # Tell the compiler to use libc++'s headers and the linker to link
|
| + # against libc++. The latter part normally requires OS X 10.7,
|
| + # but we still support running on 10.6. How does this work? Two
|
| + # parts:
|
| + # 1. Chromium's clang doesn't error on -mmacosx-version-min=10.6
|
| + # combined with -stdlib=libc++ (it normally silently produced a
|
| + # binary that doesn't run on 10.6)
|
| + # 2. Further down, library_dirs is set to
|
| + # third_party/libc++-static, which contains a static
|
| + # libc++.a library. The linker then links against that instead
|
| + # of against /usr/lib/libc++.dylib when it sees the -lc++ flag
|
| + # added by the driver.
|
| + #
|
| + # In component builds, just link to the system libc++. This has
|
| + # the effect of making everything depend on libc++, which means
|
| + # component-build binaries won't run on 10.6 (no libc++ there),
|
| + # but for a developer-only configuration that's ok. (We don't
|
| + # want to raise the deployment target yet so that official and
|
| + # dev builds have the same deployment target. This affects
|
| + # things like which functions are considered deprecated.)
|
| 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++
|
| +
|
| }],
|
| ],
|
| },
|
| 'target_conditions': [
|
| + ['>(nacl_untrusted_build)==0', {
|
| + 'include_dirs': [
|
| + '<(DEPTH)/third_party/llvm-build/Release+Asserts/include/c++/v1',
|
| + ],
|
| + }],
|
| + ['>(nacl_untrusted_build)==0 and component=="static_library"', {
|
| + # See the comment for CLANG_CXX_LIBRARY above for what this does.
|
| + # The NaCl toolchains have their own toolchain and don't need this.
|
| + # ASan requires 10.7+ and clang implicitly adds -lc++abi in ASan
|
| + # mode. Our libc++.a contains both libc++ and libc++abi in one
|
| + # library, so it doesn't work in that mode.
|
| + 'conditions': [
|
| + ['asan==0', {
|
| + 'library_dirs': [ '<(DEPTH)/third_party/libc++-static' ],
|
| + }],
|
| + ],
|
| + }],
|
| ['_type=="executable"', {
|
| 'postbuilds': [
|
| {
|
|
|