diff mbox series

[1/2] package/readline: Fix sdk rootfs tarball generation

Message ID 20250920074707.584930-5-bagasdotme@gmail.com
State New
Headers show
Series [1/2] package/readline: Fix sdk rootfs tarball generation | expand

Commit Message

Bagas Sanjaya Sept. 20, 2025, 7:47 a.m. UTC
Generating rootfs.tar when building the sdk fails with undefined
reference error on host libreadline:

␛[7m>>>   Generating filesystem image rootfs.tar␛[27m
mkdir -p /home/bagas/repo/buildroot/output/images
rm -rf /home/bagas/repo/buildroot/output/build/buildroot-fs/tar
mkdir -p /home/bagas/repo/buildroot/output/build/buildroot-fs/tar
rsync -auH --exclude=/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM /home/bagas/repo/buildroot/output/target/ /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target
echo '#!/bin/sh' > /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
echo "set -e" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
echo "chown -h -R 0:0 /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
PATH="/home/bagas/repo/buildroot/output/host/bin:/home/bagas/repo/buildroot/output/host/sbin:/home/bagas/.local/bin:/home/bagas/go/bin:/home/bagas/.local/bin:/home/bagas/.cargo/bin:/home/bagas/.nvm/versions/node/v22.19.0/bin:/home/bagas/go/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" /home/bagas/repo/buildroot/support/scripts/mkusers /home/bagas/repo/buildroot/output/build/buildroot-fs/full_users_table.txt /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
echo "/home/bagas/repo/buildroot/output/host/bin/makedevs -d /home/bagas/repo/buildroot/output/build/buildroot-fs/full_devices_table.txt /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
printf '   	rm -rf /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/usr/lib/udev/hwdb.d/ /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/etc/udev/hwdb.d/\n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
echo "find /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/run/ -mindepth 1 -prune -print0 | xargs -0r rm -rf --" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
echo "find /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/tmp/ -mindepth 1 -prune -print0 | xargs -0r rm -rf --" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
printf '   \n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
printf '   \n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
printf '   	(cd /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target; find -print0 | LC_ALL=C sort -z | tar  --pax-option=exthdr.name=%%d/PaxHeaders/%%f,atime:=0,ctime:=0 -cf /home/bagas/repo/buildroot/output/images/rootfs.tar --null --xattrs-include='\''*'\'' --no-recursion -T - --numeric-owner)\n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
chmod a+x /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
PATH="/home/bagas/repo/buildroot/output/host/bin:/home/bagas/repo/buildroot/output/host/sbin:/home/bagas/.local/bin:/home/bagas/go/bin:/home/bagas/.local/bin:/home/bagas/.cargo/bin:/home/bagas/.nvm/versions/node/v22.19.0/bin:/home/bagas/go/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" FAKEROOTDONTTRYCHOWN=1 /home/bagas/repo/buildroot/output/host/bin/fakeroot -- /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
/bin/sh: symbol lookup error: /home/bagas/repo/buildroot/output/host/lib/libreadline.so.8: undefined symbol: UP
make: *** [fs/tar/tar.mk:38: /home/bagas/repo/buildroot/output/images/rootfs.tar] Error 127

Fix it by also passing the same configure options as target readline
to host readline.

Link: https://lore.kernel.org/buildroot/aMjHPLJ5qHp_TTju@archie.me/
Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---
 package/readline/readline.mk | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Thomas Petazzoni Jan. 2, 2026, 3:41 p.m. UTC | #1
Hello,

On Sat, 20 Sep 2025 14:47:09 +0700
Bagas Sanjaya <bagasdotme@gmail.com> wrote:

> ␛[7m>>>   Generating filesystem image rootfs.tar␛[27m  
> mkdir -p /home/bagas/repo/buildroot/output/images
> rm -rf /home/bagas/repo/buildroot/output/build/buildroot-fs/tar
> mkdir -p /home/bagas/repo/buildroot/output/build/buildroot-fs/tar
> rsync -auH --exclude=/THIS_IS_NOT_YOUR_ROOT_FILESYSTEM /home/bagas/repo/buildroot/output/target/ /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target
> echo '#!/bin/sh' > /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> echo "set -e" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> echo "chown -h -R 0:0 /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> PATH="/home/bagas/repo/buildroot/output/host/bin:/home/bagas/repo/buildroot/output/host/sbin:/home/bagas/.local/bin:/home/bagas/go/bin:/home/bagas/.local/bin:/home/bagas/.cargo/bin:/home/bagas/.nvm/versions/node/v22.19.0/bin:/home/bagas/go/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" /home/bagas/repo/buildroot/support/scripts/mkusers /home/bagas/repo/buildroot/output/build/buildroot-fs/full_users_table.txt /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> echo "/home/bagas/repo/buildroot/output/host/bin/makedevs -d /home/bagas/repo/buildroot/output/build/buildroot-fs/full_devices_table.txt /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> printf '   	rm -rf /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/usr/lib/udev/hwdb.d/ /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/etc/udev/hwdb.d/\n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> echo "find /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/run/ -mindepth 1 -prune -print0 | xargs -0r rm -rf --" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> echo "find /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target/tmp/ -mindepth 1 -prune -print0 | xargs -0r rm -rf --" >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> printf '   \n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> printf '   \n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> printf '   	(cd /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/target; find -print0 | LC_ALL=C sort -z | tar  --pax-option=exthdr.name=%%d/PaxHeaders/%%f,atime:=0,ctime:=0 -cf /home/bagas/repo/buildroot/output/images/rootfs.tar --null --xattrs-include='\''*'\'' --no-recursion -T - --numeric-owner)\n' >> /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> chmod a+x /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> PATH="/home/bagas/repo/buildroot/output/host/bin:/home/bagas/repo/buildroot/output/host/sbin:/home/bagas/.local/bin:/home/bagas/go/bin:/home/bagas/.local/bin:/home/bagas/.cargo/bin:/home/bagas/.nvm/versions/node/v22.19.0/bin:/home/bagas/go/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl" FAKEROOTDONTTRYCHOWN=1 /home/bagas/repo/buildroot/output/host/bin/fakeroot -- /home/bagas/repo/buildroot/output/build/buildroot-fs/tar/fakeroot
> /bin/sh: symbol lookup error: /home/bagas/repo/buildroot/output/host/lib/libreadline.so.8: undefined symbol: UP
> make: *** [fs/tar/tar.mk:38: /home/bagas/repo/buildroot/output/images/rootfs.tar] Error 127

This is not the "sdk rootfs tarball generation", just the "rootfs
tarball generation". SDK and rootfs generation are two separate things.

However, what exactly is using libreadline here? Is it fakeroot?
Something else?

We need a bit more convincing explanation than "adding those lines in
readline.mk fixed the problem for me".

Which tool is linked with readline? Is it working at link time because
host-readline is not already built, then later on, some other package
builds/installs host-readline, and the tool ends up using our
host-readline instead of the system-provided readline?

This definitely need more investigation/explanation before we can apply
the patch.

Thanks!

Thomas
diff mbox series

Patch

diff --git a/package/readline/readline.mk b/package/readline/readline.mk
index f69cbe45e2..078607a0c5 100644
--- a/package/readline/readline.mk
+++ b/package/readline/readline.mk
@@ -15,6 +15,10 @@  READLINE_CONF_OPTS = \
 	--disable-install-examples \
 	--with-curses \
 	--with-shared-termcap-library
+HOST_READLINE_CONF_OPTS = \
+	--disable-install-examples \
+	--with-curses \
+	--with-shared-termcap-library
 READLINE_LICENSE = GPL-3.0+
 READLINE_LICENSE_FILES = COPYING
 READLINE_CPE_ID_VENDOR = gnu