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 |
prev parent 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