From: Theo Buehler Subject: Re: Update: PowerDNS Recursor 5.0.1 To: Otto Moerbeek Cc: ports@openbsd.org Date: Wed, 10 Jan 2024 11:52:39 +0100 On Wed, Jan 10, 2024 at 10:53:33AM +0100, Otto Moerbeek wrote: > Hi, > > this is a somewhat large update as PowerDNS Recursor 5 uses Rust code > (in addition to C++) > > So I would like some extra eyes and OK. WANTLIB needs fixing (see 'lib-depends-check' in bsd.port.mk). It should be: WANTLIB += ${MODCARGO_WANTLIB} ${COMPILER_LIBCXX} boost_atomic-mt WANTLIB += boost_context-mt boost_filesystem-mt boost_system-mt crypto WANTLIB += curl fstrm m nghttp2 nghttp3 ngtcp2 ngtcp2_crypto_quictls WANTLIB += sodium ssl z ${MODCARGO_WANTLIB} is needed for Rust ports to have correct WANTLIB on all platforms. Currently only sparc64 is special because ports-gcc statically links against its C++ library - not really an issue here since boost-md isn't available there. You also need to 'cvs rm -f patches/patch-mtasker_fcontext_cc' because with your diff I get: ===> Applying OpenBSD patch patch-mtasker_fcontext_cc Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |Index: mtasker_fcontext.cc |--- mtasker_fcontext.cc.orig |+++ mtasker_fcontext.cc -------------------------- Patching file mtasker_fcontext.cc using Plan A... Reversed (or previously applied) patch detected! Assume -R? [y] With these two fixed ok tb The CET_ENDBR handling in that now upstreamed patch needs fixing to have a chance to work with other operating systems. Using endbr64 is not enough. Other OS also need .gnu.property notes and there is some assembly to emit that in the compiler-internal cet.h (present if __CET__ is defined), so the proper portable way is to use _CET_ENDBR and to do #ifdef __CET__ #include #else #define _CET_ENDBR #endif