This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Fix libgomp crash without TLS (PR42616)


> Now, I wonder on which OS and why does config/tls.m4 CHECK_GCC_TLS
> actually fail?  Can you figure that out?
>

On Android check passes with --disable-tls (standard while building
gcc for Android as TLS is not supported in bionic) and fails with
--enable-tls (i686-linux-android/libgomp/conftest.c:32: undefined
reference to `___tls_get_addr'). So, HAVE_TLS is not defined in both
cases.

> If we get rid of HAVE_TLS code altogether, we might lose support of
> some very old OSes, e.g. some Linux distros with a recent gcc and binutils
> (so that emutls isn't used), but very old glibc (that doesn't support
> TLS or supports it incorrectly, think of pre-2002 glibc).  So, if we get
> rid of !HAVE_TLS code in libgomp, it would be nice if config/tls.m4 detected
> it properly and we'd just fail at configure time.

How can we check this in config/tls.m4? Can we just combine tests on
TLS and emutls? E.g. check whether HAVE_TLS and USE_EMUTLS are both
defined.

> And if we don't, just make sure that on Android, Darwin and/or M$Win (or
> whatever other OS you had in mind which does support pthreads, but doesn't
> support native TLS) find out why HAVE_AS_TLS is not defined (guess
> config.log should explain that).

HAVE_AS_TLS is also not defined for Android as it depends on --enable-tls.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]