https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=215193

--- Comment #25 from Mark Millard <[email protected]> ---
(In reply to Matthias Andree from comment #22)

I only attempted to find how the Makefile could attempt to build
with the system libc++ using g++15. The Makefile comments suggested
you had not been able to have the Makefile do so in what might be
a supported way. The following may be closer to direct use for
you if you think it is an improvement:

# git -C /usr/ports/ diff graphics/rawtherapee | cat
diff --git a/graphics/rawtherapee/Makefile b/graphics/rawtherapee/Makefile
index 98a3feb6893f..30a08f48febc 100644
--- a/graphics/rawtherapee/Makefile
+++ b/graphics/rawtherapee/Makefile
@@ -28,10 +28,11 @@ LIB_DEPENDS=        \
                libsigc-2.0.so:devel/libsigc++20 \
                libtiff.so:graphics/tiff

-# We cannot use gcc-c++11-lib as of 2024-02-23 because
-# Uses/compiler.mk would use the default compiler instead
-# as though USE_GCC=yes had been set.
-USES=          autoreconf:build cmake desktop-file-utils compiler:c++11-lib
gnome \
+# We can use gcc-c++11-lib by controlling the default
+# gcc* used via later use of the likes of: GCC_DEFAULT=14
+# (Uses/compiler.mk uses the default compiler/toolchain
+# as though USE_GCC=yes had been set.)
+USES=          autoreconf:build cmake desktop-file-utils
compiler:gcc-c++11-lib gnome \
                jpeg libtool:build localbase:ldflags pkgconfig tar:xz

 USE_GNOME=     gtkmm30 librsvg2
@@ -113,6 +114,7 @@ OPENMP_LDFLAGS=             -lm -lomp
 # up to twice as fast as clang-16.0 compiled code.
 # So we shall stick to a modern GCC for now.
 #
+GCC_DEFAULT=   14
 USE_GCC=       yes  # default

 .if (${OPSYS} == FreeBSD) && (${OSVERSION} >= 1500000)
@@ -141,10 +143,6 @@ _OPT_FLAGS+=       -mstackrealign

 .include <bsd.port.pre.mk>

-.if ${COMPILER_FEATURES:Mlibc++}
-CXXFLAGS+=     -stdlib=libc++
-.endif
-
 post-patch:
        ${REINPLACE_CMD} -e '/COMMAND.*SHELL/s/-l -c/-c/'
${WRKSRC}/rtengine/LibRaw.cmake
        ${REINPLACE_CMD} -e 's#DESTINATION
"$${CMAKE_INSTALL_PREFIX}/share/man/man1"#DESTINATION
"${PREFIX}/share/man/man1/"#' \


I've tried the technique for each of: 14 vs. 15 vs. 16 and only
gcc14 builds it without failure. gcc15 and gcc16 reject the libc++
source the same way as I reported.

The reporting on compilation rejections of libc++ is not something
that I'd planned for. But learning that there is a mismatch for
g++15 and later vs. the system libc++ makes for background knowledge
that I'm glad to have.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to