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

Reply via email to