From 9704d235d0f944bd217fcc00200c47e23d884cdb Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 23 Aug 2016 19:25:12 +0000 Subject: [PATCH] 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 --- libcxx/test/libcxx/test/target_info.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libcxx/test/libcxx/test/target_info.py b/libcxx/test/libcxx/test/target_info.py index a743595..a66d33e 100644 --- a/libcxx/test/libcxx/test/target_info.py +++ b/libcxx/test/libcxx/test/target_info.py @@ -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'] -- 2.7.4