Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/1] package/tcl: add mandatory dependency to zlib
@ 2023-09-17 13:01 Julien Olivain
  2023-09-17 13:31 ` Yann E. MORIN
  2023-09-25  5:27 ` Peter Korsgaard
  0 siblings, 2 replies; 3+ messages in thread
From: Julien Olivain @ 2023-09-17 13:01 UTC (permalink / raw)
  To: buildroot; +Cc: Julien Olivain

Tcl changed its zlib handling in upstream commit [1]. Before this
commit, the HAVE_ZLIB macro was defined only if a zlib headers/library
was found. After that commit, the HAVE_ZLIB macro is unconditionally
defined. The only change is that: if a working zlib library is found
in the toolchain sysroot, it is used. Otherwise, the package will use
a shipped version in [2]. See also [3] and [4].

This tcl commit is included in Buildroot since commit 7fda943b43
"tcl: bump to version 8.6.1".

This behavior leads to runtime failures, when the package is compiled
with toolchains including zlib in their sysroot. This is because at
configuration time, the package will detect zlib in the sysroot and
link against it, but the library files won't be installed on target.

This happen to be the case with Bootlin toolchains such as [5]. This
toolchain also happen to be the one used in basic configurations
of the runtime test infrastructure (this issue was found while
attempting to write a runtime test for tcl).

In such cases, running "tclsh" command fails with error message:

    tclsh: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory

libtcl library also miss its dependency.

    ldd /usr/lib/libtcl8.6.so
	    libz.so.1 => not found
	    libm.so.6 => /lib/libm.so.6 (0xb6dad000)
	    libc.so.6 => /lib/libc.so.6 (0xb6c65000)
	    /lib/ld-linux.so.3 (0xb6f6c000)

This commit fixes this issue by adding zlib as a mandatory dependency.

[1] https://github.com/tcltk/tcl/commit/6f3dea45cee94f12ffa0b2acbbdb3eedbc01807b
[2] https://github.com/tcltk/tcl/tree/core-8-6-13/compat/zlib
[3] https://github.com/tcltk/tcl/blob/core-8-6-13/unix/configure.in#L172
[4] https://github.com/tcltk/tcl/blob/core-8-6-13/unix/Makefile.in#L240
[5] https://toolchains.bootlin.com/downloads/releases/toolchains/armv5-eabi/tarballs/armv5-eabi--glibc--stable-2023.08-1.tar.bz2

Signed-off-by: Julien Olivain <ju.o@free.fr>
---
Patch tested on branch master at commit 7691377 with commands:

    make check-package
    ...
    0 warnings generated

    utils/test-pkg -p tcl
    ...
    6 builds, 2 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed

Also runtime-tested manually with the case described in the
commit log. I'll send an automated runtime test later...
---
 package/tcl/Config.in | 1 +
 package/tcl/tcl.mk    | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/package/tcl/Config.in b/package/tcl/Config.in
index f1fa0541a1..adb9f22488 100644
--- a/package/tcl/Config.in
+++ b/package/tcl/Config.in
@@ -10,6 +10,7 @@ config BR2_PACKAGE_TCL
 	# See this mailing list thread:
 	# http://lists.busybox.net/pipermail/buildroot/2015-March/121198.html
 	depends on !BR2_STATIC_LIBS
+	select BR2_PACKAGE_ZLIB
 	help
 	  TCL (Tool Command Language) is a simple textual language.
 
diff --git a/package/tcl/tcl.mk b/package/tcl/tcl.mk
index 843d58a4ae..1943bc7b27 100644
--- a/package/tcl/tcl.mk
+++ b/package/tcl/tcl.mk
@@ -75,7 +75,8 @@ TCL_POST_INSTALL_TARGET_HOOKS += TCL_REMOVE_EXTRA
 
 TCL_DEPENDENCIES = $(if $(BR2_PACKAGE_SQLITE),sqlite) \
 	$(if $(BR2_PACKAGE_MYSQL),mysql) \
-	$(if $(BR2_PACKAGE_POSTGRESQL),postgresql)
+	$(if $(BR2_PACKAGE_POSTGRESQL),postgresql) \
+	zlib
 
 $(eval $(autotools-package))
 $(eval $(host-autotools-package))
-- 
2.41.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-25  5:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-17 13:01 [Buildroot] [PATCH 1/1] package/tcl: add mandatory dependency to zlib Julien Olivain
2023-09-17 13:31 ` Yann E. MORIN
2023-09-25  5:27 ` Peter Korsgaard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox