| #
6527682a
|
| 11-Apr-2025 |
John Baldwin <jhb@FreeBSD.org> |
src: Use gnu++17 as the default C++ standard
Previously the compiler's default C++ standard was used unlike C where bsd.sys.mk explicitly sets a default language version. Setting an explicit defaul
src: Use gnu++17 as the default C++ standard
Previously the compiler's default C++ standard was used unlike C where bsd.sys.mk explicitly sets a default language version. Setting an explicit default version will give a more uniform experience across different compilers and compiler versions.
gnu++17 was chosen to match the default C standard. It is well supported by a wide range of clang (5+) and GCC (9+) versions.
gnu++17 is also the default C++ standard in recent versions of clang (16+) and GCC (11+). As a result, many of the explicit CXXSTD settings in Makefiles had the effect of lowering the C++ standard instead of raising it as was originally intended and are removed.
Note that the remaining explicit CXXSTD settings for atf and liblutok explicitly lower the standard to C++11 due to use of the deprecated auto_ptr<> template which is removed in later versions.
Reviewed by: imp, asomers, dim, emaste Differential Revision: https://reviews.freebsd.org/D49223
show more ...
|
| #
1062db30
|
| 17-May-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libcxxrt: allow build with gcc13 and --no-undefined-version
GCC 13 supports _Float16 and __int128 on fewer architectures than clang and thus libcxxrt compiled with gcc13 is sometimes missing related
libcxxrt: allow build with gcc13 and --no-undefined-version
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
show more ...
|
| #
6077246e
|
| 22-Apr-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libcxxrt: align more with libc/Makefile
Use src.opts.mk instead of bsd.own.mk and define PACKAGE first.
Fixes: da77a1b4f0dff libcxxrt: don't export nonexistant symbols
|
| #
911a6479
|
| 22-Apr-2024 |
Dimitry Andric <dim@FreeBSD.org> |
libcxxrt: define SHLIBDIR before including bsd.own.mk
Otherwise bsd.own.mk overrides it, causing libcxxrt.so.1 to be erroneously installed into /usr/lib.
Also add an ObsoleteFiles.inc entry, for re
libcxxrt: define SHLIBDIR before including bsd.own.mk
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
show more ...
|
| #
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 a
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
show more ...
|
| #
d0b2dbfa
|
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
| #
3c3df366
|
| 22-Jan-2022 |
Dimitry Andric <dim@FreeBSD.org> |
Sort SRCS in libcxxrt's Makefile, and use += to list sources
No functional change intended.
MFC after: 3 days
|
| #
ecebb3cc
|
| 11-Sep-2020 |
Kyle Evans <kevans@FreeBSD.org> |
Only set WARNS if not defined
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_WE
Only set WARNS if not defined
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
show more ...
|
| #
4b50c451
|
| 14-Jan-2020 |
Kyle Evans <kevans@FreeBSD.org> |
Revert r353140: Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around
arichardson has an actual fix for the same issue that this was working around; given that we don't build with llvm today, go ahea
Revert r353140: Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around
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.
show more ...
|
| #
8b3bc70a
|
| 08-Oct-2019 |
Dimitry Andric <dim@FreeBSD.org> |
Merge ^/head r352764 through r353315.
|
| #
036d2e81
|
| 06-Oct-2019 |
Kyle Evans <kevans@FreeBSD.org> |
Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around
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 M
Re-add ALLOW_MIPS_SHARED_TEXTREL, sprinkle it around
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
show more ...
|
| #
a63915c2
|
| 28-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @r350386
Sponsored by: The FreeBSD Foundation
|
| #
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 wi
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
show more ...
|
| #
7648bc9f
|
| 13-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead @347527
Sponsored by: The FreeBSD Foundation
|
| #
1109b774
|
| 22-Apr-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Rework CXXSTD setting via r345708
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/M
Rework CXXSTD setting via r345708
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)
show more ...
|
| #
9a696dc6
|
| 04-Apr-2019 |
Alan Somers <asomers@FreeBSD.org> |
MFHead@r345880
|
| #
e8067928
|
| 29-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Standardize `-std=c++* as `CXXSTD`
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++.
Thi
Standardize `-std=c++* as `CXXSTD`
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
show more ...
|
| #
bdbf3440
|
| 29-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Revert r345706: the third time will be the charm
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 rep
Revert r345706: the third time will be the charm
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)
show more ...
|
| #
760b1a81
|
| 29-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Standardize `-std=c++* as `CXXSTD`
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++.
Thi
Standardize `-std=c++* as `CXXSTD`
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
show more ...
|
| #
752cabaa
|
| 29-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Revert r345704
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 afte
Revert r345704
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
show more ...
|
| #
9a41926b
|
| 29-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
CXXSTD is 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, ori
CXXSTD is 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 Relnotes: yes Differential Revision: https://reviews.freebsd.org/D19732
show more ...
|
| #
6527682a
|
| 11-Apr-2025 |
John Baldwin <jhb@FreeBSD.org> |
src: Use gnu++17 as the default C++ standard
Previously the compiler's default C++ standard was used unlike C where bsd.sys.mk explicitly sets a default language version. Setting an explicit defaul
src: Use gnu++17 as the default C++ standard
Previously the compiler's default C++ standard was used unlike C where bsd.sys.mk explicitly sets a default language version. Setting an explicit default version will give a more uniform experience across different compilers and compiler versions.
gnu++17 was chosen to match the default C standard. It is well supported by a wide range of clang (5+) and GCC (9+) versions.
gnu++17 is also the default C++ standard in recent versions of clang (16+) and GCC (11+). As a result, many of the explicit CXXSTD settings in Makefiles had the effect of lowering the C++ standard instead of raising it as was originally intended and are removed.
Note that the remaining explicit CXXSTD settings for atf and liblutok explicitly lower the standard to C++11 due to use of the deprecated auto_ptr<> template which is removed in later versions.
Reviewed by: imp, asomers, dim, emaste Differential Revision: https://reviews.freebsd.org/D49223
show more ...
|
| #
1062db30
|
| 17-May-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libcxxrt: allow build with gcc13 and --no-undefined-version
GCC 13 supports _Float16 and __int128 on fewer architectures than clang and thus libcxxrt compiled with gcc13 is sometimes missing related
libcxxrt: allow build with gcc13 and --no-undefined-version
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
show more ...
|
| #
6077246e
|
| 22-Apr-2024 |
Brooks Davis <brooks@FreeBSD.org> |
libcxxrt: align more with libc/Makefile
Use src.opts.mk instead of bsd.own.mk and define PACKAGE first.
Fixes: da77a1b4f0dff libcxxrt: don't export nonexistant symbols
|
| #
911a6479
|
| 22-Apr-2024 |
Dimitry Andric <dim@FreeBSD.org> |
libcxxrt: define SHLIBDIR before including bsd.own.mk
Otherwise bsd.own.mk overrides it, causing libcxxrt.so.1 to be erroneously installed into /usr/lib.
Also add an ObsoleteFiles.inc entry, for re
libcxxrt: define SHLIBDIR before including bsd.own.mk
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
show more ...
|