mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-09 17:03:35 -09:00
9fba48c8dfcdd969a77272ccfe327d0349d8ce0d
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 commit7fda943b43"tcl: bump to version 8.6.1". In Buildroot, we prefer to not use bundled libraries wherever possible, so add an unconditional dependency to zlib. Further notes: 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], as they also contaions gdbserver, and since3341ceb1e5(package/gdb: zlib is mandatory, not optional), we also build zlib even if only gdbserver is built (gdbserver does not use zlib, so that's a bug in our gdb packaging). 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) [1]6f3dea45ce[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> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr> (cherry picked from commit7af8dee3a8) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
…
…
…
Buildroot is a simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation. The documentation can be found in docs/manual. You can generate a text document with 'make manual-text' and read output/docs/manual/manual.text. Online documentation can be found at http://buildroot.org/docs.html To build and use the buildroot stuff, do the following: 1) run 'make menuconfig' 2) select the target architecture and the packages you wish to compile 3) run 'make' 4) wait while it compiles 5) find the kernel, bootloader, root filesystem, etc. in output/images You do not need to be root to build or run buildroot. Have fun! Buildroot comes with a basic configuration for a number of boards. Run 'make list-defconfigs' to view the list of provided configurations. Please feed suggestions, bug reports, insults, and bribes back to the buildroot mailing list: buildroot@buildroot.org You can also find us on #buildroot on OFTC IRC. If you would like to contribute patches, please read https://buildroot.org/manual.html#submitting-patches
Description
Languages
Makefile
62.6%
Python
18.8%
C
8.5%
Shell
6.1%
PHP
1.4%
Other
2.2%