diff mbox series

[meta-oe,PATCHv2] libjxl: add recipe

Message ID 20240402054947.10487-1-f_l_k@t-online.de
State New
Headers show
Series [meta-oe,PATCHv2] libjxl: add recipe | expand

Commit Message

Markus Volk April 2, 2024, 5:49 a.m. UTC
Import this recipe from meta-wayland, because it is a prerequisite
for the Gnome desktop. The recently updated gnome-backgrounds package
has converted most of the backgrounds to jxl and to keep them usable
the gdk-pixbuf-loader for jpegxl must be provided. This is included
in the libjxl package itself.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 .../libjxl/libjxl_2.10.0.bb                   | 42 +++++++++++++++++++
 1 file changed, 42 insertions(+)
 create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb

Comments

Martin Jansa April 5, 2024, 5:54 a.m. UTC | #1
I'm seeing build failure in 32bit arm builds (with multilib):

lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1:
error: inlining failed in call to 'always_inline' 'float32x4_t
vcvt_f32_f16(float16x4_t)': target specific option mismatch
 7526 | vcvt_f32_f16 (float16x4_t __a)
      | ^~~~~~~~~~~~
In file included from
TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
note: called from here
  155 |     return vcvt_f32_f16((float16x4_t)half);
      |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~

should I try to reproduce on some publicly available arm MACHINE (like
qemuarm) or is someone else seeing this as well?

