To be clear: on powerpc (and by default outside of MacPorts generally) gcc uses libstdc++, and that works fine. MacPorts uses libc++ with gcc on archs other than powerpc, which is what fails. It is not a fault of gcc, it is a fault of libc++ being outdated. This should work fine on 10.5 out of the box.
On Tue, Mar 24, 2026 at 7:27 PM Riccardo Mottola via macports-dev < [email protected]> wrote: > Hi, > > a way to test a workaround for the poppler issue > (https://trac.macports.org/ticket/73696) was to build also gpgme and > gpgmepp with gcc. I tested first on 10.13. > > A good test anyway for 10.5 where gcc is more used and PPC of course > where it is the only one! > > I used the suggested way to force a rebuild with sources (to be sure not > a binary gets pulled in) > > sudo port -ns upgrade --force gpgme configure.compiler=macports-gcc-15 > > -> worked fine > > > sudo port -nvs upgrade --force gpgmepp configure.compiler=macports-gcc-15 > > -> fails > > [ 4%] Building CXX object src/CMakeFiles/Gpgmepp.dir/callbacks.cpp.o > cd /opt/local/var/macports/build/gpgmepp-52f96e84/work/build/src && > /opt/local/bin/g++-mp-15 -DGPG_ERR_SOURCE_DEFAULT=GPG_ERR_SOURCE_GPGME > -DGpgmepp_EXPORTS -D_LARGEFILE64_SOURCE > -I/opt/local/var/macports/build/gpgmepp-52f96e84/work/build/src > -I/opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src > -isystem /opt/local/include -pipe -Os -DNDEBUG -I/opt/local/include > -stdlib=libc++ -Wall -Wextra -Wno-shadow -Wsuggest-override > -Wzero-as-null-pointer-constant -std=c++17 -arch x86_64 > -mmacosx-version-min=10.13 -fPIC -fvisibility=hidden -MD -MT > src/CMakeFiles/Gpgmepp.dir/callbacks.cpp.o -MF > CMakeFiles/Gpgmepp.dir/callbacks.cpp.o.d -o > CMakeFiles/Gpgmepp.dir/callbacks.cpp.o -c > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/callbacks.cpp > In file included from > /opt/local/libexec/gcc15/libc++/include/c++/v1/new:99, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/__memory/construct_at.h:23, > from > > /opt/local/libexec/gcc15/libc++/include/c++/v1/__string/constexpr_c_functions.h:14, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/__algorithm/find.h:17, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/__algorithm/remove.h:12, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/string:569, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/error.h:31, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/result.h:29, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/verificationresult.h:29, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/notation.h:29, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/util.h:32, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/callbacks.cpp:30: > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib:144:9: error: > 'at_quick_exit' has not been declared in '::' > 144 | using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; > | ^~~~~~~~~~~~~ > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib:145:9: error: > 'quick_exit' has not been declared in '::' > 145 | using ::quick_exit _LIBCPP_USING_IF_EXISTS; > | ^~~~~~~~~~ > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib:148:9: error: > 'aligned_alloc' has not been declared in '::' > 148 | using ::aligned_alloc _LIBCPP_USING_IF_EXISTS; > | ^~~~~~~~~~~~~ > In file included from > /opt/local/libexec/gcc15/libc++/include/c++/v1/new:99, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/__memory/construct_at.h:23, > from > > /opt/local/libexec/gcc15/libc++/include/c++/v1/__string/constexpr_c_functions.h:14, > from > > /opt/local/libexec/gcc15/libc++/include/c++/v1/__algorithm/copy_move_common.h:18, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/__algorithm/copy.h:12, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/vector:304, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/configuration.h:34, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/configuration.cpp:29: > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib:144:9: error: > 'at_quick_exit' has not been declared in '::' > 144 | using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; > | ^~~~~~~~~~~~~ > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib:145:9: error: > 'quick_exit' has not been declared in '::' > 145 | using ::quick_exit _LIBCPP_USING_IF_EXISTS; > | ^~~~~~~~~~ > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib:148:9: error: > 'aligned_alloc' has not been declared in '::' > 148 | using ::aligned_alloc _LIBCPP_USING_IF_EXISTS; > | ^~~~~~~~~~~~~ > > I'm a bit wondering what is happening here. The error is in the C++ > header iself > > /opt/local/libexec/gcc15/libc++/include/c++/v1/cstdlib > > #if !defined(_LIBCPP_CXX03_LANG) > using ::at_quick_exit _LIBCPP_USING_IF_EXISTS; > using ::quick_exit _LIBCPP_USING_IF_EXISTS; > #endif > > > I suppose the issue here is that is not defined > > Does this ring a bell? > > The port has > compiler.cxx_standard 2017 > > shouldn't that be enough to enable 03? > > I added: > > however, it still fails - value issue I have seen in the portfile this > comment: > # run-genrandom.cpp:114:31: error: 'value' is > # unavailable: introduced in macOS 10.13 > # std::optional<T>::value is missing from the libc++ system > # library, and Clang reports this error even with > # macports-libcxx (except for <Lion), so pass this flag. > > I enabled it also for GCC and also for 10.13... and it fails this way: > > In file included from > /opt/local/libexec/gcc15/libc++/include/c++/v1/__assert:13, > from > /opt/local/libexec/gcc15/libc++/include/c++/v1/iosfwd:97, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/global.h:32, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/configuration.h:29, > from > > /opt/local/var/macports/build/gpgmepp-52f96e84/work/gpgmepp-2.0.0/src/configuration.cpp:29: > /opt/local/libexec/gcc15/libc++/include/c++/v1/__config:593:9: error: > '__char16_t' does not name a type; did you mean 'char16_t'? > 593 | typedef __char16_t char16_t; > | ^~~~~~~~~~ > | char16_t > /opt/local/libexec/gcc15/libc++/include/c++/v1/__config:594:9: error: > '__char32_t' does not name a type; did you mean 'char32_t'? > 594 | typedef __char32_t char32_t; > | ^~~~~~~~~~ > > > Ideas? Does it make sense to open bug to build with gcc gpgmepp? > > Riccard >
