diff mbox series

package/dash: fix static with shared build

Message ID 58294107fad727dfc01e76ca23a47ab08a1ef9ea.1669368933.git.baruch@tkos.co.il
State Accepted
Headers show
Series package/dash: fix static with shared build | expand

Commit Message

Baruch Siach Nov. 25, 2022, 9:35 a.m. UTC
When BR2_SHARED_STATIC_LIBS is enabled we pass both --enable-static and
--enable-shared to configure. dash configure.ac only looks for
--enable-static to make the build static. But when linking against
libedit pkg-config only returns dynamic linking dependencies, so the
indirect ncurses dependency in not mentioned. The end result is that
libedit can't find ncurses symbols on link.

BR2_SHARED_STATIC_LIBS only makes sense for libraries, not executable
binaries. Pass --disable-static unless BR2_STATIC_LIBS is enabled for
static only build.

Fixes:
http://autobuild.buildroot.net/results/137d39cc5ec436759a2fde3f26ce5633e0ad6c2e/
http://autobuild.buildroot.net/results/55a38e0e45212bf7403d9ccb626c9422e3affe72/
http://autobuild.buildroot.net/results/8f109f1a04a6a2ff6d8c4c920e499fbaec3f72b9/

Signed-off-by: Baruch Siach <baruch@tkos.co.il>
---
 package/dash/dash.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Petazzoni Nov. 25, 2022, 10:20 p.m. UTC | #1
On Fri, 25 Nov 2022 11:35:33 +0200
Baruch Siach via buildroot <buildroot@buildroot.org> wrote:

> When BR2_SHARED_STATIC_LIBS is enabled we pass both --enable-static and
> --enable-shared to configure. dash configure.ac only looks for
> --enable-static to make the build static. But when linking against
> libedit pkg-config only returns dynamic linking dependencies, so the
> indirect ncurses dependency in not mentioned. The end result is that
> libedit can't find ncurses symbols on link.
> 
> BR2_SHARED_STATIC_LIBS only makes sense for libraries, not executable
> binaries. Pass --disable-static unless BR2_STATIC_LIBS is enabled for
> static only build.
> 
> Fixes:
> http://autobuild.buildroot.net/results/137d39cc5ec436759a2fde3f26ce5633e0ad6c2e/
> http://autobuild.buildroot.net/results/55a38e0e45212bf7403d9ccb626c9422e3affe72/
> http://autobuild.buildroot.net/results/8f109f1a04a6a2ff6d8c4c920e499fbaec3f72b9/
> 
> Signed-off-by: Baruch Siach <baruch@tkos.co.il>
> ---
>  package/dash/dash.mk | 4 ++++
>  1 file changed, 4 insertions(+)

Applied to master, thanks.

Thomas
Peter Korsgaard Dec. 6, 2022, 10:12 p.m. UTC | #2
>>>>> "Baruch" == Baruch Siach via buildroot <buildroot@buildroot.org> writes:

 > When BR2_SHARED_STATIC_LIBS is enabled we pass both --enable-static and
 > --enable-shared to configure. dash configure.ac only looks for
 > --enable-static to make the build static. But when linking against
 > libedit pkg-config only returns dynamic linking dependencies, so the
 > indirect ncurses dependency in not mentioned. The end result is that
 > libedit can't find ncurses symbols on link.

 > BR2_SHARED_STATIC_LIBS only makes sense for libraries, not executable
 > binaries. Pass --disable-static unless BR2_STATIC_LIBS is enabled for
 > static only build.

 > Fixes:
 > http://autobuild.buildroot.net/results/137d39cc5ec436759a2fde3f26ce5633e0ad6c2e/
 > http://autobuild.buildroot.net/results/55a38e0e45212bf7403d9ccb626c9422e3affe72/
 > http://autobuild.buildroot.net/results/8f109f1a04a6a2ff6d8c4c920e499fbaec3f72b9/

 > Signed-off-by: Baruch Siach <baruch@tkos.co.il>

Committed to 2022.08.x and 2022.02.x, thanks.
diff mbox series

Patch

diff --git a/package/dash/dash.mk b/package/dash/dash.mk
index fed3a995511c..6efc71e5684e 100644
--- a/package/dash/dash.mk
+++ b/package/dash/dash.mk
@@ -27,6 +27,10 @@  else
 DASH_CONF_OPTS += --without-libedit
 endif
 
+ifeq ($(BR2_STATIC_LIBS),)
+DASH_CONF_OPTS += --disable-static
+endif
+
 define DASH_INSTALL_TARGET_CMDS
 	$(INSTALL) -m 0755 -D $(@D)/src/dash $(TARGET_DIR)/bin/dash
 endef