I have a src commit that changes the default C++ standard in userspace to C++17 at https://reviews.freebsd.org/D49223. Please do an exp-run with this change.
Some new failure logs: https://pkg-status.freebsd.org/gohan06/data/mainamd64PR285141-default-foo/2025-03-13_08h13m44s/logs/errors/libcabinet-0.30_2.log https://pkg-status.freebsd.org/gohan06/data/mainamd64PR285141-default-foo/2025-03-13_08h13m44s/logs/errors/libs11n-1.2.10_1.log https://pkg-status.freebsd.org/gohan06/data/mainamd64PR285141-default-foo/2025-03-13_08h13m44s/logs/errors/libdkim-1.0.21.log https://pkg-status.freebsd.org/gohan06/data/mainamd64PR285141-default-foo/2025-03-13_08h13m44s/logs/errors/sfft-0.1.0_14.log https://pkg-status.freebsd.org/gohan05/data/maini386PR285141-default-foo/2025-03-13_08h13m45s/logs/errors/libtnl-1.5.0_8.log
CC bofh@ as a couple of these are his
I am not sure about the review but I think there is something wrong with the code John has shared. It does not definitely respect the ports CXXSTD. Like for libs11n I do have USE_CXXSTD=c++14 but at compile time it's trying something like: c++ -O2 -pipe -fstack-protector-strong -fno-strict-aliasing -std=c++14 -Wall -O2 -fPIC -I../include -std=c++17 -Wno-c++11-extensions -c s11n.cpp -o s11n.o It is not supposed to override CXXSTD if it is already defined.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=aefaf2c8e44f78da3052bf453bf4dc07e462c562 commit aefaf2c8e44f78da3052bf453bf4dc07e462c562 Author: Muhammad Moinur Rahman <bofh@FreeBSD.org> AuthorDate: 2025-03-28 17:19:35 +0000 Commit: Muhammad Moinur Rahman <bofh@FreeBSD.org> CommitDate: 2025-03-29 13:45:44 +0000 net/libtnl: Mark DEPRECATED - IGNORE on i386 as it fails to build with upcoming switch to c++17 - Last upstream release was in 2005 - Set EXPIRATION_DATE 2025-04-27 If someone needs this port feel free to fix build, undeprecate and takeover maintainership. PR: 285141 Reported by: exp-run net/libtnl/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
(In reply to Muhammad Moinur Rahman from comment #3) This was premature. libtnl will build fine after my change to default to gnu++17 instead of c++17. There is no need to deprecate it and you should revert that commit. However, I do have two ports reviews for fixes to ports. One in particular is a fix to bsd.port.mk to cooperate with ports that use bsd.*.mk in their build. In particular, code that wishes to use bsd.*.mk needs to set CSTD (and with this change CXXSTD) rather than manually frobbing CFLAGS. The CSTD case has long been broken in ports but apparently harmless so far. The CXXSTD case does trip up a few ports, hence my bsd.port.mk change. https://reviews.freebsd.org/D49597 https://reviews.freebsd.org/D49598
(In reply to John Baldwin from comment #5) Thanks for the clarification regarding the CXXSTD change and the upcoming fix in bsd.port.mk. I’ll try your patch on libs11n and follow up with results. As for libtnl, the deprecation wasn’t just due to build fallout — I made that decision as the current maintainer, based on the fact that the last upstream release was in 2005 and the software is clearly obsolete. It no longer aligns with what I consider a relevant or maintainable port. I’ve included a clear note inviting anyone who needs the port to fix the build and take over maintainership. I don’t plan to revert the deprecation myself. I’m not interested in debating the broader philosophical differences — I don’t believe the ports tree should be treated as a software museum, and I don’t see value in spending time defending the presence of something that hasn’t been touched upstream in nearly two decades.
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=77abe790f312800810a096b7f2b1752be8c50864 commit 77abe790f312800810a096b7f2b1752be8c50864 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2025-04-11 13:51:24 +0000 Commit: John Baldwin <jhb@FreeBSD.org> CommitDate: 2025-04-11 13:51:24 +0000 mail/libdkim: Use USE_CXXSTD instead of messing with CXXFLAGS directly PR: 285141 Differential Revision: https://reviews.freebsd.org/D49598 mail/libdkim/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
A commit in branch main references this bug: URL: https://cgit.FreeBSD.org/ports/commit/?id=2be2295e849a2ff85dcd7cc12fdc79b8563750c1 commit 2be2295e849a2ff85dcd7cc12fdc79b8563750c1 Author: John Baldwin <jhb@FreeBSD.org> AuthorDate: 2025-04-11 13:51:03 +0000 Commit: John Baldwin <jhb@FreeBSD.org> CommitDate: 2025-04-11 13:51:03 +0000 Mk/bsd.port.mk: Pass CSTD/CXXSTD in MAKE_ENV For ports which use bsd.*.mk in their build, the existing USE_CSTD logic which patches CFLAGS and CXXFLAGS is insufficient since bsd.sys.mk will add the default CSTD/CXXSTD later in CFLAGS/CXXFLAGS. Presumably no ports are using USE_CSTD with bsd.*.mk, but at least one does use USE_CXXSTD with bsd.*.mk which will break when src starts defining a default CXXSTD. PR: 285141 Reviewed by: bapt Differential Revision: https://reviews.freebsd.org/D49597 Mk/bsd.port.mk | 1 + 1 file changed, 1 insertion(+)