#
0c785f06 |
|
18-Aug-2023 |
Enji Cooper <ngie@FreeBSD.org> |
Fix GoogleTest 1.14.0 import - Prune headers and tests no longer installed after the upgrade. - Remove GoogleTest-related files when MK_GOOGLETEST == no. - Disable `-Werror` with gcc to unbreak the gcc12 CI run with `lib/googletest`. Any issues found by g++ will be filed upstream and hopefully resolved in a future version. - Remove clang -Werror issues which are resolved in version 1.14.0 to avoid masking valid issues. MFC after: 1 week MFC with: 28f6c2f292806bf31230a959bc4b19d7081669a7
|
#
d0b2dbfa |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line sh pattern Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
28f6c2f2 |
|
08-Aug-2023 |
Enji Cooper <ngie@FreeBSD.org> |
Import GoogleTest 1.14.0 GoogleTest 1.14.0 now requires C++14 to build. Change `googletest.test.inc.mk` to reflect this requirement. Adjust the build integration logic to handle the new version of GoogleTest (add/remove headers/sources as needed). Tighten down warnings via `CXXFLAGS.clang` instead of ignoring all warnings. Some new warnings snuck in after I did my last round of fix submissions upstream. Also address some overlinking added in the previous version import by removing superfluous libraries. =============================== Expect WhenDynamicCastToTest.AmbiguousCast to fail This change reapplies the expected failure from 1.10.0. Ref: https://github.com/google/googletest/issues/2172 MFC after: 2 weeks Reviewed by: asomers, emaste Differential Revision: https://reviews.freebsd.org/D41399 Merge commit '8ef491440fcaec96f899d73e08873426c78583a4' into googletest-v1.14.0-import
|
#
7b5814e1 |
|
31-Jan-2020 |
Dimitry Andric <dim@FreeBSD.org> |
Work around two -Werror warning issues in googletest, which have been solved upstream in the mean time. The first issue is because one of googletest's generated headers contain classes with a user-declared copy assignment operator, but rely on the generation by the compiler of an implicit copy constructor, which is now deprecated: /usr/obj/usr/src/amd64.amd64/tmp/usr/include/private/gtest/internal/gtest-param-util-generated.h:5284:8: error: definition of implicit copy constructor for 'CartesianProductHolder3<testing::internal::ParamGenerator<bool>, testing::internal::ValueArray3<int, int, int>, testing::internal::ValueArray4<cache_mode, cache_mode, cache_mode, cache_mode> >' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy] void operator=(const CartesianProductHolder3& other); ^ /usr/obj/usr/src/amd64.amd64/tmp/usr/include/private/gtest/gtest-param-test.h:1277:10: note: in implicit copy constructor for 'testing::internal::CartesianProductHolder3<testing::internal::ParamGenerator<bool>, testing::internal::ValueArray3<int, int, int>, testing::internal::ValueArray4<cache_mode, cache_mode, cache_mode, cache_mode> >' first required here return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>( ^ /usr/src/tests/sys/fs/fusefs/io.cc:534:2: note: in instantiation of function template specialization 'testing::Combine<testing::internal::ParamGenerator<bool>, testing::internal::ValueArray3<int, int, int>, testing::internal::ValueArray4<cache_mode, cache_mode, cache_mode, cache_mode> >' requested here Combine(Bool(), /* async read */ ^ For now, silence the warning using -Wno-deprecated-copy. The second issue is because one of the googlemock test programs attempts to use "unsigned wchar_t" and "signed wchar_t", which are non-standard and at best, hazily defined: contrib/googletest/googlemock/test/gmock-actions_test.cc:111:37: error: 'wchar_t' cannot be signed or unsigned [-Wsigned-unsigned-wchar] EXPECT_EQ(0U, BuiltInDefaultValue<unsigned wchar_t>::Get()); ^ contrib/googletest/googlemock/test/gmock-actions_test.cc:112:36: error: 'wchar_t' cannot be signed or unsigned [-Wsigned-unsigned-wchar] EXPECT_EQ(0, BuiltInDefaultValue<signed wchar_t>::Get()); ^ For now, silence the warning using -Wno-signed-unsigned-wchar. MFC after: 3 days
|
#
db933d76 |
|
22-Apr-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Fix up CXXSTD support originally added in r345708 r345708 worked for the base system, but unfortunately, caused a lot of disruption for third-party packages that relied on C++, since bsd.sys.mk is used by applications outside the base system. The defaults picked didn't match the compiler's defaults and broke some builds that didn't specify a standard, as well as some that overrode the value by setting `-std=gnu++14` (for example) manually. This change takes a more relaxed approach to appending `-std=${CXXSTD}` to CXXFLAGS, by only doing so when the value is specified, as opposed to overriding the standard set by an end-user. This avoids the need for having to bake NOP default into bsd.sys.mk for supported compiler-toolchain versions. In order to make this change possible, add CXXSTD to Makefile snippets which relied on the default value (c++11) added in r345708. MFC after: 2 weeks MFC with: r345708, r346574 Reviewed by: emaste Reported by: jbeich Differential Revision: https://reviews.freebsd.org/D19895 (as part of a larger change)
|
#
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++. 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
|
#
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 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)
|
#
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++. 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
|
#
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 after: 2 months MFC with: r345704
|
#
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, 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
|
#
fb72cf61 |
|
28-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Spam CXXFLAGS with `-I${DESTDIR}/usr/include/private`, instead of GTEST_CXXFLAGS This makes it easier for googletest users to leverage googletest, instead of forcing them to plug GTEST_CXXFLAGS into CXXFLAGS manually (resulting in unnecessary duplication). I will be following this up with a more proper fix in src.libnames.mk, as src.libnames.mk should be automatically adding this directory to CFLAGS/CXXFLAGS when private libraries are referenced. Not doing so can result in mismatches between base-provided private library's and ports-provided library's headers. While here, tweak the comment to clarify what the intent is behind spamming CXXFLAGS. MFC after: 5 weeks MFC with: r345203 Reported by: asomers Reviewed by: asomers Approved by: emaste (mentor) Differential Revision: https://reviews.freebsd.org/D19731
|
#
dde07f1c |
|
11-Mar-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Adjust code based on comments from @asomers in D19551
|
#
7b1136bd |
|
21-Feb-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Remove redundant CXXFLAGS and fix constant names - Specifying -std=c++11 and -frtti tweaks those flags with clang/gcc. - The constants are prefixed with `GTEST_`, not `GTESTS_`.
|
#
1d4fb286 |
|
20-Feb-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Move `NO_WTHREAD_SAFETY` to googletest.test.inc.mk This variable is necessary to compile with googletest at a global level. Move it there.
|
#
c1bcc48b |
|
20-Feb-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Use gmock/gtest headers when PRIVATELIB is defined The move to /usr/include/private prefixed paths seems to require a bit more effort in order to compile programs. Install the headers to /usr/include/private/g{mock,test}/... and automatically include /usr/include/private in GTESTS_CXXFLAGS to make compilation seamless. I will work on the more global problem later with @bdrewery.
|
#
83301881 |
|
20-Feb-2019 |
Enji Cooper <ngie@FreeBSD.org> |
Correct gmock/gtest expectations w.r.t. C++11/RTTI Long story short, some of the tests were failing because they expected either dynamic_cast or RTTI to be functional and it wasn't. Move all common CXXFLAGS out to googletest.test.inc.mk and reference it from googletest.test.mk and .../googletest/Makefile.inc
|