On Thu, Apr 20, 2023 at 10:26:24PM +0200, Mark Kettenis wrote:
> So libnettle is interesting.  I already has support for the x86
> variant.  This is done through defining some variables based on
> autoconf checks.  We can add similar checks and defines for arm64.
> Maybe the names of the defines don't make sense, but that is something
> to discuss with upstream I guess?
> 
> This diff modifies both configure.ac and configure.  In fact the
> configure patch is generated by just running the right version of
> autoconf.  However, this leads to errors in the "fake" install phase
> because it tries to run autoheader.  I worked around this by dropping
> the configure.ac patch.  But you folks probably know better what to do
> here.
> 
> Would be nice if one of you could take it from here.

This packages fine for me on amd64.


Index: Makefile
===================================================================
RCS file: /cvs/ports/security/libnettle/Makefile,v
retrieving revision 1.39
diff -u -p -r1.39 Makefile
--- Makefile    19 Jan 2023 12:23:58 -0000      1.39
+++ Makefile    22 Apr 2023 10:39:44 -0000
@@ -2,7 +2,7 @@ COMMENT=                cryptographic library
 
 DISTNAME=              nettle-3.8.1
 PKGNAME=               lib${DISTNAME}
-REVISION=              1
+REVISION=              2
 
 SHARED_LIBS +=  hogweed                   3.0 # 6.3
 SHARED_LIBS +=  nettle                    7.1 # 8.3
@@ -24,7 +24,10 @@ LIB_DEPENDS=         devel/gmp
 
 USE_GMAKE=             Yes
 
-CONFIGURE_STYLE=       gnu
+AUTOCONF_VERSION=      2.69
+AUTOMAKE_VERSION=      1.16
+
+CONFIGURE_STYLE=       autoconf
 CONFIGURE_ENV=         CPPFLAGS="-I${LOCALBASE}/include" \
                        LDFLAGS="-L${LOCALBASE}/lib"
 
Index: patches/patch-configure_ac
===================================================================
RCS file: patches/patch-configure_ac
diff -N patches/patch-configure_ac
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-configure_ac  22 Apr 2023 10:39:44 -0000
@@ -0,0 +1,58 @@
+Index: configure.ac
+--- configure.ac.orig
++++ configure.ac
+@@ -1047,6 +1047,54 @@ if test "$nettle_cv_asm_x86_gnu_property" = yes; then
+       .popsection'
+ fi
+ 
++dnl  Define
++dnl  1. ASM_X86_ENDBR for bti.
++dnl  2. ASM_X86_MARK_CET to add a .note.gnu.property section to mark
++dnl  Arm BTI support if needed.
++AC_CACHE_CHECK([if Arm BTI is enabled],
++  [nettle_cv_asm_arm_bti],
++  [AC_TRY_COMPILE([
++#ifndef __ARM_FEATURE_BTI_DEFAULT
++#error Arm BTI is not enabled
++#endif
++  ], [],
++  [nettle_cv_asm_arm_bti=yes],
++  [nettle_cv_asm_arm_bti=no])])
++if test "$nettle_cv_asm_arm_bti" = yes; then
++  ASM_X86_ENDBR="bti c"
++  AC_CACHE_CHECK([if .note.gnu.property section is needed],
++    [nettle_cv_asm_arm_gnu_property],
++    [AC_TRY_COMPILE([
++#if !defined __ELF__ || !defined __ARM_FEATURE_BTI_DEFAULT
++#error GNU property is not needed
++#endif
++    ], [],
++    [nettle_cv_asm_arm_gnu_property=yes],
++    [nettle_cv_asm_arm_gnu_property=no])])
++else
++  nettle_cv_asm_arm_gnu_property=no
++fi
++if test "$nettle_cv_asm_arm_gnu_property" = yes; then
++  ASM_X86_MARK_CET='
++      .pushsection ".note.gnu.property", "a"
++      .p2align 3
++      .long 1f - 0f
++      .long 4f - 1f
++      .long 5
++0:
++      .asciz "GNU"
++1:
++      .p2align 3
++      .long 0xc0000000
++      .long 3f - 2f
++2:
++      .long 1
++3:
++      .p2align 3
++4:
++      .popsection'
++fi
++
+ AC_SUBST(ASM_SYMBOL_PREFIX)
+ AC_SUBST(ASM_ELF_STYLE)
+ AC_SUBST(ASM_COFF_STYLE)


Reply via email to