diff mbox series

[1/1] package/at-spi2-core: propagate dynamic library dependency

Message ID 20230916154940.746749-1-fontaine.fabrice@gmail.com
State New
Headers show
Series [1/1] package/at-spi2-core: propagate dynamic library dependency | expand

Commit Message

Fabrice Fontaine Sept. 16, 2023, 3:49 p.m. UTC
Fix the following build failure raised since bump of at-spi2-core to
version 2.48.0 in commit d1757fdfb0010d29f20cd68cb6e16f019e236424:

Makefile:576: *** dbus is in the dependency chain of at-spi2-core that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in.  Stop.

Fixes:
 - http://autobuild.buildroot.org/results/511a682abd233ba90543044fd9102dc08c762f78

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
 package/atkmm/Config.in        | 6 ++++--
 package/atkmm2_28/Config.in    | 6 ++++--
 package/gkrellm/Config.in      | 6 ++++--
 package/gtkmm3/Config.in       | 5 +++--
 package/libfm/Config.in        | 5 +++--
 package/libglade/Config.in     | 6 ++++--
 package/libgtk2/Config.in      | 5 +++--
 package/libgtk3/Config.in      | 5 +++--
 package/pcmanfm/Config.in      | 5 +++--
 package/pinentry/Config.in     | 5 +++--
 package/vte/Config.in          | 5 +++--
 package/xscreensaver/Config.in | 5 +++--
 12 files changed, 40 insertions(+), 24 deletions(-)

Comments

Daniel Lang Sept. 19, 2023, 4:42 a.m. UTC | #1
Hi Fabrice,

On 16.09.23 17:49, Fabrice Fontaine wrote:
> Fix the following build failure raised since bump of at-spi2-core to
> version 2.48.0 in commit d1757fdfb0010d29f20cd68cb6e16f019e236424:
>
> Makefile:576: *** dbus is in the dependency chain of at-spi2-core that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in.  Stop.

Thanks for looking into this.
I'm not sure adding this dependency is the best approach,
as it would require propagating it to everything that uses libgtk3,
which you didn't do, if I understand this patch correctly.

I would like to propose another solution, that would fix the problem:
Some weeks ago I send in a patch [0] to at-spi2-core that makes it possible
to deselect the runtime module needed by GTK2. This module is always compiled
as library and seems to be the only thing that would force "depends on !BR2_STATIC_LIBS".

So my proposal would be to only add the "depends..." if LIBGTK2 is selected and
use the patch to exclude the runtime module. With this we only need to propagate
it to LIBGTK2.

Version 2.50 was released in the mean time, which contains the mentioned patch.
For stable branches the patch is needed.

>
> Fixes:
>  - http://autobuild.buildroot.org/results/511a682abd233ba90543044fd9102dc08c762f78
>

Please add, if okay with Bernd, see [1]:

Reported-by: Bernd Kuhls <bernd@kuhls.net>

Regards
Daniel

[0]: https://gitlab.gnome.org/GNOME/at-spi2-core/-/commit/520a7b16b0093a965542a3880b2e3b276fbe06d8
[1]: http://lists.busybox.net/pipermail/buildroot/2023-June/669401.html
Fabrice Fontaine Sept. 19, 2023, 6:22 a.m. UTC | #2
Hi Daniel,

Le mar. 19 sept. 2023 à 06:42, Daniel Lang <dalang@gmx.at> a écrit :

> Hi Fabrice,
>
> On 16.09.23 17:49, Fabrice Fontaine wrote:
> > Fix the following build failure raised since bump of at-spi2-core to
> > version 2.48.0 in commit d1757fdfb0010d29f20cd68cb6e16f019e236424:
> >
> > Makefile:576: *** dbus is in the dependency chain of at-spi2-core that
> has added it to its _DEPENDENCIES variable without selecting it or
> depending on it from Config.in.  Stop.
>
> Thanks for looking into this.
> I'm not sure adding this dependency is the best approach,
> as it would require propagating it to everything that uses libgtk3,
> which you didn't do, if I understand this patch correctly.
>

If I didn't miss something, the only package that has a mandatory
dependency to libgtk3 is vte which is updated by this patch.
Packages depending on libgtk2 have also been updated (e.g. gkrellm,
pcmanfm).


