Commit 500b4b17 authored by Max Moroz's avatar Max Moroz Committed by Commit Bot

Clean up LLVM bundle package: don't use wildcards and exclude unneeded libs.

Hopefully this won't break too many things. Libraries removed:

- Linux: removed ~5.5MB from ~24.5MB of libs (excluding Android libs):
1.5M	libclang_rt.asan-i386.so
4.0K	libclang_rt.asan-preinit-i386.a
1.5M	libclang_rt.asan-x86_64.so
4.0K	libclang_rt.asan-preinit-x86_64.a
36K	libclang_rt.hwasan_cxx-x86_64.a
4.0K	libclang_rt.hwasan_cxx-x86_64.a.syms
1.4M	libclang_rt.hwasan-x86_64.a
4.0K	libclang_rt.hwasan-x86_64.a.syms
388K	libclang_rt.hwasan-x86_64.so
352K	libclang_rt.ubsan_standalone-i386.so
332K	libclang_rt.ubsan_standalone-x86_64.so

- Darwin: removed ~3MB from ~9MB of libs
1.5M	libclang_rt.fuzzer_no_main_ios.a
1.6M	libclang_rt.fuzzer_no_main_iossim.a

- Windows: (insignificant) removed ~50KB from ~28MB of libs
48094	clang_rt.asan-preinit-i386.lib
892	clang_rt.asan-preinit-x86_64.lib

