diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | DEPS | 2 | ||||
-rw-r--r-- | build/common.gypi | 42 | ||||
-rw-r--r-- | chrome/chrome_dll.gypi | 2 | ||||
-rwxr-xr-x | chrome/tools/build/mac/verify_order | 16 | ||||
-rwxr-xr-x | third_party/libc++-static/build.sh | 8 | ||||
-rw-r--r-- | third_party/libc++-static/libc++-static.a.sha1 (renamed from third_party/libc++-static/libc++.a.sha1) | 0 |
7 files changed, 22 insertions, 50 deletions
@@ -335,7 +335,7 @@ v8.log /third_party/khronos_glcts /third_party/leveldatabase/src /third_party/leveldb -/third_party/libc++-static/libc++.a +/third_party/libc++-static/libc++-static.a /third_party/libaddressinput/src /third_party/libexif/sources /third_party/libjingle/source @@ -682,7 +682,7 @@ hooks = [ '--platform=darwin', '--no_auth', '--bucket', 'chromium-libcpp', - '-s', 'src/third_party/libc++-static/libc++.a.sha1', + '-s', 'src/third_party/libc++-static/libc++-static.a.sha1', ], }, # Pull luci-go binaries (isolate, swarming) using checked-in hashes. diff --git a/build/common.gypi b/build/common.gypi index cc5619e..e7b0527 100644 --- a/build/common.gypi +++ b/build/common.gypi @@ -5260,26 +5260,6 @@ }, # configuration "Release" }, # configurations 'xcode_settings': { - # 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++ - 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic # (Equivalent to -fPIC) # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min @@ -5296,15 +5276,23 @@ # specified or not. '-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.) + 'CLANG_CXX_LIBRARY': 'libc++', # -stdlib=libc++ + }], + ], }, 'target_conditions': [ - ['>(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. - 'library_dirs': [ - '<(DEPTH)/third_party/libc++-static', - ], - }], ['_type=="executable"', { 'postbuilds': [ { diff --git a/chrome/chrome_dll.gypi b/chrome/chrome_dll.gypi index f15884a..ef61887 100644 --- a/chrome/chrome_dll.gypi +++ b/chrome/chrome_dll.gypi @@ -304,7 +304,7 @@ ], }], # This step currently fails when using LTO. TODO(pcc): Re-enable. - ['OS=="mac" and use_lto==0 and component=="static_library"', { + ['OS=="mac" and use_lto==0', { 'postbuilds': [ { # This step causes an error to be raised if the .order file diff --git a/chrome/tools/build/mac/verify_order b/chrome/tools/build/mac/verify_order index cfa4c5a..3d5d644 100755 --- a/chrome/tools/build/mac/verify_order +++ b/chrome/tools/build/mac/verify_order @@ -12,8 +12,6 @@ # # This script can be used to verify that all of the global text symbols in # a Mach-O file are accounted for in an order file. -# -# Also check that the file does not depend on either of libstdc++ or libc++. if [ ${#} -ne 2 ] ; then echo "usage: ${0} LAST_SYMBOL MACH_O_FILE" >& 2 @@ -42,18 +40,4 @@ if [ ${?} -eq 0 ] || [ -n "${UNORDERED_SYMBOLS}" ] ; then exit 1 fi -LIBS=$(otool -L "${MACH_O_FILE}") -if [ ${?} -ne 0 ] ; then - echo "${0}: failed to get libraries in ${MACH_O_FILE}" >& 2 - exit 1 -fi -if grep -Fq libstdc++ <<< ${LIBS} ; then - echo "${0}: ${MACH_O_FILE} depends on libstdc++" >& 2 - exit 1 -fi -if grep -Fq libc++ <<< ${LIBS} ; then - echo "${0}: ${MACH_O_FILE} depends on libc++" >& 2 - exit 1 -fi - exit 0 diff --git a/third_party/libc++-static/build.sh b/third_party/libc++-static/build.sh index d79054d..96d490c 100755 --- a/third_party/libc++-static/build.sh +++ b/third_party/libc++-static/build.sh @@ -38,16 +38,16 @@ sed -i '' 's/"default"/"hidden"/g' ../../libcxxabi/src/* sed -i '' 's/push(default)/push(hidden)/g' ../../libcxxabi/src/* # Let the default handler not depend on __cxa_demangle, this saves 0.5MB binary -# size in each binary linking against libc++.a +# size in each binary linking against libc++-static.a patch -d ../../libcxxabi -p0 < "${THIS_DIR}/libcxxabi.patch" "$CXX" -c -I../../libcxx/include/ -I../../libcxxabi/include ../../libcxxabi/src/*.cpp $FLAGS popd -libtool -static -o libc++.a libcxx*/*.o +libtool -static -o libc++-static.a libcxx*/*.o -cp libc++.a "${THIS_DIR}/libc++.a" -upload_to_google_storage.py -b chromium-libcpp "${THIS_DIR}/libc++.a" +cp libc++-static.a "${THIS_DIR}" +upload_to_google_storage.py -b chromium-libcpp "${THIS_DIR}/libc++-static.a" popd rm -rf "${DIR}" diff --git a/third_party/libc++-static/libc++.a.sha1 b/third_party/libc++-static/libc++-static.a.sha1 index 06a3493..06a3493 100644 --- a/third_party/libc++-static/libc++.a.sha1 +++ b/third_party/libc++-static/libc++-static.a.sha1 |