>
> I would like to propose another solution, that would fix the problem:
> Some weeks ago I send in a patch [0] to at-spi2-core that makes it possible
> to deselect the runtime module needed by GTK2. This module is always
> compiled
> as library and seems to be the only thing that would force "depends on
> !BR2_STATIC_LIBS".
>
> So my proposal would be to only add the "depends..." if LIBGTK2 is
> selected and
> use the patch to exclude the runtime module. With this we only need to
> propagate
> it to LIBGTK2.
>
> Version 2.50 was released in the mean time, which contains the mentioned
> patch.
> For stable branches the patch is needed.
>

If you can drop the dynamic library dependency from at-spi2-core, feel free
to send another patch.


>
> >
> > Fixes:
> >  -
> http://autobuild.buildroot.org/results/511a682abd233ba90543044fd9102dc08c762f78
> >
>
> Please add, if okay with Bernd, see [1]:
>
> Reported-by: Bernd Kuhls <bernd@kuhls.net>
>
> Regards
> Daniel
>
> [0]:
> https://gitlab.gnome.org/GNOME/at-spi2-core/-/commit/520a7b16b0093a965542a3880b2e3b276fbe06d8
> [1]: http://lists.busybox.net/pipermail/buildroot/2023-June/669401.html


Best Regards,

Fabrice
Daniel Lang Sept. 20, 2023, 3:51 a.m. UTC | #3
Hi Fabrice,

On 19.09.23 08:22, Fabrice Fontaine wrote:
> Hi Daniel,
>
> Le mar. 19 sept. 2023 à 06:42, Daniel Lang <dalang@gmx.at <mailto:dalang@gmx.at>> a écrit :
>
>     Hi Fabrice,
>
>     On 16.09.23 17:49, Fabrice Fontaine wrote:
>     > Fix the following build failure raised since bump of at-spi2-core to
>     > version 2.48.0 in commit d1757fdfb0010d29f20cd68cb6e16f019e236424:
>     >
>     > Makefile:576: *** dbus is in the dependency chain of at-spi2-core that has added it to its _DEPENDENCIES variable without selecting it or depending on it from Config.in.  Stop.
>
>     Thanks for looking into this.
>     I'm not sure adding this dependency is the best approach,
>     as it would require propagating it to everything that uses libgtk3,
>     which you didn't do, if I understand this patch correctly.
>
>
> If I didn't miss something, the only package that has a mandatory dependency to libgtk3 is vte which is updated by this patch.
> Packages depending on libgtk2 have also been updated (e.g. gkrellm, pcmanfm).

You are right, my bad.

>  
>
>
>     I would like to propose another solution, that would fix the problem:
>     Some weeks ago I send in a patch [0] to at-spi2-core that makes it possible
>     to deselect the runtime module needed by GTK2. This module is always compiled
>     as library and seems to be the only thing that would force "depends on !BR2_STATIC_LIBS".
>
>     So my proposal would be to only add the "depends..." if LIBGTK2 is selected and
>     use the patch to exclude the runtime module. With this we only need to propagate
>     it to LIBGTK2.
>
>     Version 2.50 was released in the mean time, which contains the mentioned patch.
>     For stable branches the patch is needed.
>
>
> If you can drop the dynamic library dependency from at-spi2-core, feel free to send another patch.

I'm not able to drop the dependency completely.
But the set of affected packages would drop from 12 to 7.
atkmm, atkmm2_28, gtkmm3, libgtk3, vte would not be changed.

I'm not quiet sure what the best approach would be to also make it
viable for stable branches.
My proposal needs a patch [0], which removes the runtime library.
Not sure that patch should be picked up by stable.
For master the patch isn't needed, a bump to 2.50 includes it.

So I guess there are two options:
1. Use this patch for master and stable. Bump and drop dynamic library
dependency later.
2. Use this patch for stable only. Bump and drop dynamic library
dependency directly.

Only opinions?

Regards, Daniel

[0]: https://gitlab.gnome.org/GNOME/at-spi2-core/-/commit/520a7b16b0093a965542a3880b2e3b276fbe06d8
Arnout Vandecappelle July 12, 2024, 8:08 p.m. UTC | #4
Hi all,

On 20/09/2023 05:51, Daniel Lang wrote:
> Hi Fabrice,
> 
> On 19.09.23 08:22, Fabrice Fontaine wrote:
>> Hi Daniel,
>>
>> Le mar. 19 sept. 2023 à 06:42, Daniel Lang <dalang@gmx.at <mailto:dalang@gmx.at>> a écrit :