On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de> wrote:
>
> Import this recipe from meta-wayland, because it is a prerequisite
> for the Gnome desktop. The recently updated gnome-backgrounds package
> has converted most of the backgrounds to jxl and to keep them usable
> the gdk-pixbuf-loader for jpegxl must be provided. This is included
> in the libjxl package itself.
>
> Signed-off-by: Markus Volk <f_l_k@t-online.de>
> ---
>  .../libjxl/libjxl_2.10.0.bb                   | 42 +++++++++++++++++++
>  1 file changed, 42 insertions(+)
>  create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
>
> diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> new file mode 100644
> index 000000000..0c4f79fdb
> --- /dev/null
> +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> @@ -0,0 +1,42 @@
> +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)"
> +HOMEPAGE = "https://github.com/libjxl/libjxl/"
> +
> +LICENSE = "BSD-3-Clause"
> +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f"
> +
> +inherit cmake pkgconfig mime
> +
> +DEPENDS = "highway brotli"
> +
> +SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1"
> +
> +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515"
> +S = "${WORKDIR}/git"
> +
> +EXTRA_OECMAKE = " \
> +       -DCMAKE_BUILD_TYPE=Release \
> +       -DJPEGXL_ENABLE_PLUGINS=ON \
> +       -DBUILD_TESTING=OFF \
> +       -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
> +       -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \
> +       -DJPEGXL_ENABLE_SJPEG=OFF \
> +       -DJPEGXL_ENABLE_BENCHMARK=OFF \
> +       -DJPEGXL_ENABLE_EXAMPLES=OFF \
> +       -DJPEGXL_ENABLE_MANPAGES=OFF \
> +       -DJPEGXL_ENABLE_SKCMS=ON \
> +       -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
> +       -DJPEGXL_FORCE_SYSTEM_HWY=ON \
> +       -DJPEGXL_ENABLE_JNI=OFF \
> +       -DJPEGXL_ENABLE_TCMALLOC=OFF \
> +       -DJPEGXL_ENABLE_TOOLS=OFF \
> +"
> +
> +PACKAGECONFIG ?= "mime gdk-pixbuf-loader"
> +PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf"
> +PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp"
> +PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF"
> +
> +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
> +
> +CXXFLAGS:append:arm = " -mfp16-format=ieee"
> +
> --
> 2.44.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#109774): https://lists.openembedded.org/g/openembedded-devel/message/109774
> Mute This Topic: https://lists.openembedded.org/mt/105282918/3617156
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [martin.jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Markus Volk April 5, 2024, 6:49 a.m. UTC | #2
Does this also happen if you add '-mfpu=neon' to CXXFLAGS ?

On Fri, Apr 5 2024 at 07:54:47 AM +02:00:00, Martin Jansa 
<martin.jansa@gmail.com> wrote:
> I'm seeing build failure in 32bit arm builds (with multilib):
> 
> lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1:
> error: inlining failed in call to 'always_inline' 'float32x4_t
> vcvt_f32_f16(float16x4_t)': target specific option mismatch
>  7526 | vcvt_f32_f16 (float16x4_t __a)
>       | ^~~~~~~~~~~~
> In file included from
> TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
> TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
> note: called from here
>   155 |     return vcvt_f32_f16((float16x4_t)half);
>       |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
> 
> should I try to reproduce on some publicly available arm MACHINE (like
> qemuarm) or is someone else seeing this as well?
> 
> On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de 
> <mailto:f_l_k@t-online.de>> wrote:
>> 
>>  Import this recipe from meta-wayland, because it is a prerequisite
>>  for the Gnome desktop. The recently updated gnome-backgrounds 
>> package
>>  has converted most of the backgrounds to jxl and to keep them usable
>>  the gdk-pixbuf-loader for jpegxl must be provided. This is included
>>  in the libjxl package itself.
>> 
>>  Signed-off-by: Markus Volk <f_l_k@t-online.de 
>> <mailto:f_l_k@t-online.de>>
>>  ---
>>   .../libjxl/libjxl_2.10.0.bb                   | 42 
>> +++++++++++++++++++
>>   1 file changed, 42 insertions(+)
>>   create mode 100644 
>> meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
>> 
>>  diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb 
>> b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
>>  new file mode 100644
>>  index 000000000..0c4f79fdb
>>  --- /dev/null
>>  +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
>>  @@ -0,0 +1,42 @@
>>  +SUMMARY = "Reference implementation of JPEG XL (encoder and 
>> decoder)"
>>  +HOMEPAGE = "<https://github.com/libjxl/libjxl/>"
>>  +
>>  +LICENSE = "BSD-3-Clause"
>>  +LIC_FILES_CHKSUM = 
>> "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f" 
>> <file://license;md5=6a905a337cc228a1f68f0b5416f52a7f/>
>>  +
>>  +inherit cmake pkgconfig mime
>>  +
>>  +DEPENDS = "highway brotli"
>>  +
>>  +SRC_URI = 
>> "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1"
>>  +
>>  +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515"
>>  +S = "${WORKDIR}/git"
>>  +
>>  +EXTRA_OECMAKE = " \
>>  +       -DCMAKE_BUILD_TYPE=Release \
>>  +       -DJPEGXL_ENABLE_PLUGINS=ON \
>>  +       -DBUILD_TESTING=OFF \
>>  +       -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
>>  +       -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \
>>  +       -DJPEGXL_ENABLE_SJPEG=OFF \
>>  +       -DJPEGXL_ENABLE_BENCHMARK=OFF \
>>  +       -DJPEGXL_ENABLE_EXAMPLES=OFF \
>>  +       -DJPEGXL_ENABLE_MANPAGES=OFF \
>>  +       -DJPEGXL_ENABLE_SKCMS=ON \
>>  +       -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
>>  +       -DJPEGXL_FORCE_SYSTEM_HWY=ON \
>>  +       -DJPEGXL_ENABLE_JNI=OFF \
>>  +       -DJPEGXL_ENABLE_TCMALLOC=OFF \
>>  +       -DJPEGXL_ENABLE_TOOLS=OFF \
>>  +"
>>  +
>>  +PACKAGECONFIG ?= "mime gdk-pixbuf-loader"
>>  +PACKAGECONFIG[gdk-pixbuf-loader] = 
>> "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf"
>>  +PACKAGECONFIG[gimp] = 
>> "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp"
>>  +PACKAGECONFIG[mime] = 
>> "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF"
>>  +
>>  +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
>>  +
>>  +CXXFLAGS:append:arm = " -mfp16-format=ieee"
>>  +
>>  --
>>  2.44.0
>> 
>> 
>>  -=-=-=-=-=-=-=-=-=-=-=-
>>  Links: You receive all messages sent to this group.
>>  View/Reply Online (#109774): 
>> <https://lists.openembedded.org/g/openembedded-devel/message/109774>
>>  Mute This Topic: 
>> <https://lists.openembedded.org/mt/105282918/3617156>
>>  Group Owner: openembedded-devel+owner@lists.openembedded.org 
>> <mailto:openembedded-devel+owner@lists.openembedded.org>
>>  Unsubscribe: 
>> <https://lists.openembedded.org/g/openembedded-devel/unsub> 
>> [martin.jansa@gmail.com <mailto:martin.jansa@gmail.com>]
>>  -=-=-=-=-=-=-=-=-=-=-=-
>>
Khem Raj April 5, 2024, 6:53 a.m. UTC | #3
On Thu, Apr 4, 2024 at 10:55 PM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> I'm seeing build failure in 32bit arm builds (with multilib):
>
> lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1:
> error: inlining failed in call to 'always_inline' 'float32x4_t
> vcvt_f32_f16(float16x4_t)': target specific option mismatch
>  7526 | vcvt_f32_f16 (float16x4_t __a)
>       | ^~~~~~~~~~~~
> In file included from
> TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
> TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
> note: called from here
>   155 |     return vcvt_f32_f16((float16x4_t)half);
>       |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
>
> should I try to reproduce on some publicly available arm MACHINE (like
> qemuarm) or is someone else seeing this as well?

This is not seen at least in my CI jobs even for qemuarm but then it
was with clang
so it will be good to reproduce it with gcc/qemuarm perhaps. btw what is your
32bit multilib defaultltune in this failing case

>
> On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de> wrote:
> >
> > Import this recipe from meta-wayland, because it is a prerequisite
> > for the Gnome desktop. The recently updated gnome-backgrounds package
> > has converted most of the backgrounds to jxl and to keep them usable
> > the gdk-pixbuf-loader for jpegxl must be provided. This is included
> > in the libjxl package itself.
> >
> > Signed-off-by: Markus Volk <f_l_k@t-online.de>
> > ---
> >  .../libjxl/libjxl_2.10.0.bb                   | 42 +++++++++++++++++++
> >  1 file changed, 42 insertions(+)
> >  create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> >
> > diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> > new file mode 100644
> > index 000000000..0c4f79fdb
> > --- /dev/null
> > +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> > @@ -0,0 +1,42 @@
> > +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)"
> > +HOMEPAGE = "https://github.com/libjxl/libjxl/"
> > +
> > +LICENSE = "BSD-3-Clause"
> > +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f"
> > +
> > +inherit cmake pkgconfig mime
> > +
> > +DEPENDS = "highway brotli"
> > +
> > +SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1"
> > +
> > +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515"
> > +S = "${WORKDIR}/git"
> > +
> > +EXTRA_OECMAKE = " \
> > +       -DCMAKE_BUILD_TYPE=Release \
> > +       -DJPEGXL_ENABLE_PLUGINS=ON \
> > +       -DBUILD_TESTING=OFF \
> > +       -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
> > +       -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \
> > +       -DJPEGXL_ENABLE_SJPEG=OFF \
> > +       -DJPEGXL_ENABLE_BENCHMARK=OFF \
> > +       -DJPEGXL_ENABLE_EXAMPLES=OFF \
> > +       -DJPEGXL_ENABLE_MANPAGES=OFF \
> > +       -DJPEGXL_ENABLE_SKCMS=ON \
> > +       -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
> > +       -DJPEGXL_FORCE_SYSTEM_HWY=ON \
> > +       -DJPEGXL_ENABLE_JNI=OFF \
> > +       -DJPEGXL_ENABLE_TCMALLOC=OFF \
> > +       -DJPEGXL_ENABLE_TOOLS=OFF \
> > +"
> > +
> > +PACKAGECONFIG ?= "mime gdk-pixbuf-loader"
> > +PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf"
> > +PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp"
> > +PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF"
> > +
> > +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
> > +
> > +CXXFLAGS:append:arm = " -mfp16-format=ieee"
> > +
> > --
> > 2.44.0
> >
> >
> >
> >
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#109812): https://lists.openembedded.org/g/openembedded-devel/message/109812
> Mute This Topic: https://lists.openembedded.org/mt/105282918/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Martin Jansa April 5, 2024, 6:55 a.m. UTC | #4
> btw what is your 32bit multilib defaultltune in this failing case

