[Bug 215709] Use of thread_local produces linking errors [now with gcc]
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sat Jan 7 16:06:14 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215709
--- Comment #6 from commit-hook at freebsd.org ---
A commit references this bug:
Author: kib
Date: Sat Jan 7 16:05:19 UTC 2017
New revision: 311651
URL: https://svnweb.freebsd.org/changeset/base/311651
Log:
Export __cxa_thread_atexit_impl as an alias for __cxa_thread_atexit.
libstdc++ before gcc r244057 expected that libc provided
__cxa_thread_atexit_impl, and libstdc++ implemented
__cxa_thread_atexit, by forwarding the calls to _impl. Mentioned gcc
revision checks for __cxa_thread_atexit in libc and does not provide
the symbol from libstdc++ if found.
This change helps older gcc, in particular, all released versions
which implement thread_local, by consolidating the implementation into
libc. For that versions, if configured with the current libc, the
__cxa_thread_atexit is exported from libstdc++ as a trivial wrapper
around libc::__cxa_thread_atexit_impl.
The __cxa_thread_atexit implementation is put into separate source
file to allow for static linking with older libstdc++.a.
gcc bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78968
Reported by: Hannes Hauswedell <h2+fbsdports at fsfe.org>
PR: 215709
Sponsored by: The FreeBSD Foundation
MFC after: 2 weeks
Changes:
head/lib/libc/include/libc_private.h
head/lib/libc/stdlib/Makefile.inc
head/lib/libc/stdlib/Symbol.map
head/lib/libc/stdlib/cxa_thread_atexit.c
head/lib/libc/stdlib/cxa_thread_atexit_impl.c
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-threads
mailing list