[snip]
>>      I would like to propose another solution, that would fix the problem:
>>      Some weeks ago I send in a patch [0] to at-spi2-core that makes it possible
>>      to deselect the runtime module needed by GTK2. This module is always compiled
>>      as library and seems to be the only thing that would force "depends on !BR2_STATIC_LIBS".
>>
>>      So my proposal would be to only add the "depends..." if LIBGTK2 is selected and
>>      use the patch to exclude the runtime module. With this we only need to propagate
>>      it to LIBGTK2.
>>
>>      Version 2.50 was released in the mean time, which contains the mentioned patch.
>>      For stable branches the patch is needed.
>>
>>
>> If you can drop the dynamic library dependency from at-spi2-core, feel free to send another patch.
> 
> I'm not able to drop the dependency completely.
> But the set of affected packages would drop from 12 to 7.
> atkmm, atkmm2_28, gtkmm3, libgtk3, vte would not be changed.

  We're months later, the bump to 2.50.0 has been merged, so it should be 
possible now to drop the dependency on !STATIC, right? IIUC it takes a little 
more effort because we also need a way to enable/disable the gtk2_atk_adaptor 
option...

  Regards,
  Arnout

> I'm not quiet sure what the best approach would be to also make it
> viable for stable branches.
> My proposal needs a patch [0], which removes the runtime library.
> Not sure that patch should be picked up by stable.
> For master the patch isn't needed, a bump to 2.50 includes it.
> 
> So I guess there are two options:
> 1. Use this patch for master and stable. Bump and drop dynamic library
> dependency later.
> 2. Use this patch for stable only. Bump and drop dynamic library
> dependency directly.
> 
> Only opinions?
> 
> Regards, Daniel
> 
> [0]: https://gitlab.gnome.org/GNOME/at-spi2-core/-/commit/520a7b16b0093a965542a3880b2e3b276fbe06d8
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni July 15, 2024, 6:49 p.m. UTC | #5
On Fri, 12 Jul 2024 22:08:09 +0200
Arnout Vandecappelle via buildroot <buildroot@buildroot.org> wrote:

>   We're months later, the bump to 2.50.0 has been merged, so it should be 
> possible now to drop the dependency on !STATIC, right? IIUC it takes a little 
> more effort because we also need a way to enable/disable the gtk2_atk_adaptor 
> option...

Thing is that I don't see how the gtk2_atk_adaptor option pointed by
Daniel Lang can help, and how it relates to dlopen() being needed or
not.

Indeed, in meson.build, regardless of gtk2_atk_adaptor, I see:

if not get_option('atk_only')
  if cc.has_function('dlopen')
    dl_dep = []
  elif cc.has_function('dlopen', args: '-ldl')
    dl_dep = cc.find_library('dl')
  else
    error('Could not find a library with the dlopen function')
  endif
endif

so unless atk_only is defined, dlopen() will be needed. atk_only is
defined as such:

option('atk_only',
       description: 'Build only the ATK stub library without atspi or at-spi2-atk (UNSUPPORTED)',
       type: 'boolean',
       value: false)

of course the UNSUPPORTED is a bit scary. But perhaps that would make
sense in the context of Buildroot. Both libgtk2/libgtk3 require
at-spi2-core, but we can imagine that real accessibility support is not
always needed, so being able to build a stub at-spi2-core might be
interesting, and that would allow to not require dlopen(), apparently.

Thomas
Thomas Petazzoni July 15, 2024, 7:12 p.m. UTC | #6
On Mon, 15 Jul 2024 20:49:08 +0200
Thomas Petazzoni <thomas.petazzoni@bootlin.com> wrote:

> so unless atk_only is defined, dlopen() will be needed. atk_only is
> defined as such:
> 
> option('atk_only',
>        description: 'Build only the ATK stub library without atspi or at-spi2-atk (UNSUPPORTED)',
>        type: 'boolean',
>        value: false)
> 
> of course the UNSUPPORTED is a bit scary. But perhaps that would make
> sense in the context of Buildroot. Both libgtk2/libgtk3 require
> at-spi2-core, but we can imagine that real accessibility support is not
> always needed, so being able to build a stub at-spi2-core might be
> interesting, and that would allow to not require dlopen(), apparently.

Quick prototype:

  https://github.com/tpetazzoni/buildroot/commit/04ce4115d4cb4798f78f82dfe40ce07697b5e804

Thomas
diff mbox series

Patch

