| Message ID | 20260203155342.3393711-1-skandigraun@gmail.com |
|---|---|
| State | New |
| Headers | show |
| Series | [meta-gnome,whinlatter] gimp: patch libunwind detection | expand |
On Wed, Feb 4, 2026 at 4:53 AM Gyorgy Sarvari via lists.openembedded.org <skandigraun=gmail.com@lists.openembedded.org> wrote: > > Gimp 3.0.8's meson file detects the presence of libunwind incorrectly, > making it fail on some platforms, even when libunwind is explicitly disabled: > > | <snip>i686-oe-linux-musl-ld: app/core/libappcore.a.p/gimpbacktrace-linux.c.o: in function `gimp_backtrace_get_address_info': > | /usr/src/debug/gimp/3.0.8/../sources/gimp-3.0.8/app/core/gimpbacktrace-linux.c:708:(.text+0xbd7): undefined reference to `_ULx86_init_local' > > This backported patch fixes this. > > Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> > --- > ...ind-header-detection-on-non-macOS-pl.patch | 51 +++++++++++++++++++ > meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb | 1 + > 2 files changed, 52 insertions(+) > create mode 100644 meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch > > diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch b/meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch > new file mode 100644 > index 0000000000..879529b80e > --- /dev/null > +++ b/meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch > @@ -0,0 +1,51 @@ > +From 8862f36fcec74152afeee2a99c0e04b84b6cf5b3 Mon Sep 17 00:00:00 2001 > +From: Bruno Lopes <brunvonlope@outlook.com> > +Date: Sun, 25 Jan 2026 11:11:48 -0300 > +Subject: [PATCH] meson: Fix libunwind header detection on non-macOS platforms > + > +Closes: #15750 > + > +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gimp/-/commit/1aa51ca0637db88a4ea958d03fa6692e6ac0289b] > +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> > +--- > + meson.build | 17 ++++++++++------- > + 1 file changed, 10 insertions(+), 7 deletions(-) > + > +diff --git a/meson.build b/meson.build > +index 2192968..cfa1f71 100644 > +--- a/meson.build > ++++ b/meson.build > +@@ -731,11 +731,14 @@ conf.set('HAVE_LIBBACKTRACE', libbacktrace.found()) > + ## Check for libunwind > + # In most platforms, unw_*() functions are in the libunwind library. > + # In macOS, it is on libSystem (there we only need the SDK header). > +-libunwind = ( get_option('libunwind') > +- ? dependency('libunwind', version: '>=1.1.0', required: false) > +- : no_dep > +-) > +-have_unwind = libunwind.found() or cc.has_header('libunwind.h', required: false) > ++libunwind = no_dep > ++if get_option('libunwind') > ++ libunwind = dependency('libunwind', version: '>=1.1.0', required: false) > ++ libunwind_h = platform_osx ? cc.has_header('libunwind.h', required: false) : false > ++ have_unwind = libunwind.found() or libunwind_h > ++else > ++ have_unwind = false > ++endif > + conf.set('HAVE_LIBUNWIND', have_unwind ? 1 : false) > + > + ## Check for backtrace() API > +@@ -758,11 +761,11 @@ if platform_windows > + elif platform_linux > + if not have_execinfo_h > + dashboard_backtrace='no (missing: execinfo.h)' > +- elif not libbacktrace.found() and not libunwind.found() > ++ elif not libbacktrace.found() and not have_unwind > + dashboard_backtrace='rough (missing: libbacktrace and libunwind)' > + elif not libbacktrace.found() > + dashboard_backtrace='partially detailed (missing: libbacktrace)' > +- elif not libunwind.found() > ++ elif not have_unwind > + dashboard_backtrace='partially detailed (missing: libunwind)' > + else > + dashboard_backtrace='detailed' > diff --git a/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb b/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb > index 863d9a1667..860fb5d26b 100644 > --- a/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb > +++ b/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb > @@ -60,6 +60,7 @@ SRC_URI = "https://download.gimp.org/gimp/v3.0/${BP}.tar.xz \ > file://0002-meson.build-reproducibility-fix.patch \ > file://0001-meson.build-dont-check-for-lgi.patch \ > file://0001-meson.build-require-iso-codes-native.patch \ > + file://0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch \ > " > SRC_URI[sha256sum] = "feb498acc01b26827cff1ff95aa8fb82cdd6a60d7abf773cfcd19abeafca3386" > > Thanks for the patch, LGTM Reviewed-by: Ankur Tyagi <ankur.tyagi85@gmail.com> > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#124100): https://lists.openembedded.org/g/openembedded-devel/message/124100 > Mute This Topic: https://lists.openembedded.org/mt/117617793/3619737 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ankur.tyagi85@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch b/meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch new file mode 100644 index 0000000000..879529b80e --- /dev/null +++ b/meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch @@ -0,0 +1,51 @@ +From 8862f36fcec74152afeee2a99c0e04b84b6cf5b3 Mon Sep 17 00:00:00 2001 +From: Bruno Lopes <brunvonlope@outlook.com> +Date: Sun, 25 Jan 2026 11:11:48 -0300 +Subject: [PATCH] meson: Fix libunwind header detection on non-macOS platforms + +Closes: #15750 + +Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gimp/-/commit/1aa51ca0637db88a4ea958d03fa6692e6ac0289b] +Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> +--- + meson.build | 17 ++++++++++------- + 1 file changed, 10 insertions(+), 7 deletions(-) + +diff --git a/meson.build b/meson.build +index 2192968..cfa1f71 100644 +--- a/meson.build ++++ b/meson.build +@@ -731,11 +731,14 @@ conf.set('HAVE_LIBBACKTRACE', libbacktrace.found()) + ## Check for libunwind + # In most platforms, unw_*() functions are in the libunwind library. + # In macOS, it is on libSystem (there we only need the SDK header). +-libunwind = ( get_option('libunwind') +- ? dependency('libunwind', version: '>=1.1.0', required: false) +- : no_dep +-) +-have_unwind = libunwind.found() or cc.has_header('libunwind.h', required: false) ++libunwind = no_dep ++if get_option('libunwind') ++ libunwind = dependency('libunwind', version: '>=1.1.0', required: false) ++ libunwind_h = platform_osx ? cc.has_header('libunwind.h', required: false) : false ++ have_unwind = libunwind.found() or libunwind_h ++else ++ have_unwind = false ++endif + conf.set('HAVE_LIBUNWIND', have_unwind ? 1 : false) + + ## Check for backtrace() API +@@ -758,11 +761,11 @@ if platform_windows + elif platform_linux + if not have_execinfo_h + dashboard_backtrace='no (missing: execinfo.h)' +- elif not libbacktrace.found() and not libunwind.found() ++ elif not libbacktrace.found() and not have_unwind + dashboard_backtrace='rough (missing: libbacktrace and libunwind)' + elif not libbacktrace.found() + dashboard_backtrace='partially detailed (missing: libbacktrace)' +- elif not libunwind.found() ++ elif not have_unwind + dashboard_backtrace='partially detailed (missing: libunwind)' + else + dashboard_backtrace='detailed' diff --git a/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb b/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb index 863d9a1667..860fb5d26b 100644 --- a/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb +++ b/meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb @@ -60,6 +60,7 @@ SRC_URI = "https://download.gimp.org/gimp/v3.0/${BP}.tar.xz \ file://0002-meson.build-reproducibility-fix.patch \ file://0001-meson.build-dont-check-for-lgi.patch \ file://0001-meson.build-require-iso-codes-native.patch \ + file://0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch \ " SRC_URI[sha256sum] = "feb498acc01b26827cff1ff95aa8fb82cdd6a60d7abf773cfcd19abeafca3386"
Gimp 3.0.8's meson file detects the presence of libunwind incorrectly, making it fail on some platforms, even when libunwind is explicitly disabled: | <snip>i686-oe-linux-musl-ld: app/core/libappcore.a.p/gimpbacktrace-linux.c.o: in function `gimp_backtrace_get_address_info': | /usr/src/debug/gimp/3.0.8/../sources/gimp-3.0.8/app/core/gimpbacktrace-linux.c:708:(.text+0xbd7): undefined reference to `_ULx86_init_local' This backported patch fixes this. Signed-off-by: Gyorgy Sarvari <skandigraun@gmail.com> --- ...ind-header-detection-on-non-macOS-pl.patch | 51 +++++++++++++++++++ meta-gnome/recipes-gimp/gimp/gimp_3.0.8.bb | 1 + 2 files changed, 52 insertions(+) create mode 100644 meta-gnome/recipes-gimp/gimp/gimp/0001-meson-Fix-libunwind-header-detection-on-non-macOS-pl.patch