| Message ID | 20250920074707.584930-5-bagasdotme@gmail.com |
|---|---|
| State | New |
| Headers | show |
| Series | [1/2] package/readline: Fix sdk rootfs tarball generation | expand |
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 --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
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(+)