mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
From: Michael Olbrich <m.olbrich@pengutronix.de>
To: Christian Melki <christian.melki@t2data.com>
Cc: ptxdist@pengutronix.de
Subject: Re: [ptxdist] [PATCH] libpng: Version bump. 1.6.48 -> 1.6.49
Date: Fri, 4 Jul 2025 18:50:26 +0200	[thread overview]
Message-ID: <aGgGUg93QbReK3QV@pengutronix.de> (raw)
In-Reply-To: <3284dfe4-07e4-4fc3-9e5d-984226bb224f@t2data.com>

On Thu, Jul 03, 2025 at 10:38:23PM +0200, Christian Melki wrote:
> On 6/27/25 12:41 PM, Michael Olbrich wrote:
> > On Mon, Jun 16, 2025 at 08:21:08PM +0200, Christian Melki wrote:
> >> https://sourceforge.net/p/libpng/code/ci/libpng16/tree/CHANGES
> >>
> >> * Add RISC-V vector option.
> >>
> >> * Re-add lost ARM NEON optimization. I removed this, misunderstanding
> >> the work done. This can be enabled for ARM64 where NEON
> >> is an unconditional addition. I think it also could be enabled
> >> for ARM NEON capable hard-float and soft-fp (not soft-float).
> >>
> >> * Disable the automatic optimization. It seems to not get the ARM
> >> NEON case right.
> > 
> > What exactly did not work for you?
> > 
> > So I looked at that stuff, and I think, the correct way to handle this is
> > to _not_ specify --{en,dis}able-hardware-optimizations at all and then use
> > --enable-arm-neon=$(call ptx/ifdef, PTXCONF_ARCH_ARM_NEON,api,no)
> > 
> > Does that work in your case?
> > 
> > Michael
> > 
> 
> I think the ARM neon case is slightly more complex than it looks.
> If I enable it, it breaks on my builds. Maybe I need a way to discern if
> the toolchain is generating hard floats or soft-fp with neon or not?

Right, so you have a softfp toolchain with NEON, right?

Does this work:

diff --git a/rules/libpng.make b/rules/libpng.make
index 824974289782..ac8d1faf9dcc 100644
--- a/rules/libpng.make
+++ b/rules/libpng.make
@@ -33,16 +33,21 @@ LIBPNG_LICENSE_FILES := \
 
 LIBPNG_WRAPPER_BLACKLIST := TARGET_DEBUG_FULL
 
+LIBPNG_NEON	= $(PTXCONF_ARCH_ARM_NEON)
+ifdef PTXCONF_ARCH_ARMV7_NEON
+# NEON with softfp is broken
+LIBPNG_NEON	= $(if $(filter softfp,$(shell ptxd_cross_cc_v | sed -n "s/COLLECT_GCC_OPTIONS=.*'-mfloat-abi=\([^']*\)'.*/\1/p" | tail -n1)),,y)
+endif
+
 LIBPNG_CONF_TOOL:= autoconf
-LIBPNG_CONF_OPT := \
+LIBPNG_CONF_OPT  = \
 	$(CROSS_AUTOCONF_USR) \
 	--disable-tests \
 	--disable-tools \
 	--enable-unversioned-links \
 	--enable-unversioned-libpng-pc \
 	--enable-unversioned-libpng-config \
-	--disable-hardware-optimizations \
-	--$(call ptx/endis, PTXCONF_ARCH_ARM64)-arm-neon \
+	--enable-arm-neon=$(call ptx/ifdef, LIBPNG_NEON,api,no) \
 	--disable-mips-msa \
 	--disable-mips-mmi \
 	--$(call ptx/endis, PTXCONF_ARCH_X86)-intel-sse \

Michael

> Not sure how to formulate it, that's why the update ignores ARM for now.
> 
> Christian
> 
> >> Signed-off-by: Christian Melki <christian.melki@t2data.com>
> >> ---
> >>  rules/libpng.make | 7 +++++--
> >>  1 file changed, 5 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/rules/libpng.make b/rules/libpng.make
> >> index 07c6ea99b..824974289 100644
> >> --- a/rules/libpng.make
> >> +++ b/rules/libpng.make
> >> @@ -16,8 +16,8 @@ PACKAGES-$(PTXCONF_LIBPNG) += libpng
> >>  #
> >>  # Paths and names
> >>  #
> >> -LIBPNG_VERSION	:= 1.6.48
> >> -LIBPNG_MD5	:= 6ddbe2107e3811d51da698794b8fb4a2
> >> +LIBPNG_VERSION	:= 1.6.49
> >> +LIBPNG_MD5	:= 66c58f211e8e9fc66e621965960df19c
> >>  LIBPNG		:= libpng-$(LIBPNG_VERSION)
> >>  LIBPNG_SUFFIX	:= tar.xz
> >>  LIBPNG_URL	:= $(call ptx/mirror, SF, libpng/$(LIBPNG).$(LIBPNG_SUFFIX))
> >> @@ -41,11 +41,14 @@ LIBPNG_CONF_OPT := \
> >>  	--enable-unversioned-links \
> >>  	--enable-unversioned-libpng-pc \
> >>  	--enable-unversioned-libpng-config \
> >> +	--disable-hardware-optimizations \
> >> +	--$(call ptx/endis, PTXCONF_ARCH_ARM64)-arm-neon \
> >>  	--disable-mips-msa \
> >>  	--disable-mips-mmi \
> >>  	--$(call ptx/endis, PTXCONF_ARCH_X86)-intel-sse \
> >>  	--disable-powerpc-vsx \
> >>  	--disable-loongarch-lsx \
> >> +	--$(call ptx/endis, PTXCONF_ARCH_RISCV)-riscv-rvv \
> >>  	--with-binconfigs
> >>  
> >>  # ----------------------------------------------------------------------------
> >> -- 
> >> 2.34.1
> >>
> >>
> >>
> > 
> 
> 
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



      reply	other threads:[~2025-07-04 16:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-16 18:21 Christian Melki
2025-06-27 10:41 ` Michael Olbrich
2025-07-03 20:38   ` Christian Melki
2025-07-04 16:50     ` Michael Olbrich [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aGgGUg93QbReK3QV@pengutronix.de \
    --to=m.olbrich@pengutronix.de \
    --cc=christian.melki@t2data.com \
    --cc=ptxdist@pengutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox