forked from OSchip/llvm-project
libcxx: Fix libcxx tests on aarch64 with libunwind
Some tests uses 'long double' to/from conversions and for some targets they are provided by compiler runtime (either compiler-rt or libgcc). However when building libcxx with linunwinder current test configuration at target_info.py do not include the required libraries, as: not llvm_unwinder: "-lc++" "-lm" "-lgcc_s" "-lgcc" "-lpthread" "-lc" "-lgcc_s" "-lgcc" llvm_unwinder "-lc++" "-lm" "-lpthread" "-lc" "-lunwind" "-ldl" This causes some tests build issues with missing symbols on aarch64, for instance, where 'long double' is a binary float with 128-bits with mostly of internal operations being provided by software routines. This patch changes how to define the default linker flags with libunwinder by adding libgcc regardless. I checked and aarch64 and x86_64 with libcxx and libunwind (with and without LIBCXXABI_USE_LLVM_UNWINDER). llvm-svn: 279552
This commit is contained in:
parent
2a1d15fad7
commit
9704d235d0
|
@ -180,7 +180,8 @@ class LinuxLocalTI(DefaultTargetInfo):
|
|||
if llvm_unwinder:
|
||||
flags += ['-lunwind', '-ldl']
|
||||
else:
|
||||
flags += ['-lgcc_s', '-lgcc']
|
||||
flags += ['-lgcc_s']
|
||||
flags += ['-lgcc']
|
||||
use_libatomic = self.full_config.get_lit_bool('use_libatomic', False)
|
||||
if use_libatomic:
|
||||
flags += ['-latomic']
|
||||
|
|
Loading…
Reference in New Issue