Bug: 870331
Change-Id: I0ccf1310b2ab5bde6d514a31b2c5ba7eb2844401
Reviewed-on: https://chromium-review.googlesource.com/c/1315361Reviewed-by: default avatarNico Weber <thakis@chromium.org>
Reviewed-by: default avatarReid Kleckner <rnk@chromium.org>
Reviewed-by: default avatarJonathan Metzman <metzman@chromium.org>
Commit-Queue: Max Moroz <mmoroz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607265}
parent a765b323
...@@ -249,39 +249,110 @@ def main(): ...@@ -249,39 +249,110 @@ def main():
'lib/libBlinkGCPlugin.' + so_ext, 'lib/libBlinkGCPlugin.' + so_ext,
]) ])
if sys.platform == 'darwin': if sys.platform == 'darwin':
want.extend([# Copy only the OSX and iossim (ASan, fuzzer and profile) want.extend([
# runtime libraries: # AddressSanitizer runtime.
'lib/clang/*/lib/darwin/*asan_osx*', 'lib/clang/*/lib/darwin/libclang_rt.asan_iossim_dynamic.dylib',
'lib/clang/*/lib/darwin/*asan_iossim*', 'lib/clang/*/lib/darwin/libclang_rt.asan_osx_dynamic.dylib',
'lib/clang/*/lib/darwin/*fuzzer_no_main*',
'lib/clang/*/lib/darwin/*profile_osx*', # Fuzzing instrumentation (-fsanitize=fuzzer-no-link).
'lib/clang/*/lib/darwin/*profile_iossim*', 'lib/clang/*/lib/darwin/libclang_rt.fuzzer_no_main_osx.a',
# And the OSX and ios builtin libraries (iossim is lipo'd into
# ios) for the _IsOSVersionAtLeast runtime function. # OS X and iOS builtin libraries (iossim is lipo'd into ios) for the
'lib/clang/*/lib/darwin/*.ios.a', # _IsOSVersionAtLeast runtime function.
'lib/clang/*/lib/darwin/*.osx.a', 'lib/clang/*/lib/darwin/libclang_rt.ios.a',
]) 'lib/clang/*/lib/darwin/libclang_rt.osx.a',
# Profile runtime (used by profiler and code coverage).
'lib/clang/*/lib/darwin/libclang_rt.profile_iossim.a',
'lib/clang/*/lib/darwin/libclang_rt.profile_osx.a',
])
elif sys.platform.startswith('linux'): elif sys.platform.startswith('linux'):
# Add llvm-ar and lld for LTO. # Add llvm-ar and lld for LTO.
want.append('bin/llvm-ar') want.append('bin/llvm-ar')
want.append('bin/lld') want.append('bin/lld')
# Copy only want.extend([
# lib/clang/*/lib/linux/libclang_rt.{[atm]san,san,ubsan,fuzzer,profile}-*.a, # AddressSanitizer C runtime (pure C won't link with *_cxx).
# but not dfsan. 'lib/clang/*/lib/linux/libclang_rt.asan-i386.a',
want.extend(['lib/clang/*/lib/linux/*[atm]san*', 'lib/clang/*/lib/linux/libclang_rt.asan-x86_64.a',
'lib/clang/*/lib/linux/*ubsan_standalone*', 'lib/clang/*/lib/linux/libclang_rt.asan-x86_64.a.syms',
'lib/clang/*/lib/linux/*libclang_rt.fuzzer_no_main*',
'lib/clang/*/lib/linux/*libclang_rt.san*', # AddressSanitizer C++ runtime.
'lib/clang/*/lib/linux/*profile*', 'lib/clang/*/lib/linux/libclang_rt.asan_cxx-i386.a',
'lib/clang/*/share/msan_blacklist.txt', 'lib/clang/*/lib/linux/libclang_rt.asan_cxx-x86_64.a',
]) 'lib/clang/*/lib/linux/libclang_rt.asan_cxx-x86_64.a.syms',
# Fuzzing instrumentation (-fsanitize=fuzzer-no-link).
'lib/clang/*/lib/linux/libclang_rt.fuzzer_no_main-x86_64.a',
# MemorySanitizer C runtime (pure C won't link with *_cxx).
'lib/clang/*/lib/linux/libclang_rt.msan-x86_64.a',
'lib/clang/*/lib/linux/libclang_rt.msan-x86_64.a.syms',
# MemorySanitizer C++ runtime.
'lib/clang/*/lib/linux/libclang_rt.msan_cxx-x86_64.a',
'lib/clang/*/lib/linux/libclang_rt.msan_cxx-x86_64.a.syms',
# Profile runtime (used by profiler and code coverage).
'lib/clang/*/lib/linux/libclang_rt.profile-i386.a',
'lib/clang/*/lib/linux/libclang_rt.profile-x86_64.a',
# ThreadSanitizer C runtime (pure C won't link with *_cxx).
'lib/clang/*/lib/linux/libclang_rt.tsan-x86_64.a',
'lib/clang/*/lib/linux/libclang_rt.tsan-x86_64.a.syms',
# ThreadSanitizer C++ runtime.
'lib/clang/*/lib/linux/libclang_rt.tsan_cxx-x86_64.a',
'lib/clang/*/lib/linux/libclang_rt.tsan_cxx-x86_64.a.syms',
# UndefinedBehaviorSanitizer C runtime (pure C won't link with *_cxx).
'lib/clang/*/lib/linux/libclang_rt.ubsan_standalone-i386.a',
'lib/clang/*/lib/linux/libclang_rt.ubsan_standalone-x86_64.a',
'lib/clang/*/lib/linux/libclang_rt.ubsan_standalone-x86_64.a.syms',
# UndefinedBehaviorSanitizer C++ runtime.
'lib/clang/*/lib/linux/libclang_rt.ubsan_standalone_cxx-i386.a',
'lib/clang/*/lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a',
'lib/clang/*/lib/linux/libclang_rt.ubsan_standalone_cxx-x86_64.a.syms',
# Blacklist for MemorySanitizer (used on Linux only).
'lib/clang/*/share/msan_blacklist.txt',
])
elif sys.platform == 'win32': elif sys.platform == 'win32':
want.extend(['lib/clang/*/lib/windows/clang_rt.asan*.dll', want.extend([
'lib/clang/*/lib/windows/clang_rt.asan*.lib', # AddressSanitizer C runtime (pure C won't link with *_cxx).
'lib/clang/*/lib/windows/clang_rt.fuzzer_no_main*.lib', 'lib/clang/*/lib/windows/clang_rt.asan-i386.lib',
'lib/clang/*/lib/windows/clang_rt.profile*.lib', 'lib/clang/*/lib/windows/clang_rt.asan-x86_64.lib',
'lib/clang/*/lib/windows/clang_rt.ubsan_standalone*.lib',
]) # AddressSanitizer C++ runtime.
'lib/clang/*/lib/windows/clang_rt.asan_cxx-i386.lib',
'lib/clang/*/lib/windows/clang_rt.asan_cxx-x86_64.lib',
# Thunk for AddressSanitizer needed for static build of a shared lib.
'lib/clang/*/lib/windows/clang_rt.asan_dll_thunk-i386.lib',
'lib/clang/*/lib/windows/clang_rt.asan_dll_thunk-x86_64.lib',
# AddressSanitizer runtime for component build.
'lib/clang/*/lib/windows/clang_rt.asan_dynamic-i386.dll',
'lib/clang/*/lib/windows/clang_rt.asan_dynamic-i386.lib',
'lib/clang/*/lib/windows/clang_rt.asan_dynamic-x86_64.dll',
'lib/clang/*/lib/windows/clang_rt.asan_dynamic-x86_64.lib',
# Thunk for AddressSanitizer for component build of a shared lib.
'lib/clang/*/lib/windows/clang_rt.asan_dynamic_runtime_thunk-i386.lib',
'lib/clang/*/lib/windows/clang_rt.asan_dynamic_runtime_thunk-x86_64.lib',
# Profile runtime (used by profiler and code coverage).
'lib/clang/*/lib/windows/clang_rt.profile-i386.lib',
'lib/clang/*/lib/windows/clang_rt.profile-x86_64.lib',
# UndefinedBehaviorSanitizer C runtime (pure C won't link with *_cxx).
'lib/clang/*/lib/windows/clang_rt.ubsan_standalone-i386.lib',
'lib/clang/*/lib/windows/clang_rt.ubsan_standalone-x86_64.lib',
# UndefinedBehaviorSanitizer C++ runtime.
'lib/clang/*/lib/windows/clang_rt.ubsan_standalone_cxx-i386.lib',
'lib/clang/*/lib/windows/clang_rt.ubsan_standalone_cxx-x86_64.lib',
])
if sys.platform in ('linux2', 'darwin'): if sys.platform in ('linux2', 'darwin'):
# Include libclang_rt.builtins.a for Fuchsia targets. # Include libclang_rt.builtins.a for Fuchsia targets.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment