mirror of
https://github.com/torvalds/linux.git
synced 2026-01-24 23:16:46 +00:00
kconfig: fix static linking of nconf
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: 1c5af5cf93 ("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>
This commit is contained in:
committed by
Nicolas Schier
parent
946d462346
commit
baaecfcac5
@@ -6,8 +6,9 @@ set -eu
|
|||||||
cflags=$1
|
cflags=$1
|
||||||
libs=$2
|
libs=$2
|
||||||
|
|
||||||
PKG="ncursesw menuw panelw"
|
# Keep library order for static linking (HOSTCC='cc -static')
|
||||||
PKG2="ncurses menu panel"
|
PKG="menuw panelw ncursesw"
|
||||||
|
PKG2="menu panel ncurses"
|
||||||
|
|
||||||
if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then
|
if [ -n "$(command -v ${HOSTPKG_CONFIG})" ]; then
|
||||||
if ${HOSTPKG_CONFIG} --exists $PKG; then
|
if ${HOSTPKG_CONFIG} --exists $PKG; then
|
||||||
@@ -28,19 +29,19 @@ fi
|
|||||||
# find ncurses by pkg-config.)
|
# find ncurses by pkg-config.)
|
||||||
if [ -f /usr/include/ncursesw/ncurses.h ]; then
|
if [ -f /usr/include/ncursesw/ncurses.h ]; then
|
||||||
echo -D_GNU_SOURCE -I/usr/include/ncursesw > ${cflags}
|
echo -D_GNU_SOURCE -I/usr/include/ncursesw > ${cflags}
|
||||||
echo -lncursesw -lmenuw -lpanelw > ${libs}
|
echo -lmenuw -lpanelw -lncursesw > ${libs}
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f /usr/include/ncurses/ncurses.h ]; then
|
if [ -f /usr/include/ncurses/ncurses.h ]; then
|
||||||
echo -D_GNU_SOURCE -I/usr/include/ncurses > ${cflags}
|
echo -D_GNU_SOURCE -I/usr/include/ncurses > ${cflags}
|
||||||
echo -lncurses -lmenu -lpanel > ${libs}
|
echo -lmenu -lpanel -lncurses > ${libs}
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f /usr/include/ncurses.h ]; then
|
if [ -f /usr/include/ncurses.h ]; then
|
||||||
echo -D_GNU_SOURCE > ${cflags}
|
echo -D_GNU_SOURCE > ${cflags}
|
||||||
echo -lncurses -lmenu -lpanel > ${libs}
|
echo -lmenu -lpanel -lncurses > ${libs}
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user