none of the public ones, that's why I wanted to reproduce it with
generic qemuarm first, will trigger the build and report back

On Fri, Apr 5, 2024 at 8:54 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> On Thu, Apr 4, 2024 at 10:55 PM Martin Jansa <martin.jansa@gmail.com> wrote:
> >
> > I'm seeing build failure in 32bit arm builds (with multilib):
> >
> > lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1:
> > error: inlining failed in call to 'always_inline' 'float32x4_t
> > vcvt_f32_f16(float16x4_t)': target specific option mismatch
> >  7526 | vcvt_f32_f16 (float16x4_t __a)
> >       | ^~~~~~~~~~~~
> > In file included from
> > TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
> > TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
> > note: called from here
> >   155 |     return vcvt_f32_f16((float16x4_t)half);
> >       |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
> >
> > should I try to reproduce on some publicly available arm MACHINE (like
> > qemuarm) or is someone else seeing this as well?
>
> This is not seen at least in my CI jobs even for qemuarm but then it
> was with clang
> so it will be good to reproduce it with gcc/qemuarm perhaps. btw what is your
> 32bit multilib defaultltune in this failing case
>
> >
> > On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de> wrote:
> > >
> > > Import this recipe from meta-wayland, because it is a prerequisite
> > > for the Gnome desktop. The recently updated gnome-backgrounds package
> > > has converted most of the backgrounds to jxl and to keep them usable
> > > the gdk-pixbuf-loader for jpegxl must be provided. This is included
> > > in the libjxl package itself.
> > >
> > > Signed-off-by: Markus Volk <f_l_k@t-online.de>
> > > ---
> > >  .../libjxl/libjxl_2.10.0.bb                   | 42 +++++++++++++++++++
> > >  1 file changed, 42 insertions(+)
> > >  create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> > >
> > > diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> > > new file mode 100644
> > > index 000000000..0c4f79fdb
> > > --- /dev/null
> > > +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
> > > @@ -0,0 +1,42 @@
> > > +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)"
> > > +HOMEPAGE = "https://github.com/libjxl/libjxl/"
> > > +
> > > +LICENSE = "BSD-3-Clause"
> > > +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f"
> > > +
> > > +inherit cmake pkgconfig mime
> > > +
> > > +DEPENDS = "highway brotli"
> > > +
> > > +SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1"
> > > +
> > > +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515"
> > > +S = "${WORKDIR}/git"
> > > +
> > > +EXTRA_OECMAKE = " \
> > > +       -DCMAKE_BUILD_TYPE=Release \
> > > +       -DJPEGXL_ENABLE_PLUGINS=ON \
> > > +       -DBUILD_TESTING=OFF \
> > > +       -DJPEGXL_WARNINGS_AS_ERRORS=OFF \
> > > +       -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \
> > > +       -DJPEGXL_ENABLE_SJPEG=OFF \
> > > +       -DJPEGXL_ENABLE_BENCHMARK=OFF \
> > > +       -DJPEGXL_ENABLE_EXAMPLES=OFF \
> > > +       -DJPEGXL_ENABLE_MANPAGES=OFF \
> > > +       -DJPEGXL_ENABLE_SKCMS=ON \
> > > +       -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
> > > +       -DJPEGXL_FORCE_SYSTEM_HWY=ON \
> > > +       -DJPEGXL_ENABLE_JNI=OFF \
> > > +       -DJPEGXL_ENABLE_TCMALLOC=OFF \
> > > +       -DJPEGXL_ENABLE_TOOLS=OFF \
> > > +"
> > > +
> > > +PACKAGECONFIG ?= "mime gdk-pixbuf-loader"
> > > +PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf"
> > > +PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp"
> > > +PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF"
> > > +
> > > +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
> > > +
> > > +CXXFLAGS:append:arm = " -mfp16-format=ieee"
> > > +
> > > --
> > > 2.44.0
> > >
> > >
> > >
> > >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#109812): https://lists.openembedded.org/g/openembedded-devel/message/109812
> > Mute This Topic: https://lists.openembedded.org/mt/105282918/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Martin Jansa April 5, 2024, 7:13 a.m. UTC | #5
qemuarm build log:
http://errors.yoctoproject.org/Errors/Details/761504/

