[PATCH] [CMake] Fix PR23539: Don't reference C++ ABI symbols prior to Mac OS 10.9.
Hans Wennborg
hans at chromium.org
Wed Jun 24 15:58:16 PDT 2015
Apologies for the delay. I tried this out on Mac, building like this:
$ cmake -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS=-stdlib=libc++ -DCMAKE_CXX_FLAGS=-stdlib=libc++ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.8 ..
$ ninja lib/clang/3.7.0/lib/darwin/libclang_rt.asan_osx_dynamic.dylib
The diff of that .dylib before and after your patch looks like this:
$ diff -u <(nm /tmp/before.dylib | sed 's/^[0-9a-f ]*//') <(nm /tmp/after.dylib | sed 's/^[0-9a-f ]*//')
--- /dev/fd/63 2015-06-24 15:54:26.000000000 -0700
+++ /dev/fd/62 2015-06-24 15:54:26.000000000 -0700
@@ -29,10 +29,8 @@
__ZL15dump_once_guard
__ZL15suppression_ctx
t __ZL15unpoison_passwdPvPN11__sanitizer18__sanitizer_passwdE
-t __ZL16HandleCFIBadTypePN7__ubsan14CFIBadTypeDataEmNS_13ReportOptionsE
__ZL16coverage_counter
__ZL16coverage_enabled
-t __ZL16findBaseAtOffsetPKN10__cxxabiv117__class_type_infoEl
t __ZL16handleNonNullArgPN7__ubsan14NonNullArgDataENS_13ReportOptionsE
__ZL16ioctl_table_size
t __ZL17StrtolFixAndCheckPvPKcPPcS2_i
@@ -147,7 +145,6 @@
s __ZL20substitution_waitpid
s __ZL20substitution_wordexp
t __ZL21handleOutOfBoundsImplPN7__ubsan15OutOfBoundsDataEmNS_13ReportOptionsE
-t __ZL21isDerivedFromAtOffsetPKN10__cxxabiv117__class_type_infoES2_l
s __ZL21substitution__longjmp
s __ZL21substitution_asprintf
s __ZL21substitution_endgrent
@@ -230,7 +227,6 @@
t __ZL25handleVLABoundNotPositivePN7__ubsan12VLABoundDataEmNS_13ReportOptionsE
s __ZL25substitution___cxa_atexit
s __ZL25substitution_pthread_join
-t __ZL26HandleDynamicTypeCacheMissPN7__ubsan24DynamicTypeCacheMissDataEmmNS_13ReportOptionsE
t __ZL26handleFunctionTypeMismatchPN7__ubsan24FunctionTypeMismatchDataEmNS_13ReportOptionsE
t __ZL26handleShiftOutOfBoundsImplPN7__ubsan20ShiftOutOfBoundsDataEmmNS_13ReportOptionsE
s __ZL26substitution_ether_hostton
@@ -1104,15 +1100,12 @@
__ZN7__ubsan14TypeCheckKindsE
t __ZN7__ubsan15InitializeFlagsEv
t __ZN7__ubsan16InitAsStandaloneEv
-t __ZN7__ubsan16checkDynamicTypeEPvS0_m
t __ZN7__ubsan18RegisterUbsanFlagsEPN11__sanitizer10FlagParserEPNS_5FlagsE
t __ZN7__ubsan21IsVptrCheckSuppressedEPKc
t __ZN7__ubsan21getSymbolizedLocationEm
t __ZN7__ubsan22InitializeSuppressionsEv
t __ZN7__ubsan27InitAsStandaloneIfNecessaryEv
t __ZN7__ubsan28MaybeCallUbsanDefaultOptionsEv
-t __ZN7__ubsan28getDynamicTypeInfoFromObjectEPv
-t __ZN7__ubsan28getDynamicTypeInfoFromVtableEPv
t __ZN7__ubsan4DiagD1Ev
t __ZN7__ubsan4DiagD2Ev
t __ZN7__ubsan4DiaglsERKNS_14TypeDescriptorE
@@ -1142,13 +1135,9 @@
t __ZNK7__ubsan5Value12getUIntValueEv
t __ZNK7__ubsan5Value13getFloatValueEv
t __ZNK7__ubsan5Value19getPositiveIntValueEv
-U __ZTIN10__cxxabiv117__class_type_infoE
-U __ZTIN10__cxxabiv120__si_class_type_infoE
-U __ZTIN10__cxxabiv121__vmi_class_type_infoE
__ZTIN11__sanitizer11FlagHandlerIPKcEE
__ZTIN11__sanitizer11FlagHandlerIbEE
__ZTIN11__sanitizer15FlagHandlerBaseE
-U __ZTISt9type_info
s __ZTSN11__sanitizer11FlagHandlerIPKcEE
s __ZTSN11__sanitizer11FlagHandlerIbEE
s __ZTSN11__sanitizer15FlagHandlerBaseE
@@ -1172,9 +1161,7 @@
s __ZTVN11__sanitizer2DDE
s __ZTVN6__asan17AsanThreadContextE
__ZZ23__asan_handle_no_returnE16reported_warning
-s __ZZL16HandleCFIBadTypePN7__ubsan14CFIBadTypeDataEmNS_13ReportOptionsEE14TypeCheckKinds
__ZZL18MlockIsUnsupportedvE7printed
-__ZZL27getTypeCacheHashTableBucketmE21__ubsan_vptr_hash_set
__ZZL28InitializeCommonInterceptorsvE12metadata_mem
__ZZN11__sanitizer17GetPageSizeCachedEvE8PageSize
__ZZN11__sanitizer9MmapOrDieEmPKcE15recursion_count
@@ -1339,7 +1326,6 @@
t ___destroy_helper_block_20
t ___destroy_helper_block_23
t ___destroy_helper_block_26
-U ___dynamic_cast
U ___error
T ___lsan_disable
T ___lsan_do_leak_check
@@ -1392,12 +1378,8 @@
T ___ubsan_handle_add_overflow
T ___ubsan_handle_add_overflow_abort
T ___ubsan_handle_builtin_unreachable
-T ___ubsan_handle_cfi_bad_type
-T ___ubsan_handle_cfi_bad_type_abort
T ___ubsan_handle_divrem_overflow
T ___ubsan_handle_divrem_overflow_abort
-T ___ubsan_handle_dynamic_type_cache_miss
-T ___ubsan_handle_dynamic_type_cache_miss_abort
T ___ubsan_handle_float_cast_overflow
T ___ubsan_handle_float_cast_overflow_abort
T ___ubsan_handle_function_type_mismatch
@@ -1423,7 +1405,6 @@
T ___ubsan_handle_type_mismatch_abort
T ___ubsan_handle_vla_bound_not_positive
T ___ubsan_handle_vla_bound_not_positive_abort
-S ___ubsan_vptr_type_cache
t ___wrap_dispatch_after_block_invoke
t ___wrap_dispatch_async_block_invoke
t ___wrap_dispatch_group_async_block_invoke
>From what I can tell, that looks reasonable. In particular, __ZTISt9type_info is gone, which was the symbol causing our original link error.
lgtm
http://reviews.llvm.org/D10621
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list