Use native TLS on all architectures except aarch64

Update mingw-w64 to the latest version, where native TLS works
with LLVM/LLD.
This commit is contained in:
Martin Storsjö committed 2017-12-04 14:31:42 +02:00
1 parent edcf22bec4
commit 0ce2f55a89
2 files changed
+13 -8

No files matched your search

+1 -1
View File
@@ -46,7 +46,7 @@ RUN cd llvm && mkdir build && cd build && cmake \
RUN git clone git://git.code.sf.net/p/mingw-w64/mingw-w64 && \
cd mingw-w64 && \
git checkout 124a62c7cc32909b7c6c57e901579de48e3a35d8
git checkout f25c9a89ed2b2d98bc2658cfa4dc97a2c837c725
ENV TOOLCHAIN_PREFIX=/build/prefix
+12 -7
View File
@@ -9,16 +9,21 @@ i686)
# Dwarf is the default for i686, but currently there's an issue
# in libunwind with unwinding clang generated dwarf opcodes on 32 bit
# x86, pending resolution at https://reviews.llvm.org/D38680.
EH_FLAG=-fsjlj-exceptions
;;
armv7|aarch64)
# Dwarf is the default for these targets.
EH_FLAG=
ARCH_FLAGS=-fsjlj-exceptions
;;
x86_64)
# Explicitly request dwarf on x86_64; SEH is the default there but
# libcxxabi lacks support for it.
EH_FLAG=-fdwarf-exceptions
ARCH_FLAGS=-fdwarf-exceptions
;;
armv7)
# Dwarf is the default here.
ARCH_FLAGS=
;;
aarch64)
# Dwarf is the default on aarch64; enable emulated TLS since native
# TLS isn't implemented yet.
ARCH_FLAGS=-femulated-tls
;;
esac
$DIR/$EXE -target $TARGET -rtlib=compiler-rt -stdlib=libc++ -fuse-ld=lld $EH_FLAG -Qunused-arguments -femulated-tls "$@"
$DIR/$EXE -target $TARGET -rtlib=compiler-rt -stdlib=libc++ -fuse-ld=lld $ARCH_FLAGS -Qunused-arguments "$@"