shows -mfpu=neon was already used.

FAILED: lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
--sysroot=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot
-DFJXL_ENABLE_AVX512=0
-DHWY_DISABLED_TARGETS="(HWY_SSSE3|HWY_AVX3|HWY_AVX3_SPR|HWY_AVX3_ZEN4)"
-D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\"
-D__TIME__=\"redacted\" -Djxl_cms_EXPORTS
-ITOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git
-ITOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms
-isystem TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build/lib/include
-mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64
-D_FILE_OFFSET_BITS=64
--sysroot=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot
 -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map
-fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=/usr/src/debug/libjxl/0.10.2
 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=/usr/src/debug/libjxl/0.10.2
 -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build=/usr/src/debug/libjxl/0.10.2
 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build=/usr/src/debug/libjxl/0.10.2
 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot=
 -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot=
 -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native=
 -fvisibility-inlines-hidden -mfp16-format=ieee -fno-rtti -DNDEBUG
-std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
-fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=.
-funwind-tables -fno-omit-frame-pointer -Wno-builtin-macro-redefined
-Wall -fmerge-all-constants -fno-builtin-fwrite -fno-builtin-fread
-Wextra -Wc++11-compat -Warray-bounds -Wformat-security
-Wimplicit-fallthrough -Wno-register -Wno-unused-function
-Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wvla
-fsized-deallocation -fno-exceptions -fmath-errno
-DJPEGXL_ENABLE_SKCMS=1 -DHWY_STATIC_DEFINE -Wno-psabi -MD -MT
lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o -MF
lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o.d -o
lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o -c
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc
In file included from
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc:18:
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.0.1/include/arm_neon.h:
In function 'baseline::F baseline::F_from_Half(U16)':
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.0.1/include/arm_neon.h:7526:1:
error: inlining failed in call to 'always_inline' 'float32x4_t
vcvt_f32_f16(float16x4_t)': target specific option mismatch
 7526 | vcvt_f32_f16 (float16x4_t __a)
      | ^~~~~~~~~~~~
