Commit d5842236 authored by Ondřej Surý's avatar Ondřej Surý Committed by Witold Krecicki
Browse files

Enforce usage -zrelax=transtls when GNU C Compiler is used on Solaris

When GNU C Compiler is used on Solaris (11), the Thread Local Storage
is completely broken.  The behaviour doesn't manifest when GNU ld is
used.  Thus, we need to enforce usage of GNU ld when GNU C Compiler is
the compiler of choice.

For more background for this change, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90912
parent 95a8e42e
Pipeline #16493 passed with stages
in 24 minutes and 48 seconds
......@@ -13405,6 +13405,23 @@ fi
#
# Using Solaris linker with gcc on Solaris breaks Thread Local Storage
#
case $host in #(
*-solaris*) :
if test "$GCC" = "yes"; then :
LDFLAGS="$LDFLAGS -zrelax=transtls"
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: When using GNU C Compiler on Solaris, -zrelax=transtls linker flag is used to fix bug in Thread Local Storage" >&5
$as_echo "$as_me: WARNING: When using GNU C Compiler on Solaris, -zrelax=transtls linker flag is used to fix bug in Thread Local Storage" >&2;}
fi
;; #(
*) :
;;
esac
#
# CCNOOPT defaults to -O0 on gcc and disables optimization when is last
#
......
......@@ -326,6 +326,17 @@ esac
AC_PROG_CC
AC_PROG_CC_C99
#
# Using Solaris linker with gcc on Solaris breaks Thread Local Storage
#
AS_CASE([$host],
[*-solaris*],[
AS_IF([test "$GCC" = "yes"],
[LDFLAGS="$LDFLAGS -zrelax=transtls"
AC_MSG_WARN([When using GNU C Compiler on Solaris, -zrelax=transtls linker flag is used to fix bug in Thread Local Storage])
])
])
#
# CCNOOPT defaults to -O0 on gcc and disables optimization when is last
#
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment