freebsd-nq/lib/libc/stdlib/Symbol.map
Konstantin Belousov b7c7684ae2 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@fsfe.org>
PR:	215709
Sponsored by:	The FreeBSD Foundation
MFC after:	2 weeks
2017-01-07 16:05:19 +00:00

130 lines
1.3 KiB
Plaintext

/*
* $FreeBSD$
*/
FBSD_1.0 {
_Exit;
a64l;
abort;
abs;
atexit;
__cxa_atexit;
__cxa_finalize;
atof;
atoi;
atol;
atoll;
bsearch;
div;
__isthreaded;
exit;
getenv;
opterr;
optind;
optopt;
optreset;
optarg;
getopt;
getopt_long;
getopt_long_only;
suboptarg;
getsubopt;
grantpt;
ptsname;
unlockpt;
hcreate;
hdestroy;
hsearch;
heapsort;
imaxabs;
imaxdiv;
insque;
l64a;
l64a_r;
labs;
ldiv;
llabs;
lldiv;
lsearch;
lfind;
mergesort;
putenv;
qsort_r;
qsort;
radixsort;
sradixsort;
rand_r;
rand;
srand;
sranddev;
srandom;
srandomdev;
initstate;
setstate;
random;
reallocf;
realpath;
remque;
setenv;
unsetenv;
strfmon;
strtoimax;
strtol;
strtoll;
strtonum;
strtoq;
strtoul;
strtoull;
strtoumax;
strtouq;
system;
tdelete;
tfind;
tsearch;
twalk;
};
FBSD_1.3 {
at_quick_exit;
atof_l;
atoi_l;
atol_l;
atoll_l;
quick_exit;
strtod_l;
strtof_l;
strtoimax_l;
strtol_l;
strtold_l;
strtoll_l;
strtoq_l;
strtoul_l;
strtoull_l;
strtoumax_l;
strtouq_l;
};
FBSD_1.4 {
atexit_b;
bsearch_b;
heapsort_b;
mergesort_b;
qsort_b;
hcreate_r;
hdestroy_r;
hsearch_r;
reallocarray;
};
FBSD_1.5 {
__cxa_thread_atexit;
__cxa_thread_atexit_impl;
};
FBSDprivate_1.0 {
__system;
_system;
__libc_system;
__cxa_thread_call_dtors;
};