In file included from
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
note: called from here
  155 |     return vcvt_f32_f16((float16x4_t)half);
      |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~

On Fri, Apr 5, 2024 at 8:48 AM <f_l_k@t-online.de> wrote:
>
> Does this also happen if you add '-mfpu=neon' to CXXFLAGS ?
>
> On Fri, Apr 5 2024 at 07:54:47 AM +02:00:00, Martin Jansa <martin.jansa@gmail.com> wrote:
>
> I'm seeing build failure in 32bit arm builds (with multilib): lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1: error: inlining failed in call to 'always_inline' 'float32x4_t vcvt_f32_f16(float16x4_t)': target specific option mismatch 7526 | vcvt_f32_f16 (float16x4_t __a) | ^~~~~~~~~~~~ In file included from TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315: TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24: note: called from here 155 | return vcvt_f32_f16((float16x4_t)half); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ should I try to reproduce on some publicly available arm MACHINE (like qemuarm) or is someone else seeing this as well? On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de> wrote:
>
> Import this recipe from meta-wayland, because it is a prerequisite for the Gnome desktop. The recently updated gnome-backgrounds package has converted most of the backgrounds to jxl and to keep them usable the gdk-pixbuf-loader for jpegxl must be provided. This is included in the libjxl package itself. Signed-off-by: Markus Volk <f_l_k@t-online.de> --- .../libjxl/libjxl_2.10.0.bb | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb new file mode 100644 index 000000000..0c4f79fdb --- /dev/null +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)" +HOMEPAGE = "https://github.com/libjxl/libjxl/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f" + +inherit cmake pkgconfig mime + +DEPENDS = "highway brotli" + +SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1" + +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = " \ + -DCMAKE_BUILD_TYPE=Release \ + -DJPEGXL_ENABLE_PLUGINS=ON \ + -DBUILD_TESTING=OFF \ + -DJPEGXL_WARNINGS_AS_ERRORS=OFF \ + -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \ + -DJPEGXL_ENABLE_SJPEG=OFF \ + -DJPEGXL_ENABLE_BENCHMARK=OFF \ + -DJPEGXL_ENABLE_EXAMPLES=OFF \ + -DJPEGXL_ENABLE_MANPAGES=OFF \ + -DJPEGXL_ENABLE_SKCMS=ON \ + -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \ + -DJPEGXL_FORCE_SYSTEM_HWY=ON \ + -DJPEGXL_ENABLE_JNI=OFF \ + -DJPEGXL_ENABLE_TCMALLOC=OFF \ + -DJPEGXL_ENABLE_TOOLS=OFF \ +" + +PACKAGECONFIG ?= "mime gdk-pixbuf-loader" +PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf" +PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp" +PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF" + +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}" + +CXXFLAGS:append:arm = " -mfp16-format=ieee" + -- 2.44.0 -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#109774): https://lists.openembedded.org/g/openembedded-devel/message/109774 Mute This Topic: https://lists.openembedded.org/mt/105282918/3617156 Group Owner: openembedded-devel+owner@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [martin.jansa@gmail.com] -=-=-=-=-=-=-=-=-=-=-=-
Khem Raj April 5, 2024, 3:17 p.m. UTC | #6
Can you try to comment out

   CXXFLAGS:append:arm = " -mfp16-format=ieee"

for a test ?

