summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--DEPS2
-rw-r--r--build/common.gypi42
-rw-r--r--chrome/chrome_dll.gypi2
-rwxr-xr-xchrome/tools/build/mac/verify_order16
-rwxr-xr-xthird_party/libc++-static/build.sh8
-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
diff --git a/.gitignore b/.gitignore
index 88cf776..ef33bc3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/DEPS b/DEPS
index 5139b56..77f260e 100644
--- a/DEPS
+++ b/DEPS
@@ -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