On 11/23/2011 03:24 AM, Avi Kivity wrote:
Some toolchains don't support pie properly when tls variables are
in use. Disallow pie when such toolchains are detected.
Signed-off-by: Avi Kivity<a...@redhat.com>
Applied. Thanks.
Regards,
Anthony Liguori
---
v3: only check __thread on Linux, where we require it, and where the
toolchain fails
v2: give tls_var a type; avoids invisible warning
configure | 12 +++++++++++-
1 files changed, 11 insertions(+), 1 deletions(-)
diff --git a/configure b/configure
index 75e1f10..1a2c55f 100755
--- a/configure
+++ b/configure
@@ -1120,7 +1120,17 @@ fi
if test "$pie" != "no" ; then
cat> $TMPC<< EOF
-int main(void) { return 0; }
+
+#ifdef __linux__
+# define THREAD __thread
+#else
+# define THREAD
+#endif
+
+static THREAD int tls_var;
+
+int main(void) { return tls_var; }
+
EOF
if compile_prog "-fPIE -DPIE" "-pie"; then
QEMU_CFLAGS="-fPIE -DPIE $QEMU_CFLAGS"