On Fri, Apr 5, 2024 at 12:13 AM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> qemuarm build log:
> http://errors.yoctoproject.org/Errors/Details/761504/
>
> shows -mfpu=neon was already used.
>
> FAILED: lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
> --sysroot=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot
> -DFJXL_ENABLE_AVX512=0
> -DHWY_DISABLED_TARGETS="(HWY_SSSE3|HWY_AVX3|HWY_AVX3_SPR|HWY_AVX3_ZEN4)"
> -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\"
> -D__TIME__=\"redacted\" -Djxl_cms_EXPORTS
> -ITOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git
> -ITOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms
> -isystem TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build/lib/include
> -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64
> -D_FILE_OFFSET_BITS=64
> --sysroot=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot
>  -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map
> -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=/usr/src/debug/libjxl/0.10.2
>  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=/usr/src/debug/libjxl/0.10.2
>  -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build=/usr/src/debug/libjxl/0.10.2
>  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build=/usr/src/debug/libjxl/0.10.2
>  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot=
>  -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot=
>  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native=
>  -fvisibility-inlines-hidden -mfp16-format=ieee -fno-rtti -DNDEBUG
> -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
> -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=.
> -funwind-tables -fno-omit-frame-pointer -Wno-builtin-macro-redefined
> -Wall -fmerge-all-constants -fno-builtin-fwrite -fno-builtin-fread
> -Wextra -Wc++11-compat -Warray-bounds -Wformat-security
> -Wimplicit-fallthrough -Wno-register -Wno-unused-function
> -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wvla
> -fsized-deallocation -fno-exceptions -fmath-errno
> -DJPEGXL_ENABLE_SKCMS=1 -DHWY_STATIC_DEFINE -Wno-psabi -MD -MT
> lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o -MF
> lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o.d -o
> lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o -c
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc
> In file included from
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc:18:
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.0.1/include/arm_neon.h:
> In function 'baseline::F baseline::F_from_Half(U16)':
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.0.1/include/arm_neon.h:7526:1:
> error: inlining failed in call to 'always_inline' 'float32x4_t
> vcvt_f32_f16(float16x4_t)': target specific option mismatch
>  7526 | vcvt_f32_f16 (float16x4_t __a)
>       | ^~~~~~~~~~~~
> In file included from
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
> TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
> note: called from here
>   155 |     return vcvt_f32_f16((float16x4_t)half);
>       |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
>
> On Fri, Apr 5, 2024 at 8:48 AM <f_l_k@t-online.de> wrote:
> >
> > Does this also happen if you add '-mfpu=neon' to CXXFLAGS ?
> >
> > On Fri, Apr 5 2024 at 07:54:47 AM +02:00:00, Martin Jansa <martin.jansa@gmail.com> wrote:
> >
> > I'm seeing build failure in 32bit arm builds (with multilib): lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1: error: inlining failed in call to 'always_inline' 'float32x4_t vcvt_f32_f16(float16x4_t)': target specific option mismatch 7526 | vcvt_f32_f16 (float16x4_t __a) | ^~~~~~~~~~~~ In file included from TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315: TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24: note: called from here 155 | return vcvt_f32_f16((float16x4_t)half); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ should I try to reproduce on some publicly available arm MACHINE (like qemuarm) or is someone else seeing this as well? On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de> wrote:
> >
> > Import this recipe from meta-wayland, because it is a prerequisite for the Gnome desktop. The recently updated gnome-backgrounds package has converted most of the backgrounds to jxl and to keep them usable the gdk-pixbuf-loader for jpegxl must be provided. This is included in the libjxl package itself. Signed-off-by: Markus Volk <f_l_k@t-online.de> --- .../libjxl/libjxl_2.10.0.bb | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb new file mode 100644 index 000000000..0c4f79fdb --- /dev/null +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)" +HOMEPAGE = "https://github.com/libjxl/libjxl/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f" + +inherit cmake pkgconfig mime + +DEPENDS = "highway brotli" + +SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1" + +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = " \ + -DCMAKE_BUILD_TYPE=Release \ + -DJPEGXL_ENABLE_PLUGINS=ON \ + -DBUILD_TESTING=OFF \ + -DJPEGXL_WARNINGS_AS_ERRORS=OFF \ + -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \ + -DJPEGXL_ENABLE_SJPEG=OFF \ + -DJPEGXL_ENABLE_BENCHMARK=OFF \ + -DJPEGXL_ENABLE_EXAMPLES=OFF \ + -DJPEGXL_ENABLE_MANPAGES=OFF \ + -DJPEGXL_ENABLE_SKCMS=ON \ + -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \ + -DJPEGXL_FORCE_SYSTEM_HWY=ON \ + -DJPEGXL_ENABLE_JNI=OFF \ + -DJPEGXL_ENABLE_TCMALLOC=OFF \ + -DJPEGXL_ENABLE_TOOLS=OFF \ +" + +PACKAGECONFIG ?= "mime gdk-pixbuf-loader" +PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf" +PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp" +PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF" + +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}" + +CXXFLAGS:append:arm = " -mfp16-format=ieee" + -- 2.44.0
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#109816): https://lists.openembedded.org/g/openembedded-devel/message/109816
> Mute This Topic: https://lists.openembedded.org/mt/105282918/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Martin Jansa April 6, 2024, 8:10 a.m. UTC | #7
On Fri, Apr 5, 2024 at 5:18 PM Khem Raj <raj.khem@gmail.com> wrote:
>
> Can you try to comment out
>
>    CXXFLAGS:append:arm = " -mfp16-format=ieee"
>
> for a test ?

Yes, that fixes the build on qemuarm.