diff --git a/package/atkmm/Config.in b/package/atkmm/Config.in
index 571d7e69ad..9c3db0cdb5 100644
--- a/package/atkmm/Config.in
+++ b/package/atkmm/Config.in
@@ -5,6 +5,7 @@  config BR2_PACKAGE_ATKMM
 	depends on BR2_TOOLCHAIN_HAS_THREADS # at-spi2-core/glibmm -> libglib2
 	depends on BR2_USE_MMU # at-spi2-core/glibmm -> libglib2
 	depends on BR2_USE_WCHAR # at-spi2-core/glibmm -> libglib2
+	depends on !BR2_STATIC_LIBS # at-spi2-core
 	select BR2_PACKAGE_AT_SPI2_CORE
 	select BR2_PACKAGE_GLIBMM
 	select BR2_PACKAGE_LIBSIGC
@@ -14,7 +15,8 @@  config BR2_PACKAGE_ATKMM
 
 	  http://www.gtkmm.org/
 
-comment "atkmm needs a toolchain w/ C++, wchar, threads, gcc >= 7"
+comment "atkmm needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 7"
 	depends on BR2_USE_MMU
 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || !BR2_USE_WCHAR \
-		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| BR2_STATIC_LIBS
diff --git a/package/atkmm2_28/Config.in b/package/atkmm2_28/Config.in
index e88073b87a..75e44b66b9 100644
--- a/package/atkmm2_28/Config.in
+++ b/package/atkmm2_28/Config.in
@@ -5,6 +5,7 @@  config BR2_PACKAGE_ATKMM2_28
 	depends on BR2_TOOLCHAIN_HAS_THREADS # at-spi2-core/glibmm -> libglib2
 	depends on BR2_USE_MMU # at-spi2-core/glibmm -> libglib2
 	depends on BR2_USE_WCHAR # at-spi2-core/glibmm -> libglib2
+	depends on !BR2_STATIC_LIBS # at-spi2-core
 	select BR2_PACKAGE_AT_SPI2_CORE
 	select BR2_PACKAGE_GLIBMM2_66
 	select BR2_PACKAGE_LIBSIGC2
@@ -17,7 +18,8 @@  config BR2_PACKAGE_ATKMM2_28
 
 	  http://www.gtkmm.org/
 
-comment "atkmm (2.28.x) needs a toolchain w/ C++, wchar, threads, gcc >= 4.9"
+comment "atkmm (2.28.x) needs a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \
-		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
+		|| !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| BR2_STATIC_LIBS
diff --git a/package/gkrellm/Config.in b/package/gkrellm/Config.in
index e957c058de..b65598593b 100644
--- a/package/gkrellm/Config.in
+++ b/package/gkrellm/Config.in
@@ -3,6 +3,7 @@  config BR2_PACKAGE_GKRELLM
 	depends on BR2_USE_WCHAR # libglib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2
 	depends on BR2_USE_MMU # libglib2
+	depends on !BR2_STATIC_LIBS # libgtk2 -> at-spi2-core
 	select BR2_PACKAGE_GKRELLM_SERVER if !BR2_PACKAGE_GKRELLM_CLIENT
 	select BR2_PACKAGE_LIBGLIB2
 	help
@@ -38,6 +39,7 @@  comment "client needs a toolchain w/ C++, gcc >= 4.8"
 
 endif # BR2_PACKAGE_GKRELLM
 
-comment "gkrellm needs a toolchain w/ wchar, threads"
+comment "gkrellm needs a toolchain w/ wchar, threads, dynamic library"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
diff --git a/package/gtkmm3/Config.in b/package/gtkmm3/Config.in
index 6b924c856b..a8a4bac1e1 100644
--- a/package/gtkmm3/Config.in
+++ b/package/gtkmm3/Config.in
@@ -1,9 +1,9 @@ 
-comment "gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, gcc >= 4.9"
+comment "gtkmm3 needs libgtk3 and a toolchain w/ C++, wchar, threads, dynamic library, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || !BR2_USE_WCHAR \
 		|| !BR2_INSTALL_LIBSTDCPP || !BR2_PACKAGE_LIBGTK3 \
-		|| !BR2_TOOLCHAIN_HAS_THREADS
+		|| !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
 
 config BR2_PACKAGE_GTKMM3
 	bool "gtkmm3"
@@ -18,6 +18,7 @@  config BR2_PACKAGE_GTKMM3
 	depends on BR2_TOOLCHAIN_HAS_THREADS # *mm/libgtk3 -> libglib2
 	depends on BR2_USE_MMU # *mm/libgtk3 -> libglib2
 	depends on BR2_USE_WCHAR # *mm/libgtk3 -> libglib2
