aboutsummaryrefslogtreecommitdiff
path: root/lib/libcxxrt
Commit message (Collapse)AuthorAgeFilesLines
* libcxxrt: allow build with gcc13 and --no-undefined-versionBrooks Davis2024-05-171-0/+10
| | | | | | | | | | GCC 13 supports _Float16 and __int128 on fewer architectures than clang and thus libcxxrt compiled with gcc13 is sometimes missing related symbols. Hack around this by explicitly appending --undefined-version to LDFLAGS in problematic cases. Reviewed by: theraven, dim Differential Revision: https://reviews.freebsd.org/D45233
* libcxxrt: align more with libc/MakefileBrooks Davis2024-04-221-2/+2
| | | | | | Use src.opts.mk instead of bsd.own.mk and define PACKAGE first. Fixes: da77a1b4f0dff libcxxrt: don't export nonexistant symbols
* libcxxrt: define SHLIBDIR before including bsd.own.mkDimitry Andric2024-04-221-1/+2
| | | | | | | | | | Otherwise bsd.own.mk overrides it, causing libcxxrt.so.1 to be erroneously installed into /usr/lib. Also add an ObsoleteFiles.inc entry, for removing the bad copy. Reported by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net> Fixes: da77a1b4f0df
* libcxxrt: don't export nonexistant symbolsBrooks Davis2024-04-163-43/+384
| | | | | | | | | | | | | 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
* Merge libcxxrt master 03c83f5a57be8c5b1a29a68de5638744f17d28baDimitry Andric2024-01-251-0/+4
| | | | | | | | | | | | 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
* Remove $FreeBSD$: one-line sh patternWarner Losh2023-08-164-4/+0
| | | | Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
* Sort SRCS in libcxxrt's Makefile, and use += to list sourcesDimitry Andric2022-01-221-9/+9
| | | | | | No functional change intended. MFC after: 3 days
* Only set WARNS if not definedKyle Evans2020-09-111-1/+1
| | | | | | | | | | | | | This would allow interested parties to do experimental runs with an environment set appropriately to raise all the warnings throughout the build; e.g. env WARNS=6 NO_WERROR=yes buildworld. Not currently touching the numerous instances in ^/tools. MFC after: 1 week Notes: svn path=/head/; revision=365631
* Revert r353140: Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it aroundKyle Evans2020-01-141-1/+0
| | | | | | | | | arichardson has an actual fix for the same issue that this was working around; given that we don't build with llvm today, go ahead and revert the workaround in advance. Notes: svn path=/head/; revision=356735
* Update Makefile.depend filesSimon J. Gerraty2019-12-111-1/+0
| | | | | | | | | | | | | Update a bunch of Makefile.depend files as a result of adding Makefile.depend.options files Reviewed by: bdrewery MFC after: 1 week Sponsored by: Juniper Networks Differential Revision: https://reviews.freebsd.org/D22494 Notes: svn path=/head/; revision=355617
* Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it aroundKyle Evans2019-10-061-0/+1
| | | | | | | | | | | | Diff partially stolen from CheriBSD; these bits need -Wl,-z,notext in order to build in an LLVM world. They are needed for all flavors/sizes of MIPS. This will eventually get fixed in LLVM, but it's unclear when. Reported by: arichardson, emaste Differential Revision: https://reviews.freebsd.org/D21696 Notes: svn path=/head/; revision=353140
* Merge libcxxrt master f96846efbfd508f66d91fcbbef5dd808947c7f6d.Dimitry Andric2019-07-262-1/+5
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=350360
* Rework CXXSTD setting via r345708Enji Cooper2019-04-221-1/+1
| | | | | | | | | | | | | | | | | | This change allows the user to once again override the C++ standard, restoring high-level pre-r345708 behavior. This also unbreaks building lib/ofed/libibnetdisc/Makefile with a non-C++11 capable compiler, e.g., g++ 4.2.1, as the library supported being built with older C++ standards. MFC after: 2 weeks MFC with: r345708 Reviewed by: emaste Reported by: jbeich Differential Revision: https://reviews.freebsd.org/D19895 (as part of a larger change) Notes: svn path=/head/; revision=346574
* Standardize `-std=c++* as `CXXSTD`Enji Cooper2019-03-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CXXSTD was added as the C++ analogue to CSTD. CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`, otherwise for older versions of g++. This change standardizes the CXXSTD variable, originally added to googletest.test.inc.mk as part of r345203. As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`. Notes: This value is not sanity checked in bsd.sys.mk, however, given the two most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is likely to work with both toolchains. This method will be refined in the future to support more variants of C++, as not all versions of clang++ and g++ (for instance) support C++14, C++17, etc. Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD. Example: Before this commit: ``` CXXFLAGS+= -std=c++14 ``` After this commit: ``` CXXSTD= c++14 ``` Reviewed by: asomers Approved by: emaste (mentor) MFC after: 1 month MFC with: r345203, r345704, r345705 Relnotes: yes Tested with: make tinderbox Differential Revision: https://reviews.freebsd.org/D19732 Notes: svn path=/head/; revision=345708
* Revert r345706: the third time will be the charmEnji Cooper2019-03-291-1/+3
| | | | | | | | | | | | | | | | When a review is closed via Phabricator it updates the patch attached to the review. I downloaded the raw patch from Phabricator, applied it, and repeated my mistake from r345704 by accident mixing content from D19732 and D19738. For my own personal sanity, I will try not to mix reviews like this in the future. MFC after: 1 month MFC with: r345706 Approved by: emaste (mentor, implicit) Notes: svn path=/head/; revision=345707
* Standardize `-std=c++* as `CXXSTD`Enji Cooper2019-03-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CXXSTD was added as the C++ analogue to CSTD. CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`, otherwise for older versions of g++. This change standardizes the CXXSTD variable, originally added to googletest.test.inc.mk as part of r345203. As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`. Notes: This value is not sanity checked in bsd.sys.mk, however, given the two most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is likely to work with both toolchains. This method will be refined in the future to support more variants of C++, as not all versions of clang++ and g++ (for instance) support C++14, C++17, etc. Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD. Example: Before this commit: ``` CXXFLAGS+= -std=c++14 ``` After this commit: ``` CXXSTD= c++14 ``` Reviewed by: asomers Approved by: emaste (mentor) MFC after: 1 month MFC with: r345203, r345704, r345705 Relnotes: yes Tested with: make tinderbox Differential Revision: https://reviews.freebsd.org/D19732 Notes: svn path=/head/; revision=345706
* Revert r345704Enji Cooper2019-03-291-1/+3
| | | | | | | | | | | | I accidentally committed code from two reviews. I will reintroduce the code to bsd.progs.mk as part of a separate commit from r345704. Approved by: emaste (mentor, implicit) MFC after: 2 months MFC with: r345704 Notes: svn path=/head/; revision=345705
* CXXSTD is the C++ analogue to CSTD.Enji Cooper2019-03-291-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CXXSTD defaults to `-std=c++11` with supporting compilers; `-std=gnu++98`, otherwise for older versions of g++. This change standardizes the CXXSTD variable, originally added to googletest.test.inc.mk as part of r345203. As part of this effort, convert all `CXXFLAGS+= -std=*` calls to use `CXXSTD`. Notes: This value is not sanity checked in bsd.sys.mk, however, given the two most used C++ compilers on FreeBSD (clang++ and g++) support both modes, it is likely to work with both toolchains. This method will be refined in the future to support more variants of C++, as not all versions of clang++ and g++ (for instance) support C++14, C++17, etc. Any manual appending of `-std=*` to `CXXFLAGS` should be replaced with CXXSTD. Example: Before this commit: ``` CXXFLAGS+= -std=c++14 ``` After this commit: ``` CXXSTD= c++14 ``` Reviewed by: asomers Approved by: emaste (mentor) MFC after: 1 month Relnotes: yes Differential Revision: https://reviews.freebsd.org/D19732 Notes: svn path=/head/; revision=345704
* libcxxrt: Move mangled symbols out of extern "C++" in Version.mapEd Maste2018-01-231-28/+28
| | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=328305
* Export std::get_new_handler() from libcxxrt.soAlex Richardson2017-11-031-1/+7
| | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=325356
* DIRDEPS_BUILD: Update dependencies.Bryan Drewery2017-10-311-1/+0
| | | | | | | Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=325188
* Surround any unmangled C++ names in libcxxrt's version map with 'externDimitry Andric2017-02-221-12/+16
| | | | | | | | | | | | | "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 Notes: svn path=/head/; revision=314104
* Add __int128-related symbols to libcxxrt's version map. Put these intoDimitry Andric2017-02-211-2/+19
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=314061
* Use SRCTOP-relative paths to other directories instead of .CURDIR-relative onesEnji Cooper2017-01-201-1/+1
| | | | | | | | | | This simplifies pathing in make/displayed output MFC after: 3 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=312504
* libcxxrt: correct mangled "typeinfo name" symbols in Version.mapEd Maste2016-06-291-8/+8
| | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=302278
* GCC External: Revert r300886, r300904, r300917, r300918Bryan Drewery2016-05-291-1/+1
| | | | | | | | The fix in r300873 is mostly enough. A fix for lib32 will be committed.separately. Notes: svn path=/head/; revision=300943
* Move external GCC compiler hacks to bsd.sys.mk.Bryan Drewery2016-05-271-1/+1
| | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=300886
* After r300770, for libc++ and libcxxrt, use -isystem instead of -I.Dimitry Andric2016-05-271-1/+1
| | | | | | | | | 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. Notes: svn path=/head/; revision=300873
* MFHGlen Barber2016-04-041-1/+4
|\ | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=297567
| * Compile libcxxrt as C++11, since it is only really used in combinationDimitry Andric2016-03-271-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Notes: svn path=/head/; revision=297299
* | MFHGlen Barber2016-03-021-1/+0
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=296318
| * DIRDEPS_BUILD: Update dependencies.Bryan Drewery2016-02-241-1/+0
| | | | | | | | | | | | | | Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=295978
* | Remove libc, librtld_db, libthr packages, and further increaseGlen Barber2016-02-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | the constraints on what needs to be installed in a specific to maintain consistency during upgrades. Create a new clibs package containing libraries that are needed as a bare minimum for consistency. With much help and input from: kib Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295337
* | First pass through library packaging.Glen Barber2016-02-041-0/+1
|/ | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/release-pkg/; revision=295278
* META MODE: Prefer INSTALL=tools/install.sh to lessen the need for xinstall.host.Bryan Drewery2015-11-251-1/+0
| | | | | | | | | | | This both avoids some dependencies on xinstall.host and allows bootstrapping on older releases to work due to lack of at least 'install -l' support. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=291307
* Add std::uncaught_exceptions() to libcxxrt (C++17, see N4152 and N4259).Dimitry Andric2015-10-051-0/+6
| | | | | | | This has also been submitted upstream. Notes: svn path=/projects/clang370-import/; revision=288830
* META_MODE: Remove DEP_RELDIR from Makefile.depend files.Bryan Drewery2015-09-251-2/+0
| | | | | | | | | This has not been needed since r284171 in projects/bmake. Sponsored by: EMC / Isilon Storage Division Notes: svn path=/head/; revision=288226
* Add __cxa_deleted_virtual to libcxxrt's version map.Dimitry Andric2015-06-231-1/+5
| | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=284732
* Revert r284417 it is not necessary anymoreBaptiste Daroussin2015-06-151-1/+1
| | | | Notes: svn path=/head/; revision=284421
* Enforce overwritting SHLIBDIRBaptiste Daroussin2015-06-151-1/+1
| | | | | | | | | | | | Since METAMODE has been added, sys.mk loads bsd.mkopt.mk which ends load loading bsd.own.mk which then defines SHLIBDIR before all the Makefile.inc everywhere. This makes /lib being populated again. Reported by: many Notes: svn path=/head/; revision=284417
* Add META_MODE support.Simon J. Gerraty2015-06-132-0/+33
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Off by default, build behaves normally. WITH_META_MODE we get auto objdir creation, the ability to start build from anywhere in the tree. Still need to add real targets under targets/ to build packages. Differential Revision: D2796 Reviewed by: brooks imp Notes: svn path=/head/; revision=284345
| * dirdeps.mk now sets DEP_RELDIRSimon J. Gerraty2015-06-081-2/+0
| | | | | | | | Notes: svn path=/projects/bmake/; revision=284172
| * Merge sync of headSimon J. Gerraty2015-05-271-0/+13
| |\ | |/ |/| | | Notes: svn path=/projects/bmake/; revision=283595
| * Merge from head@274682Simon J. Gerraty2014-11-191-0/+9
| |\ | |/ |/| | | Notes: svn path=/projects/bmake/; revision=274683
| * Updated dependenciesSimon J. Gerraty2014-05-161-1/+1
| | | | | | | | Notes: svn path=/projects/bmake/; revision=266219
| * Updated dependenciesSimon J. Gerraty2014-05-101-0/+2
| | | | | | | | Notes: svn path=/projects/bmake/; revision=265802
| * Merge headSimon J. Gerraty2014-04-271-0/+26
| |\ | | | | | | | | | Notes: svn path=/projects/bmake/; revision=265006
| * | New/updated dependenciesSimon J. Gerraty2013-10-171-0/+18
| | | | | | | | | | | | Notes: svn path=/projects/bmake/; revision=256698
* | | Add support for __cxa_throw_bad_array_new_length in libcxxrtBaptiste Daroussin2014-10-211-0/+9
| |/ |/| | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=273381
* | Add missing C++11 typeinfos to the libcxxrt version script.David Chisnall2014-01-111-0/+26
|/ | | | | | | | PR: 185663 MFC after: 1 week Notes: svn path=/head/; revision=260553