]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
kconfig: fix static linking of nconf
authorArkadiusz Kozdra <floss@arusekk.pl>
Sat, 10 Jan 2026 11:48:08 +0000 (12:48 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Jan 2026 09:27:35 +0000 (10:27 +0100)
[ Upstream commit baaecfcac559bcac73206df447eb5c385fa22f2a ]

When running make nconfig with a static linking host toolchain,
the libraries are linked in an incorrect order,
resulting in errors similar to the following:

$ MAKEFLAGS='HOSTCC=cc\ -static' make nconfig
/usr/bin/ld: /usr/lib64/gcc/x86_64-unknown-linux-gnu/14.2.1/../../../../lib64/libpanel.a(p_new.o): in function `new_panel':
(.text+0x13): undefined reference to `_nc_panelhook_sp'
/usr/bin/ld: (.text+0x6c): undefined reference to `_nc_panelhook_sp'

Fixes: 1c5af5cf9308 ("kconfig: refactor ncurses package checks for building mconf and nconf")
Signed-off-by: Arusekk <floss@arusekk.pl>
Link: https://patch.msgid.link/20260110114808.22595-1-floss@arusekk.pl
[nsc: Added comment about library order]
Signed-off-by: Nicolas Schier <nsc@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
scripts/kconfig/nconf-cfg.sh

index f871a2160e3633417b7cad88600b106ec4c7d9af..59814eb3616c6c588d1d7d64b2c1bcf5f1575d02 100755 (executable)
@@ -4,8 +4,9 @@
 cflags=$1
 libs=$2
 
-PKG="ncursesw menuw panelw"
-PKG2="ncurses menu panel"
+# Keep library order for static linking (HOSTCC='cc -static')
+PKG="menuw panelw ncursesw"
+PKG2="menu panel ncurses"
 
 if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then
        if ${HOSTPKG_CONFIG} --exists $PKG; then
@@ -26,19 +27,19 @@ fi
 # find ncurses by pkg-config.)
 if [ -f /usr/include/ncursesw/ncurses.h ]; then
        echo -D_GNU_SOURCE -I/usr/include/ncursesw > ${cflags}
-       echo -lncursesw -lmenuw -lpanelw > ${libs}
+       echo -lmenuw -lpanelw -lncursesw > ${libs}
        exit 0
 fi
 
 if [ -f /usr/include/ncurses/ncurses.h ]; then
        echo -D_GNU_SOURCE -I/usr/include/ncurses > ${cflags}
-       echo -lncurses -lmenu -lpanel > ${libs}
+       echo -lmenu -lpanel -lncurses > ${libs}
        exit 0
 fi
 
 if [ -f /usr/include/ncurses.h ]; then
        echo -D_GNU_SOURCE > ${cflags}
-       echo -lncurses -lmenu -lpanel > ${libs}
+       echo -lmenu -lpanel -lncurses > ${libs}
        exit 0
 fi