> On Fri, Apr 5, 2024 at 12:13 AM Martin Jansa <martin.jansa@gmail.com> wrote:
> >
> > qemuarm build log:
> > http://errors.yoctoproject.org/Errors/Details/761504/
> >
> > shows -mfpu=neon was already used.
> >
> > FAILED: lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-g++
> > --sysroot=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot
> > -DFJXL_ENABLE_AVX512=0
> > -DHWY_DISABLED_TARGETS="(HWY_SSSE3|HWY_AVX3|HWY_AVX3_SPR|HWY_AVX3_ZEN4)"
> > -D__DATE__=\"redacted\" -D__TIMESTAMP__=\"redacted\"
> > -D__TIME__=\"redacted\" -Djxl_cms_EXPORTS
> > -ITOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git
> > -ITOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms
> > -isystem TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build/lib/include
> > -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a15 -D_TIME_BITS=64
> > -D_FILE_OFFSET_BITS=64
> > --sysroot=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot
> >  -O2 -pipe -g -feliminate-unused-debug-types -fcanon-prefix-map
> > -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=/usr/src/debug/libjxl/0.10.2
> >  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=/usr/src/debug/libjxl/0.10.2
> >  -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build=/usr/src/debug/libjxl/0.10.2
> >  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/build=/usr/src/debug/libjxl/0.10.2
> >  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot=
> >  -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot=
> >  -fdebug-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native=
> >  -fvisibility-inlines-hidden -mfp16-format=ieee -fno-rtti -DNDEBUG
> > -std=c++11 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden
> > -fmacro-prefix-map=TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git=.
> > -funwind-tables -fno-omit-frame-pointer -Wno-builtin-macro-redefined
> > -Wall -fmerge-all-constants -fno-builtin-fwrite -fno-builtin-fread
> > -Wextra -Wc++11-compat -Warray-bounds -Wformat-security
> > -Wimplicit-fallthrough -Wno-register -Wno-unused-function
> > -Wno-unused-parameter -Wnon-virtual-dtor -Woverloaded-virtual -Wvla
> > -fsized-deallocation -fno-exceptions -fmath-errno
> > -DJPEGXL_ENABLE_SKCMS=1 -DHWY_STATIC_DEFINE -Wno-psabi -MD -MT
> > lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o -MF
> > lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o.d -o
> > lib/CMakeFiles/jxl_cms.dir/__/third_party/skcms/skcms.cc.o -c
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc
> > In file included from
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc:18:
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.0.1/include/arm_neon.h:
> > In function 'baseline::F baseline::F_from_Half(U16)':
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oe-linux-gnueabi/gcc/arm-oe-linux-gnueabi/14.0.1/include/arm_neon.h:7526:1:
> > error: inlining failed in call to 'always_inline' 'float32x4_t
> > vcvt_f32_f16(float16x4_t)': target specific option mismatch
> >  7526 | vcvt_f32_f16 (float16x4_t __a)
> >       | ^~~~~~~~~~~~
> > In file included from
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315:
> > TOPDIR/tmp-glibc/work/cortexa15t2hf-neon-oe-linux-gnueabi/libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24:
> > note: called from here
> >   155 |     return vcvt_f32_f16((float16x4_t)half);
> >       |            ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
> >
> > On Fri, Apr 5, 2024 at 8:48 AM <f_l_k@t-online.de> wrote:
> > >
> > > Does this also happen if you add '-mfpu=neon' to CXXFLAGS ?
> > >
> > > On Fri, Apr 5 2024 at 07:54:47 AM +02:00:00, Martin Jansa <martin.jansa@gmail.com> wrote:
> > >
> > > I'm seeing build failure in 32bit arm builds (with multilib): lib32-libjxl/0.10.2/recipe-sysroot-native/usr/lib/arm-oemllib32-linux-gnueabi/gcc/arm-oemllib32-linux-gnueabi/13.2.0/include/arm_neon.h:7526:1: error: inlining failed in call to 'always_inline' 'float32x4_t vcvt_f32_f16(float16x4_t)': target specific option mismatch 7526 | vcvt_f32_f16 (float16x4_t __a) | ^~~~~~~~~~~~ In file included from TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/skcms.cc:2315: TOPDIR/BUILD/work/mach-oemllib32-linux-gnueabi/lib32-libjxl/0.10.2/git/third_party/skcms/src/Transform_inl.h:155:24: note: called from here 155 | return vcvt_f32_f16((float16x4_t)half); | ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ should I try to reproduce on some publicly available arm MACHINE (like qemuarm) or is someone else seeing this as well? On Tue, Apr 2, 2024 at 7:50 AM Markus Volk <f_l_k@t-online.de> wrote:
> > >
> > > Import this recipe from meta-wayland, because it is a prerequisite for the Gnome desktop. The recently updated gnome-backgrounds package has converted most of the backgrounds to jxl and to keep them usable the gdk-pixbuf-loader for jpegxl must be provided. This is included in the libjxl package itself. Signed-off-by: Markus Volk <f_l_k@t-online.de> --- .../libjxl/libjxl_2.10.0.bb | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb new file mode 100644 index 000000000..0c4f79fdb --- /dev/null +++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb @@ -0,0 +1,42 @@ +SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)" +HOMEPAGE = "https://github.com/libjxl/libjxl/" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f" + +inherit cmake pkgconfig mime + +DEPENDS = "highway brotli" + +SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1" + +SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515" +S = "${WORKDIR}/git" + +EXTRA_OECMAKE = " \ + -DCMAKE_BUILD_TYPE=Release \ + -DJPEGXL_ENABLE_PLUGINS=ON \ + -DBUILD_TESTING=OFF \ + -DJPEGXL_WARNINGS_AS_ERRORS=OFF \ + -DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \ + -DJPEGXL_ENABLE_SJPEG=OFF \ + -DJPEGXL_ENABLE_BENCHMARK=OFF \ + -DJPEGXL_ENABLE_EXAMPLES=OFF \ + -DJPEGXL_ENABLE_MANPAGES=OFF \ + -DJPEGXL_ENABLE_SKCMS=ON \ + -DJPEGXL_FORCE_SYSTEM_BROTLI=ON \ + -DJPEGXL_FORCE_SYSTEM_HWY=ON \ + -DJPEGXL_ENABLE_JNI=OFF \ + -DJPEGXL_ENABLE_TCMALLOC=OFF \ + -DJPEGXL_ENABLE_TOOLS=OFF \ +" + +PACKAGECONFIG ?= "mime gdk-pixbuf-loader" +PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf" +PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp" +PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF" + +FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}" + +CXXFLAGS:append:arm = " -mfp16-format=ieee" + -- 2.44.0
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#109816): https://lists.openembedded.org/g/openembedded-devel/message/109816
> > Mute This Topic: https://lists.openembedded.org/mt/105282918/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
diff mbox series

