libcxx: Fix libcxx tests on aarch64 with libunwind
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 23 Aug 2016 19:25:12 +0000 (19:25 +0000)
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>
Tue, 23 Aug 2016 19:25:12 +0000 (19:25 +0000)
commit9704d235d0f944bd217fcc00200c47e23d884cdb
tree53b2889ed30648262e7b2375541d5ea1c673f4b1
parent2a1d15fad71ae98dfe494efd760ce21ff5c1b3c1
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