+	depends on !BR2_STATIC_LIBS # atkmm2_28 -> at-spi2-core
 	depends on BR2_PACKAGE_LIBGTK3
 	select BR2_PACKAGE_ATKMM2_28
 	select BR2_PACKAGE_CAIROMM1_14
diff --git a/package/libfm/Config.in b/package/libfm/Config.in
index e78bc99b76..2d3bada2ca 100644
--- a/package/libfm/Config.in
+++ b/package/libfm/Config.in
@@ -7,6 +7,7 @@  config BR2_PACKAGE_LIBFM
 	depends on BR2_INSTALL_LIBSTDCPP # libgtk2
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libgtk2 -> pango -> harfbuzz
+	depends on !BR2_STATIC_LIBS # libgtk2 -> at-spi2-core
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_LIBGTK2 if !BR2_PACKAGE_LIBGTK3_X11
@@ -22,9 +23,9 @@  config BR2_PACKAGE_LIBFM
 
 	  http://wiki.lxde.org/en/Libfm
 
-comment "libfm needs X.org and a toolchain w/ wchar, threads, C++, gcc >= 4.9"
+comment "libfm needs X.org and a toolchain w/ wchar, threads, C++, dynamic libary, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || BR2_STATIC_LIBS || \
 		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_PACKAGE_XORG7
diff --git a/package/libglade/Config.in b/package/libglade/Config.in
index 8d0d26f159..b74acba86e 100644
--- a/package/libglade/Config.in
+++ b/package/libglade/Config.in
@@ -4,6 +4,7 @@  config BR2_PACKAGE_LIBGLADE
 	depends on BR2_USE_WCHAR # glib2
 	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
 	depends on BR2_USE_MMU # glib2
+	depends on !BR2_STATIC_LIBS # at-spi2-core
 	select BR2_PACKAGE_LIBGLIB2
 	select BR2_PACKAGE_AT_SPI2_CORE
 	select BR2_PACKAGE_LIBXML2
@@ -14,7 +15,8 @@  config BR2_PACKAGE_LIBGLADE
 
 	  https://download.gnome.org/sources/libglade/
 
-comment "libglade needs a toolchain w/ wchar, threads"
+comment "libglade needs a toolchain w/ wchar, threads, dynamic library"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_LIBGTK2
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		BR2_STATIC_LIBS
diff --git a/package/libgtk2/Config.in b/package/libgtk2/Config.in
index f2888b2f51..0a3c25e220 100644
--- a/package/libgtk2/Config.in
+++ b/package/libgtk2/Config.in
@@ -7,6 +7,7 @@  config BR2_PACKAGE_LIBGTK2
 	depends on BR2_INSTALL_LIBSTDCPP # pango
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # pango -> harfbuzz
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
+	depends on !BR2_STATIC_LIBS # at-spi2-core
 	select BR2_PACKAGE_AT_SPI2_CORE
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PS
@@ -34,10 +35,10 @@  config BR2_PACKAGE_LIBGTK2_DEMO
 
 endif
 
-comment "libgtk2 needs a toolchain w/ wchar, threads, C++, gcc >= 4.9"
+comment "libgtk2 needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on BR2_PACKAGE_XORG7
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
 		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
-		!BR2_TOOLCHAIN_HAS_THREADS
+		BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index 34b8d49eb3..82e4de8ae1 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -1,9 +1,9 @@ 
-comment "libgtk3 needs a toolchain w/ wchar, threads, C++, gcc >= 4.9"
+comment "libgtk3 needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9"
 	depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || BR2_STATIC_LIBS || \
 		!BR2_TOOLCHAIN_HAS_THREADS
 
 comment "libgtk3 needs an OpenGL or an OpenGL-EGL/wayland backend"
@@ -23,6 +23,7 @@  config BR2_PACKAGE_LIBGTK3
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # pango -> harfbuzz
 	depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \
 		BR2_PACKAGE_HAS_LIBGL
+	depends on !BR2_STATIC_LIBS # at-spi2-core
 	select BR2_PACKAGE_AT_SPI2_CORE
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PS
diff --git a/package/pcmanfm/Config.in b/package/pcmanfm/Config.in
index 73b8c7c04c..353ec818da 100644
--- a/package/pcmanfm/Config.in
+++ b/package/pcmanfm/Config.in
@@ -7,6 +7,7 @@  config BR2_PACKAGE_PCMANFM
 	depends on BR2_INSTALL_LIBSTDCPP # libgtk2
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libgtk2 -> pango -> harfbuzz
+	depends on !BR2_STATIC_LIBS # libgtk2 -> at-spi2-core
 	select BR2_PACKAGE_LIBFM
 	select BR2_PACKAGE_MENU_CACHE
 	select BR2_PACKAGE_LIBGLIB2