Patch

diff --git a/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
new file mode 100644
index 000000000..0c4f79fdb
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libjxl/libjxl_2.10.0.bb
@@ -0,0 +1,42 @@ 
+SUMMARY = "Reference implementation of JPEG XL (encoder and decoder)"
+HOMEPAGE = "https://github.com/libjxl/libjxl/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6a905a337cc228a1f68f0b5416f52a7f"
+
+inherit cmake pkgconfig mime
+
+DEPENDS = "highway brotli"
+
+SRC_URI = "gitsm://github.com/libjxl/libjxl.git;protocol=https;nobranch=1"
+
+SRCREV = "e1489592a770b989303b0edc5cc1dc447bbe0515"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+	-DCMAKE_BUILD_TYPE=Release \
+	-DJPEGXL_ENABLE_PLUGINS=ON \
+	-DBUILD_TESTING=OFF \
+	-DJPEGXL_WARNINGS_AS_ERRORS=OFF \
+	-DJPEGXL_ENABLE_SIZELESS_VECTORS=ON \
+	-DJPEGXL_ENABLE_SJPEG=OFF \
+	-DJPEGXL_ENABLE_BENCHMARK=OFF \
+	-DJPEGXL_ENABLE_EXAMPLES=OFF \
+	-DJPEGXL_ENABLE_MANPAGES=OFF \
+	-DJPEGXL_ENABLE_SKCMS=ON \
+	-DJPEGXL_FORCE_SYSTEM_BROTLI=ON \
+	-DJPEGXL_FORCE_SYSTEM_HWY=ON \
+	-DJPEGXL_ENABLE_JNI=OFF \
+	-DJPEGXL_ENABLE_TCMALLOC=OFF \
+	-DJPEGXL_ENABLE_TOOLS=OFF \
+"
+
+PACKAGECONFIG ?= "mime gdk-pixbuf-loader"
+PACKAGECONFIG[gdk-pixbuf-loader] = "-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=ON,-DJPEGXL_ENABLE_PLUGIN_GDKPIXBUF=OFF,gdk-pixbuf"
+PACKAGECONFIG[gimp] = "-DJPEGXL_ENABLE_PLUGIN_GIMP210=ON,-DJPEGXL_ENABLE_PLUGIN_GIMP210=OFF,gimp"
+PACKAGECONFIG[mime] = "-DJPEGXL_ENABLE_PLUGIN_MIME=ON,-DJPEGXL_ENABLE_PLUGIN_MIME=OFF"
+
+FILES:${PN} += "${libdir}/gdk-pixbuf-2.0 ${datadir}"
+
+CXXFLAGS:append:arm = " -mfp16-format=ieee"
+