[PATCH] menuconfig: GCC failing saying ncurses is not found

Harald van Dijk harald at gigawatt.nl
Sun Jul 21 17:31:49 UTC 2024


On 21/07/2024 13:10, Nop wrote:
> Newer GCC increased diagnostics levels resulting in considering the test
> code to be invalid. The resulting message was misleading, saying that
> ncurses is not found, while it is actually found because GCC output is
> redirected to /dev/null.

Hi,

This explanation does not look correct. GCC output being redirected has 
nothing to do with whether ncurses can or cannot be found, GCC output 
being redirected only means the reason why ncurses cannot be found gets 
hidden. In buildroot, the same error was fixed while keeping the 
2>/dev/null:

https://github.com/buildroot/buildroot/blob/a6210d28dbf66b2f0a42d945711dfd93c7329feb/support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch

In Linux, this problem was avoided because the check was changed to not 
do compilation of a test program at all (preferring pkg-config instead):

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch?id=1c5af5cf9308fff327f52c7efd2dfa732d370871

Cheers,
Harald van Dijk

> Signed-off-by: ctxnop <ctxnop at gmail.com>
> ---
>   scripts/kconfig/lxdialog/check-lxdialog.sh | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh
> b/scripts/kconfig/lxdialog/check-lxdialog.sh
> index 5075ebf2d..c644d1d48 100755
> --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
> +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
> @@ -45,9 +45,9 @@ trap "rm -f $tmp" 0 1 2 3 15
> 
>   # Check if we can link to ncurses
>   check() {
> -        $cc -x c - -o $tmp 2>/dev/null <<'EOF'
> +        $cc -x c - -o $tmp <<'EOF'
>   #include CURSES_LOC
> -main() {}
> +int main() { return 0; }
>   EOF
>      if [ $? != 0 ]; then
>          echo " *** Unable to find the ncurses libraries or the"       1>&2


More information about the busybox mailing list