@@ -18,10 +19,10 @@  config BR2_PACKAGE_PCMANFM
 
 	  http://wiki.lxde.org/en/PCManFM
 
-comment "pcmanfm needs a toolchain w/ wchar, threads, C++, gcc >= 4.9"
+comment "pcmanfm needs a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_PACKAGE_XORG7
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || BR2_STATIC_LIBS || \
 		!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/pinentry/Config.in b/package/pinentry/Config.in
index bd5e3af5a1..e7e06f8867 100644
--- a/package/pinentry/Config.in
+++ b/package/pinentry/Config.in
@@ -55,16 +55,17 @@  config BR2_PACKAGE_PINENTRY_GTK2
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libgtk2 -> pango -> harfbuzz
+	depends on !BR2_STATIC_LIBS # libgtk2 -> at-spi2-core
 	select BR2_PACKAGE_LIBGTK2
 	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
 	help
 	  The pinentry-gtk2 tool
 
-comment "pinentry-gtk2 needs X and a toolchain w/ wchar, threads, C++, gcc >= 4.9"
+comment "pinentry-gtk2 needs X and a toolchain w/ wchar, threads, C++, dynamic library, gcc >= 4.9"
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_PACKAGE_XORG7 || !BR2_USE_WCHAR || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || BR2_STATIC_LIBS || \
 		!BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS
 
 config BR2_PACKAGE_PINENTRY_QT5
diff --git a/package/vte/Config.in b/package/vte/Config.in
index 45d627885f..60849903ae 100644
--- a/package/vte/Config.in
+++ b/package/vte/Config.in
@@ -11,6 +11,7 @@  config BR2_PACKAGE_VTE
 	depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \
 		BR2_PACKAGE_HAS_LIBGL
 	depends on BR2_PACKAGE_XORG7
+	depends on !BR2_STATIC_LIBS # libgtk3 -> at-spi2-core
 	select BR2_PACKAGE_LIBGTK3
 	select BR2_PACKAGE_PCRE2
 	help
@@ -22,12 +23,12 @@  config BR2_PACKAGE_VTE
 
 	  http://github.com/GNOME/vte
 
-comment "vte needs a uClibc or glibc toolchain w/ wchar, threads, C++, gcc >= 10"
+comment "vte needs a uClibc or glibc toolchain w/ wchar, threads, C++, dynamic library, gcc >= 10"
 	depends on BR2_PACKAGE_HOST_RUSTC_ARCH_SUPPORTS
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP || \
-		!BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || \
 		!BR2_TOOLCHAIN_GCC_AT_LEAST_10 || \
 		BR2_TOOLCHAIN_USES_MUSL
 
diff --git a/package/xscreensaver/Config.in b/package/xscreensaver/Config.in
index ba259274d1..c58812019e 100644
--- a/package/xscreensaver/Config.in
+++ b/package/xscreensaver/Config.in
@@ -8,6 +8,7 @@  config BR2_PACKAGE_XSCREENSAVER
 	depends on BR2_USE_MMU # gdk-pixbuf, libgtk2 -> glib2
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libgtk2 -> pango -> harfbuzz
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libgtk2 -> pango -> harfbuzz
+	depends on !BR2_STATIC_LIBS # libgtk2 -> at-spi2-core
 	select BR2_PACKAGE_GDK_PIXBUF
 	select BR2_PACKAGE_GDK_PIXBUF_XLIB
 	select BR2_PACKAGE_LIBGLU
@@ -29,10 +30,10 @@  config BR2_PACKAGE_XSCREENSAVER
 
 	  http://www.jwz.org/xscreensaver/
 
-comment "xscreensaver needs a toolchain w/ wchar, C++, threads, gcc >= 4.9, OpenGL backend"
+comment "xscreensaver needs a toolchain w/ wchar, C++, threads, gcc >= 4.9, dynamic library, OpenGL backend"
 	depends on BR2_PACKAGE_XORG7
 	depends on BR2_USE_MMU
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4
 	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
-		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || \
+		!BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 || BR2_STATIC_LIBS || \
 		!BR2_USE_WCHAR || !BR2_PACKAGE_HAS_LIBGL