[tlbuild] libpng on aarch64

Johannes Hielscher jhielscher at posteo.de
Mon Sep 19 01:25:28 CEST 2022


Hi,


I can not reproduce the failure. My libpng 1.6.38 builds fine for
aarch64-linux on Debian Buster (GCC 8.3.0, TL SVN -r64428).

I've skimmed over the log at
  https://build.contextgarden.net/#/builders/114/builds/401
and the obvious difference is that I have used the ./Build argument
--enable-arm-neon=on but the buildbot has been instructed to use
--enable-arm-neon=check .

Since NEON is part of the ARMv8 instruction set anyway, there actually
never was a need for the 'check' (run-time detection of NEON presence)
on AArch64 ('on' works just as fine).
We (Karl and me when figuring out how to pass this flag to the
./configure of libpng) stayed with 'check' since it worked on the first
try, and to not have to bother with subtle differences between ARMv7
(32 bit, NEON optional) and ARMv8 (64 bit, NEON mandatory).

Just a few days ago, libpng upstream decided to deprecate run-time NEON
detection:
https://sourceforge.net/p/libpng/code/ci/8c542ad9dfc3e7f8a8c790343a43d9cffbc54fd8/
This changeset made it swiftly into TL sources, and upset the buildbot.

Mojca, you might give the --enable-arm-neon=on a chance if possible. The
following “patch” does not fix the issue, but escalates it to RTFM:


Index: README
===================================================================
--- README	(revision 64428)
+++ README	(working copy)
@@ -30,7 +30,7 @@
 aarch64-linux:
   aarch64 Debian GNU/Linux 10 (buster)
   gcc (Debian 8.3.0-6) 8.3.0
-  ./Build --enable-arm-neon=check
+  ./Build --enable-arm-neon=on
 
 armhf-linux:
   Built on contextgarden, see below.



Best wishes,
Johannes



Am Fri, 16 Sep 2022 16:38:24 +0200
schrieb Mojca Miklavec <mojca.miklavec.lists at gmail.com>:

> Hi,
> 
> the latest libpng update is breaking the linux-aarch64 build:
> 
> ../../../libs/libpng/libpng-src/arm/arm_init.c:39:6: error: #error
> "PNG_ARM_NEON_CHECK_SUPPORTED must not be defined on this platform"
>  #    error "PNG_ARM_NEON_CHECK_SUPPORTED must not be defined on this
> platform" ^~~~~
> ../../../libs/libpng/libpng-src/arm/arm_init.c:47:12: warning:
> 'png_have_neon' used but never defined
>  static int png_have_neon(png_structp png_ptr);
>             ^~~~~~~~~~~~~
> 
> (I can try to look into it a bit later.)
> 
> Mojca




More information about the tlbuild mailing list.