History log of /freebsd-current/lib/libcxxrt/Version.map
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# da77a1b4 16-Apr-2024 Brooks Davis <brooks@FreeBSD.org>

libcxxrt: don't export nonexistant symbols

Remove version entries that we don't build.

Add an arm specific Version.map and for other targets run the files
through sed to handle int vs long in new and delete.

Ideally we'd use the SYMBOL_MAPS functionality to preprocess with cpp,
but it doesn't currently handle C++ symbols so be annoyingly duplicative
for now.

Differential Revision: https://reviews.freebsd.org/D44325


# ecf41062 25-Jan-2024 Dimitry Andric <dim@FreeBSD.org>

Merge libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28ba

Interesting fixes (* were already cherry-picked):
- 03c83f5 add __cxa_init_primary_exception (#23)
* 5d8a158 Fix two bugs in __cxa_end_cleanup()
* b00c6c5 Insert padding in __cxa_dependent_exception
* 45ca8b1 Insert padding in __cxa_exception struct for compatibility
* f2e5509 Fix unlock in two-word version and add missing comment.
- 6229590 Add an option for disabling emergency buffers. (#14)

MFC after: 2 weeks


# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/

# e91d723a 26-Jul-2019 Dimitry Andric <dim@FreeBSD.org>

Merge libcxxrt master f96846efbfd508f66d91fcbbef5dd808947c7f6d.

Interesting fixes:
f96846e Fix std::size_t -> size_t to unbreak build against libc++ 6.0.0
6f4cfa2 Fix the uncaught exception count with rethrowing (PR 239265)
db54f53 Added C++14-specific operator delete (#47)

PR: 239265
MFC after: 3 days


# 4d2a0626 23-Jan-2018 Ed Maste <emaste@FreeBSD.org>

libcxxrt: Move mangled symbols out of extern "C++" in Version.map

r260553 added a number of mangled C++ symbols to Version.map inside of
an existing `extern "C++"` block.

ld.bfd 2.17.50 treats `extern "C++"` permissively and will match both
mangled and demangled symbols against the strings in the version map
block. ld.lld interprets `extern "C++"` strictly, and matches only
demangled symbols.

I believe lld's behaviour is correct. Contemporary versions of ld.bfd
also behave as lld does, so move the mangled symbols out of the
`extern "C++"` block.

PR: 225128, 185663
MFC after: 1 week
Sponsored by: The FreeBSD Foundation

# 8974782e 02-Nov-2017 Alex Richardson <arichardson@FreeBSD.org>

Export std::get_new_handler() from libcxxrt.so

When trying to build world for MIPS64 with clang I was getting
linker errors because of a missing reference to std::get_new_handler().
It turns out std::get_new_handler() was not listed in Version.map so it was
marked as a local symbol in libcxxrt.so.

Reviewed by: theraven, brooks (mentor), emaste
Approved by: trasz
Obtained from: CheriBSD
Differential Revision: https://reviews.freebsd.org/D11925

# e3c42855 22-Feb-2017 Dimitry Andric <dim@FreeBSD.org>

Surround any unmangled C++ names in libcxxrt's version map with 'extern
"C++"', otherwise ld refuses to make the symbols global in the final
library. This causes the __int128-related symbols to go missing when
the library is stripped during installation.

Helpful hints: emaste
MFC after: 2 weeks
X-MFC-With: r314061

# 6fc1c2be 21-Feb-2017 Dimitry Andric <dim@FreeBSD.org>

Add __int128-related symbols to libcxxrt's version map. Put these into
the same CXXABI verions as recent libstdc++.

Note that __int128 types are only available on arches where long long is
128 bit wide.

Noticed by: harti
MFC after: 2 weeks

# b689d926 29-Jun-2016 Ed Maste <emaste@FreeBSD.org>

libcxxrt: correct mangled "typeinfo name" symbols in Version.map

r260553 added missing C++ typinfos to libcxxrt's version script.
It appears that a number of duplicate mangled symbols were added due to
a cut and paste error. Switch the second instances to _ZTS*,
typeinfo name for *.

Found by lld, which produces an error or warning for duplicate symbols.

Reviewed by: dim
Approved by: re (gjb)
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D7011

# bb52ed32 05-Oct-2015 Dimitry Andric <dim@FreeBSD.org>

Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259).
This has also been submitted upstream.

# e350ac5e 23-Jun-2015 Dimitry Andric <dim@FreeBSD.org>

Add __cxa_deleted_virtual to libcxxrt's version map.

This symbol can sometimes be emitted by clang++, and was not yet
exported from libcxxrt. Attempt to be compatible with libsupc++ by
using the same CXXABI_1.3.6 symbol version.

Reported by: yuri@rawbw.com
PR: 200863
Reviewed by: emaste
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D2850

# 726f4cd5 21-Oct-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Add support for __cxa_throw_bad_array_new_length in libcxxrt

It is required for use with newer g++49

Differential Revision: https://reviews.freebsd.org/D982
Reviewed by: theraven
Approved by: theraven
MFC after: 3 weeks

# e23d53c4 11-Jan-2014 David Chisnall <theraven@FreeBSD.org>

Add missing C++11 typeinfos to the libcxxrt version script.

PR: 185663
MFC after: 1 week

# ccf9b636 03-Feb-2013 Dimitry Andric <dim@FreeBSD.org>

Add several missing symbols to libcxxrt's symbol version map, and remove
a few duplicates. This should fix building world with -stdlib=libc++
after r246028.

Submitted by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>
MFC after: 1 week
X-MFC-With: r246028

# 4792733b 28-Jan-2013 David Chisnall <theraven@FreeBSD.org>

Fix some symbol version mismatches between libstdc++ and libsupc++/libcxxrt
that were causing the runtime and STL libraries to see different versions of
various classes and functions when libstdc++ is used as a filter.

Note: This changes the ABI for libcxxrt, but libcxxrt is currently only in
-STABLE for testing and is not used by anything unless explicitly enabled by
the end user. No default compiler configurations use it.

libc++ will need to be recompiled after this change. make buildworld will do
this automatically, but make in lib/libc++ will not necessarily work unless the
new libcxxrt is installed first.

PR: kern/171610, stand/175453
Reviewed by: kib
MFC after: 1 week

# fe132392 11-Jun-2012 David Chisnall <theraven@FreeBSD.org>

Clean up some symbol versions for libsupc++ / libcxxrt.

MFC after: 1 week
Reviewed by: kan

# c725650d 20-Mar-2012 David Chisnall <theraven@FreeBSD.org>

Import new version of libcxxrt. Now works correctly with libobjc2 to implement
the unified exception model for Objective-C++.

Approved by: dim (mentor)


# 1e2a21d8 19-Mar-2012 David Chisnall <theraven@FreeBSD.org>

Add symbol versioning to libcxxrt.

Approved by: dim (mentor)

# d0b2dbfa 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

Remove $FreeBSD$: one-line sh pattern

Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/


# 4d2a0626 23-Jan-2018 Ed Maste <emaste@FreeBSD.org>

libcxxrt: Move mangled symbols out of extern "C++" in Version.map

r260553 added a number of mangled C++ symbols to Version.map inside of
an existing `extern "C++"` block.

ld.bfd 2.17.50 treats `extern "C++"` permissively and will match both
mangled and demangled symbols against the strings in the version map
block. ld.lld interprets `extern "C++"` strictly, and matches only
demangled symbols.

I believe lld's behaviour is correct. Contemporary versions of ld.bfd
also behave as lld does, so move the mangled symbols out of the
`extern "C++"` block.

PR: 225128, 185663
MFC after: 1 week
Sponsored by: The FreeBSD Foundation


# 8974782e 02-Nov-2017 Alex Richardson <arichardson@FreeBSD.org>

Export std::get_new_handler() from libcxxrt.so

When trying to build world for MIPS64 with clang I was getting
linker errors because of a missing reference to std::get_new_handler().
It turns out std::get_new_handler() was not listed in Version.map so it was
marked as a local symbol in libcxxrt.so.

Reviewed by: theraven, brooks (mentor), emaste
Approved by: trasz
Obtained from: CheriBSD
Differential Revision: https://reviews.freebsd.org/D11925


# e3c42855 22-Feb-2017 Dimitry Andric <dim@FreeBSD.org>

Surround any unmangled C++ names in libcxxrt's version map with 'extern
"C++"', otherwise ld refuses to make the symbols global in the final
library. This causes the __int128-related symbols to go missing when
the library is stripped during installation.

Helpful hints: emaste
MFC after: 2 weeks
X-MFC-With: r314061


# 6fc1c2be 21-Feb-2017 Dimitry Andric <dim@FreeBSD.org>

Add __int128-related symbols to libcxxrt's version map. Put these into
the same CXXABI verions as recent libstdc++.

Note that __int128 types are only available on arches where long long is
128 bit wide.

Noticed by: harti
MFC after: 2 weeks


# b689d926 29-Jun-2016 Ed Maste <emaste@FreeBSD.org>

libcxxrt: correct mangled "typeinfo name" symbols in Version.map

r260553 added missing C++ typinfos to libcxxrt's version script.
It appears that a number of duplicate mangled symbols were added due to
a cut and paste error. Switch the second instances to _ZTS*,
typeinfo name for *.

Found by lld, which produces an error or warning for duplicate symbols.

Reviewed by: dim
Approved by: re (gjb)
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D7011


# bb52ed32 05-Oct-2015 Dimitry Andric <dim@FreeBSD.org>

Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259).
This has also been submitted upstream.


# e350ac5e 23-Jun-2015 Dimitry Andric <dim@FreeBSD.org>

Add __cxa_deleted_virtual to libcxxrt's version map.

This symbol can sometimes be emitted by clang++, and was not yet
exported from libcxxrt. Attempt to be compatible with libsupc++ by
using the same CXXABI_1.3.6 symbol version.

Reported by: yuri@rawbw.com
PR: 200863
Reviewed by: emaste
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D2850


# 726f4cd5 21-Oct-2014 Baptiste Daroussin <bapt@FreeBSD.org>

Add support for __cxa_throw_bad_array_new_length in libcxxrt

It is required for use with newer g++49

Differential Revision: https://reviews.freebsd.org/D982
Reviewed by: theraven
Approved by: theraven
MFC after: 3 weeks


# e23d53c4 11-Jan-2014 David Chisnall <theraven@FreeBSD.org>

Add missing C++11 typeinfos to the libcxxrt version script.

PR: 185663
MFC after: 1 week


# ccf9b636 03-Feb-2013 Dimitry Andric <dim@FreeBSD.org>

Add several missing symbols to libcxxrt's symbol version map, and remove
a few duplicates. This should fix building world with -stdlib=libc++
after r246028.

Submitted by: Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>
MFC after: 1 week
X-MFC-With: r246028


# 4792733b 28-Jan-2013 David Chisnall <theraven@FreeBSD.org>

Fix some symbol version mismatches between libstdc++ and libsupc++/libcxxrt
that were causing the runtime and STL libraries to see different versions of
various classes and functions when libstdc++ is used as a filter.

Note: This changes the ABI for libcxxrt, but libcxxrt is currently only in
-STABLE for testing and is not used by anything unless explicitly enabled by
the end user. No default compiler configurations use it.

libc++ will need to be recompiled after this change. make buildworld will do
this automatically, but make in lib/libc++ will not necessarily work unless the
new libcxxrt is installed first.

PR: kern/171610, stand/175453
Reviewed by: kib
MFC after: 1 week


# fe132392 11-Jun-2012 David Chisnall <theraven@FreeBSD.org>

Clean up some symbol versions for libsupc++ / libcxxrt.

MFC after: 1 week
Reviewed by: kan


# 1e2a21d8 19-Mar-2012 David Chisnall <theraven@FreeBSD.org>

Add symbol versioning to libcxxrt.

Approved by: dim (mentor)