Index | Thread | Search

From:
Otto Moerbeek <otto@drijf.net>
Subject:
Re: Update: PowerDNS Recursor 5.0.1
To:
Theo Buehler <tb@theobuehler.org>
Cc:
ports@openbsd.org
Date:
Wed, 10 Jan 2024 12:14:45 +0100

Download raw body.

Thread
On Wed, Jan 10, 2024 at 11:52:39AM +0100, Theo Buehler wrote:

> 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 <cet.h>
> #else
> #define _CET_ENDBR
> #endif

Thanks, I'll look into that. My previous attempts at using cet.h did
not work because it assumes it is included from an assembly file, not
a C or C++ file.

	-Otto