<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/lib/libcxxrt, branch releng/11.3</title>
<subtitle>FreeBSD source tree</subtitle>
<id>https://cgit-dev.freebsd.org/src/atom?h=releng%2F11.3</id>
<link rel='self' href='https://cgit-dev.freebsd.org/src/atom?h=releng%2F11.3'/>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/'/>
<updated>2018-01-30T01:13:06Z</updated>
<entry>
<title>MFC r328305: libcxxrt: Move mangled symbols out of extern "C++" in Version.map</title>
<updated>2018-01-30T01:13:06Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2018-01-30T01:13:06Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=169cb0bc6cfb623da4f1780ea64f64dfc28d0ab7'/>
<id>urn:sha1:169cb0bc6cfb623da4f1780ea64f64dfc28d0ab7</id>
<content type='text'>
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
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>MFC r314061:</title>
<updated>2017-03-08T07:58:29Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2017-03-08T07:58:29Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=e07368800408542c50b544df9123069e5be8825c'/>
<id>urn:sha1:e07368800408542c50b544df9123069e5be8825c</id>
<content type='text'>
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 r314104:

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
</content>
</entry>
<entry>
<title>MFC r312452-r312512:</title>
<updated>2017-02-10T07:32:40Z</updated>
<author>
<name>Enji Cooper</name>
<email>ngie@FreeBSD.org</email>
</author>
<published>2017-02-10T07:32:40Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=83c41faaa1b4d9711681d8c93540ab9467b61020'/>
<id>urn:sha1:83c41faaa1b4d9711681d8c93540ab9467b61020</id>
<content type='text'>
r312452-r312512:

- Use SRCTOP-relative paths to other directories instead of .CURDIR-relative ones

  This simplifies pathing in make/displayed output

- Use .CURDIR:H instead of .CURDIR to simplify pathing in output, etc
</content>
</entry>
<entry>
<title>libcxxrt: correct mangled "typeinfo name" symbols in Version.map</title>
<updated>2016-06-29T11:48:42Z</updated>
<author>
<name>Ed Maste</name>
<email>emaste@FreeBSD.org</email>
</author>
<published>2016-06-29T11:48:42Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=b689d9268fa1fd32e413358cb4f6da007e0d7a6e'/>
<id>urn:sha1:b689d9268fa1fd32e413358cb4f6da007e0d7a6e</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>GCC External: Revert r300886, r300904, r300917, r300918</title>
<updated>2016-05-29T06:20:15Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2016-05-29T06:20:15Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=f661dbee816b5fc7b1b9f6d4486ada609921ad59'/>
<id>urn:sha1:f661dbee816b5fc7b1b9f6d4486ada609921ad59</id>
<content type='text'>
The fix in r300873 is mostly enough.  A fix for lib32 will be
committed.separately.
</content>
</entry>
<entry>
<title>Move external GCC compiler hacks to bsd.sys.mk.</title>
<updated>2016-05-27T23:03:44Z</updated>
<author>
<name>Bryan Drewery</name>
<email>bdrewery@FreeBSD.org</email>
</author>
<published>2016-05-27T23:03:44Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=ce00342bb2a88f771068f24162bbf820f01e6bf0'/>
<id>urn:sha1:ce00342bb2a88f771068f24162bbf820f01e6bf0</id>
<content type='text'>
This allows respecting -nostdinc, -nostdinc++ and -nostdlib before
making the decision to add in -isystem, etc.  The -isystem flags
are problematic for building lib/libc++ and lib/libcxxrt which wants
to only use its own headers.

More information the need of these flags can be found at
https://gcc.gnu.org/ml/gcc/2016-03/msg00219.html

This also reverts r300873.

Sponsored by:	EMC / Isilon Storage Division
</content>
</entry>
<entry>
<title>After r300770, for libc++ and libcxxrt, use -isystem instead of -I.</title>
<updated>2016-05-27T20:45:32Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2016-05-27T20:45:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=09210a281cf7155a1667450b6a9f8da37eeaed95'/>
<id>urn:sha1:09210a281cf7155a1667450b6a9f8da37eeaed95</id>
<content type='text'>
This should fix builds with external gcc toolchains from ports, which
also use -isystem to work around problems with gcc's --sysroot
implementation.  Thanks to Bryan Drewery for this workaround.
</content>
</entry>
<entry>
<title>MFH</title>
<updated>2016-04-04T23:55:32Z</updated>
<author>
<name>Glen Barber</name>
<email>gjb@FreeBSD.org</email>
</author>
<published>2016-04-04T23:55:32Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=d60840138f6292c1ceeb177ebe797eca0b2749da'/>
<id>urn:sha1:d60840138f6292c1ceeb177ebe797eca0b2749da</id>
<content type='text'>
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
<entry>
<title>Compile libcxxrt as C++11, since it is only really used in combination</title>
<updated>2016-03-27T00:37:54Z</updated>
<author>
<name>Dimitry Andric</name>
<email>dim@FreeBSD.org</email>
</author>
<published>2016-03-27T00:37:54Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=35b9ea3d0912237f240483c38ad33c2e25cd0e50'/>
<id>urn:sha1:35b9ea3d0912237f240483c38ad33c2e25cd0e50</id>
<content type='text'>
with libc++, which is also C++11.  Also change one _Static_assert (which
is really C11) back into static_assert, like upstream.

This should help when compiling libcxxrt with newer versions of gcc,
which refuse to recognize any form of static assertions, if not
compiling for C++11 or higher.

While here, add -nostdinc++ to CFLAGS, to prevent picking up any C++
headers outside the source tree.
</content>
</entry>
<entry>
<title>MFH</title>
<updated>2016-03-02T16:14:46Z</updated>
<author>
<name>Glen Barber</name>
<email>gjb@FreeBSD.org</email>
</author>
<published>2016-03-02T16:14:46Z</published>
<link rel='alternate' type='text/html' href='https://cgit-dev.freebsd.org/src/commit/?id=52259a98adba7622f236db46a330e61df0c84fb1'/>
<id>urn:sha1:52259a98adba7622f236db46a330e61df0c84fb1</id>
<content type='text'>
Sponsored by:	The FreeBSD Foundation
</content>
</entry>
</feed>
