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> --- 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" -- 1.7.7.1