mac: In static library builds, link against a static libc++.a To achieve this, just add a -Lthird_party/libc++-static flag to the link line, and add a postbuild that checks that Chromium Framework depends on neither libstdc++.dylib nor libc++.dylib Use the existing verify_order postbuild for this, and let it not run in component builds (since what it checks for isn't interesting in that config, and we do depend on system libc++ in component builds). This change is small but subtle, see thread "[chromium-dev] Intent to implement: Statically linking libc++ for Chrome/Mac" and the document linked from comment 14 on the bug for details. Ideally, this has no observable behavior change. If it looks like this breaks tests somewhere, especially on 10.6, please revert. (The bots like it, and the things I tried on 10.6 worked too, though.) BUG=400091 R=mark@chromium.org Committed: https://chromium.googlesource.com/chromium/src/+/494270d01189f8b4b2b4ebd501fd980833489729 Review URL: https://codereview.chromium.org/1413863003 . Cr-Original-Commit-Position: refs/heads/master@{#355848} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0f56cff872068cef226e7ad3f9701eb41d4eb2f5
diff --git a/build.sh b/build.sh index 96d490c..d79054d 100755 --- a/build.sh +++ b/build.sh
@@ -38,16 +38,16 @@ 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++-static.a +# size in each binary linking against libc++.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++-static.a libcxx*/*.o +libtool -static -o libc++.a libcxx*/*.o -cp libc++-static.a "${THIS_DIR}" -upload_to_google_storage.py -b chromium-libcpp "${THIS_DIR}/libc++-static.a" +cp libc++.a "${THIS_DIR}/libc++.a" +upload_to_google_storage.py -b chromium-libcpp "${THIS_DIR}/libc++.a" popd rm -rf "${DIR}"
diff --git a/libc++-static.a.sha1 b/libc++.a.sha1 similarity index 100% rename from libc++-static.a.sha1 rename to libc++.a.sha1