On Mon, 30 Apr 2018, Markus Hennecke wrote: > Fixed building on armv7 by disabling neon support in configure. This has > no effect on amd64. I tested a build there and all tests passed. 16 tests > failed on armv7, all unable to allocate lzma memory if I remember > correctly. > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/security/botan2/Makefile,v > retrieving revision 1.16 > diff -u -p -r1.16 Makefile > --- Makefile 12 Apr 2018 09:53:54 -0000 1.16 > +++ Makefile 30 Apr 2018 07:28:24 -0000 > @@ -39,6 +39,7 @@ CONFIGURE_ARGS = --with-build-dir=${WRKB > --prefix=${PREFIX} \ > --distribution-info="`uname -sr`" \ > --mandir=${PREFIX}/man \ > + --disable-neon \ > --with-bzip2 \ > --with-lzma \ > --with-openssl \ > >
After seeing some mails regarding NEON support on armv7 another approach would be to pass --cc-abi-flags="-mfloat-abi=softfp" to configure which fixes the build on armv7 as well. Going that way the port has to be updated after the switch to hard fp abi. Running with --disable-neon results in a little slower regression test, 1105 seconds vs 1135 seconds. For 64 bit arm we can pass --disable-armv8crypto. With that it will build ok on aarch64 because we don't have __ARM_FEATURE_CRYPTO defined. If both --disable-{neon,armv8crypto} are used we could at them to CONFIGURE_ARGS because archs not affected would ignore them. As there are already .if ${MACHINE_ARCH} == conditions in the makefile this diff works for me on armv7 and aarch64: Index: Makefile =================================================================== RCS file: /cvs/ports/security/botan2/Makefile,v retrieving revision 1.16 diff -u -p -r1.16 Makefile --- Makefile 12 Apr 2018 09:53:54 -0000 1.16 +++ Makefile 26 May 2018 09:10:31 -0000 @@ -45,6 +45,14 @@ CONFIGURE_ARGS = --with-build-dir=${WRKB --with-zlib \ --without-sphinx +.if ${MACHINE_ARCH} == "armv7" +CONFIGURE_ARGS += --cc-abi-flags="-mfloat-abi=softfp" +.endif + +.if ${MACHINE_ARCH} == "aarch64" +CONFIGURE_ARGS += --disable-armv8crypto +.endif + .if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64" PKG_ARGS = -Dx86=1 .else