util-linux build error with meson and older glibc
Hello everyone,
building util-linux with ptxdist [1] here. After switching to meson build [2], compiling util-linux fails with OSELAS.Toolchain-2020.08.0 which contains gcc-10.2.1 and glibc-2.32. Building for architecture arm-v5te-linux-gnueabi here, console output below.
Autotools build was fine. Build with a more recent toolchain (OSELAS.Toolchain-2023.07, gcc 13.2.1, glibc 2.37) is successful.
From looking at the linker options I suspect -lutil missing? According to manpage that's a BSD function present in glibc. I suspect a change in glibc 2.34 integrating libutil in core glibc, which makes it work with recent version 2.37. So this is probably a flaw in meson build not setting the necessary linker options for glibc up to 2.33? Could anyone point me how to fix this or does anyone by chance already have a patch for this? (Disclaimer: I have zero experience with meson.)
% p -v -j1 compile util-linux
--------------------------
target: util-linux.compile
--------------------------
ptxdist: executing: PATH=/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-cross/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-cross/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/lib/wrapper:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/selected_toolchain:/usr/local/lib/ptxdist-2024.05.0/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/selected_toolchain:/usr/local/lib/ptxdist-2024.04.0/bin:/home/adahl/bin:/home/adahl/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/games HTTPS_PROXY=PTXDIST-UNALLOWED-DOWNLOAD HTTP_PROXY=PTXDIST-UNALLOWED-DOWNLOAD https_proxy=PTXDIST-UNALLOWED-DOWNLOAD http_proxy=PTXDIST-UNALLOWED-DOWNLOAD PKGCONFIG_WHITELIST_HOST='' PKGCONFIG_WHITELIST_TARGET='' PKGCONFIG_WHITELIST_SRC='util-linux' SYSROOT='/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-target' V=1 VERBOSE=1 LC_ALL='C.utf8' KBUILD_BUILD_TIMESTAMP=2020-08-01T00:00:00+00:00 KBUILD_BUILD_USER=ptxdist KBUILD_BUILD_HOST=ptxdist ninja -C /home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/build-target/util-linux-2.40.2-build -v -j1
ninja: Entering directory `/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/build-target/util-linux-2.40.2-build'
[1/75] arm-v5te-linux-gnueabi-gcc -o test_pty test_pty.p/lib_pty-session.c.o test_pty.p/lib_monotonic.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group lib/libcommon.a -lm -lrt -Wl,--end-group
FAILED: test_pty
arm-v5te-linux-gnueabi-gcc -o test_pty test_pty.p/lib_pty-session.c.o test_pty.p/lib_monotonic.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group lib/libcommon.a -lm -lrt -Wl,--end-group /opt/OSELAS.Toolchain-2020.08.0/arm-v5te-linux-gnueabi/gcc-10.2.1-glibc-2.32-binutils-2.35-kernel-5.8-sanitized/lib/gcc/arm-v5te-linux-gnueabi/10.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld: test_pty.p/lib_pty-session.c.o: in function `ul_pty_setup':
platform-ncl/build-target/util-linux-2.40.2-build/../util-linux-2.40.2/lib/pty-session.c:198: undefined reference to `openpty' /opt/OSELAS.Toolchain-2020.08.0/arm-v5te-linux-gnueabi/gcc-10.2.1-glibc-2.32-binutils-2.35-kernel-5.8-sanitized/lib/gcc/arm-v5te-linux-gnueabi/10.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld: platform-ncl/build-target/util-linux-2.40.2-build/../util-linux-2.40.2/lib/pty-session.c:188: undefined reference to `openpty'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make: *** [/usr/local/lib/ptxdist-2024.05.0/rules/post/ptxd_make_world_compile.make:20: /home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/state/util-linux.compile] Error 1
Greets
Alex
[1] https://www.ptxdist.org/
[2] https://git.pengutronix.de/cgit/ptxdist/commit/?id=18c9c0f89c4148f3007b9fcc7833d99af60084dc
Quoted 10 lines · Alexander Dahl
Hello everyone,
building util-linux with ptxdist [1] here. After switching to meson build [2], compiling util-linux fails with OSELAS.Toolchain-2020.08.0 which contains gcc-10.2.1 and glibc-2.32. Building for architecture arm-v5te-linux-gnueabi here, console output below.
Autotools build was fine. Build with a more recent toolchain (OSELAS.Toolchain-2023.07, gcc 13.2.1, glibc 2.37) is successful.
Quoted 8 lines
From looking at the linker options I suspect -lutil missing? According to manpage that's a BSD function present in glibc. I suspect a change in glibc 2.34 integrating libutil in core glibc, which makes it work with recent version 2.37. So this is probably a flaw in meson build not setting the necessary linker options for glibc up to 2.33? Could anyone point me how to fix this or does anyone by chance already have a patch for this? (Disclaimer: I have zero experience with meson.)
There is a -Dlibutil=disabled in rules/util-linux.make. Maybe try to enable that?
Michael
Quoted 26 lines
% p -v -j1 compile util-linux
--------------------------
target: util-linux.compile
--------------------------ptxdist: executing: PATH=/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-cross/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-cross/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/lib/wrapper:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/selected_toolchain:/usr/local/lib/ptxdist-2024.05.0/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/selected_toolchain:/usr/local/lib/ptxdist-2024.04.0/bin:/home/adahl/bin:/home/adahl/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/games HTTPS_PROXY=PTXDIST-UNALLOWED-DOWNLOAD HTTP_PROXY=PTXDIST-UNALLOWED-DOWNLOAD https_proxy=PTXDIST-UNALLOWED-DOWNLOAD http_proxy=PTXDIST-UNALLOWED-DOWNLOAD PKGCONFIG_WHITELIST_HOST='' PKGCONFIG_WHITELIST_TARGET='' PKGCONFIG_WHITELIST_SRC='util-linux' SYSROOT='/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-target' V=1 VERBOSE=1 LC_ALL='C.utf8' KBUILD_BUILD_TIMESTAMP=2020-08-01T00:00:00+00:00 KBUILD_BUILD_USER=ptxdist KBUILD_BUILD_HOST=ptxdist ninja -C
/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/build-target/util-linux-2.40.2-build-v -j1ninja: Entering directory `/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/build-target/util-linux-2.40.2-build'
[1/75] arm-v5te-linux-gnueabi-gcc -otest_ptytest_pty.p/lib_pty-session.c.otest_pty.p/lib_monotonic.c.o-Wl,--as-needed -Wl,--no-undefined -Wl,--start-grouplib/libcommon.a-lm -lrt -Wl,--end-group
FAILED:test_pty
arm-v5te-linux-gnueabi-gcc -otest_ptytest_pty.p/lib_pty-session.c.otest_pty.p/lib_monotonic.c.o-Wl,--as-needed -Wl,--no-undefined -Wl,--start-grouplib/libcommon.a-lm -lrt -Wl,--end-group/opt/OSELAS.Toolchain-2020.08.0/arm-v5te-linux-gnueabi/gcc-10.2.1-glibc-2.32-binutils-2.35-kernel-5.8-sanitized/lib/gcc/arm-v5te-linux-gnueabi/10.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:test_pty.p/lib_pty-session.c.o: in function `ul_pty_setup':
platform-ncl/build-target/util-linux-2.40.2-build/../util-linux-2.40.2/lib/pty-session.c:198: undefined reference to `openpty'/opt/OSELAS.Toolchain-2020.08.0/arm-v5te-linux-gnueabi/gcc-10.2.1-glibc-2.32-binutils-2.35-kernel-5.8-sanitized/lib/gcc/arm-v5te-linux-gnueabi/10.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:platform-ncl/build-target/util-linux-2.40.2-build/../util-linux-2.40.2/lib/pty-session.c:188: undefined reference to `openpty'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make: *** [/usr/local/lib/ptxdist-2024.05.0/rules/post/ptxd_make_world_compile.make:20:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/state/util-linux.compile] Error 1Greets
Alex[1] https://www.ptxdist.org/
[2] https://git.pengutronix.de/cgit/ptxdist/commit/?id=18c9c0f89c4148f3007b9fcc7833d99af60084dc
Signature · 4 lines
Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Hello,
Am Tue, Sep 10, 2024 at 12:00:26PM +0200 schrieb Michael Olbrich:
Quoted 21 lines · Alexander Dahl
Quoted 10 lines
Hello everyone,
building util-linux with ptxdist [1] here. After switching to meson build [2], compiling util-linux fails with OSELAS.Toolchain-2020.08.0 which contains gcc-10.2.1 and glibc-2.32. Building for architecture arm-v5te-linux-gnueabi here, console output below.
Autotools build was fine. Build with a more recent toolchain (OSELAS.Toolchain-2023.07, gcc 13.2.1, glibc 2.37) is successful.
Quoted 8 lines
From looking at the linker options I suspect -lutil missing? According to manpage that's a BSD function present in glibc. I suspect a change in glibc 2.34 integrating libutil in core glibc, which makes it work with recent version 2.37. So this is probably a flaw in meson build not setting the necessary linker options for glibc up to 2.33? Could anyone point me how to fix this or does anyone by chance already have a patch for this? (Disclaimer: I have zero experience with meson.)
Quoted 2 lines
There is a -Dlibutil=disabled in rules/util-linux.make. Maybe try to enable that?
This did it. Sent a patch already:
Thanks and Greets
Alex
Quoted 36 lines
Michael
Quoted 26 lines
% p -v -j1 compile util-linux
--------------------------
target: util-linux.compile
--------------------------ptxdist: executing: PATH=/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-cross/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-cross/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/lib/wrapper:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/selected_toolchain:/usr/local/lib/ptxdist-2024.05.0/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/bin:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-host/usr/sbin:/home/adahl/Work/bsp/thorsis/ncl/tmp/selected_toolchain:/usr/local/lib/ptxdist-2024.04.0/bin:/home/adahl/bin:/home/adahl/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/games HTTPS_PROXY=PTXDIST-UNALLOWED-DOWNLOAD HTTP_PROXY=PTXDIST-UNALLOWED-DOWNLOAD https_proxy=PTXDIST-UNALLOWED-DOWNLOAD http_proxy=PTXDIST-UNALLOWED-DOWNLOAD PKGCONFIG_WHITELIST_HOST='' PKGCONFIG_WHITELIST_TARGET='' PKGCONFIG_WHITELIST_SRC='util-linux' SYSROOT='/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/sysroot-target' V=1 VERBOSE=1 LC_ALL='C.utf8' KBUILD_BUILD_TIMESTAMP=2020-08-01T00:00:00+00:00 KBUILD_BUILD_USER=ptxdist KBUILD_BUILD_HOST=ptxdist ninja -C
/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/build-target/util-linux-2.40.2-build-v -j1ninja: Entering directory `/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/build-target/util-linux-2.40.2-build'
[1/75] arm-v5te-linux-gnueabi-gcc -otest_ptytest_pty.p/lib_pty-session.c.otest_pty.p/lib_monotonic.c.o-Wl,--as-needed -Wl,--no-undefined -Wl,--start-grouplib/libcommon.a-lm -lrt -Wl,--end-group
FAILED:test_pty
arm-v5te-linux-gnueabi-gcc -otest_ptytest_pty.p/lib_pty-session.c.otest_pty.p/lib_monotonic.c.o-Wl,--as-needed -Wl,--no-undefined -Wl,--start-grouplib/libcommon.a-lm -lrt -Wl,--end-group/opt/OSELAS.Toolchain-2020.08.0/arm-v5te-linux-gnueabi/gcc-10.2.1-glibc-2.32-binutils-2.35-kernel-5.8-sanitized/lib/gcc/arm-v5te-linux-gnueabi/10.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:test_pty.p/lib_pty-session.c.o: in function `ul_pty_setup':
platform-ncl/build-target/util-linux-2.40.2-build/../util-linux-2.40.2/lib/pty-session.c:198: undefined reference to `openpty'/opt/OSELAS.Toolchain-2020.08.0/arm-v5te-linux-gnueabi/gcc-10.2.1-glibc-2.32-binutils-2.35-kernel-5.8-sanitized/lib/gcc/arm-v5te-linux-gnueabi/10.2.1/../../../../arm-v5te-linux-gnueabi/bin/ld:platform-ncl/build-target/util-linux-2.40.2-build/../util-linux-2.40.2/lib/pty-session.c:188: undefined reference to `openpty'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make: *** [/usr/local/lib/ptxdist-2024.05.0/rules/post/ptxd_make_world_compile.make:20:/home/adahl/Work/bsp/thorsis/ncl/tmp/platform-ncl/state/util-linux.compile] Error 1Greets
Alex[1] https://www.ptxdist.org/
[2] https://git.pengutronix.de/cgit/ptxdist/commit/?id=18c9c0f89c4148f3007b9fcc7833d99af60084dcSignature · 4 lines
Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Karel Zak
maintainerQuoted 4 lines · Alexander Dahl
building util-linux with ptxdist [1] here. After switching to meson build [2], compiling util-linux fails with OSELAS.Toolchain-2020.08.0 which contains gcc-10.2.1 and glibc-2.32. Building for architecture arm-v5te-linux-gnueabi here, console output below.
Which version of util-linux are you currently using? Is it the current git tree?
Quoted 1 line
From looking at the linker options I suspect -lutil missing?
It seems so.
Karel
Signature · 2 lines
Karel Zak <[email protected]> http://karelzak.blogspot.com