[Buildroot] [PATCH v2 1/1] kconfig/lxdialog: fix check() with GCC14

Yann E. MORIN yann.morin.1998 at free.fr
Tue Apr 30 18:01:10 UTC 2024


Robert, All,

On 2024-04-08 23:16 +0200, Robert Marko spake thusly:
> GCC14 now treats implicit int types as error so when check() from
> check-lxdialog.sh is called to check whether we can link against ncurses
> it will fail silently and the help text indicating to install ncurses is
> printed.
> 
> However, this is not due to missing ncurses but once the stderr redirect
> to /dev/null is removed we can see the root cause:
> <stdin>:2:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> 
> So, in order for menuconfig to work with GCC14 lets just specify the
> return type of main() as int.

I've also added a little note that there is no commit from the kernel
tree that we can backport, because the kernel tree no longer has that
script.

> Signed-off-by: Robert Marko <robimarko at gmail.com>
> Reviewed-by: Petr Vorel <petr.vorel at gmail.com>
> Tested-by: Petr Vorel <petr.vorel at gmail.com>

Applied to master with the little note abouve added, thanks.

Regards,
Yann E. MORIN.

> ---
>  support/kconfig/lxdialog/check-lxdialog.sh    |  2 +-
>  ...config-lxdialog-fix-check-with-GCC14.patch | 43 +++++++++++++++++++
>  support/kconfig/patches/series                |  1 +
>  3 files changed, 45 insertions(+), 1 deletion(-)
>  create mode 100644 support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch
> 
> diff --git a/support/kconfig/lxdialog/check-lxdialog.sh b/support/kconfig/lxdialog/check-lxdialog.sh
> index 16cd9a3186..27d6c30a57 100755
> --- a/support/kconfig/lxdialog/check-lxdialog.sh
> +++ b/support/kconfig/lxdialog/check-lxdialog.sh
> @@ -48,7 +48,7 @@ trap "rm -f $tmp" 0 1 2 3 15
>  check() {
>          $cc -x c - -o $tmp 2>/dev/null <<'EOF'
>  #include CURSES_LOC
> -main() {}
> +int main() {}
>  EOF
>  	if [ $? != 0 ]; then
>  	    echo " *** Unable to find the ncurses libraries or the"       1>&2
> diff --git a/support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch b/support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch
> new file mode 100644
> index 0000000000..41081bb45d
> --- /dev/null
> +++ b/support/kconfig/patches/22-kconfig-lxdialog-fix-check-with-GCC14.patch
> @@ -0,0 +1,43 @@
> +From 3ae91337b53fa3ccf0bad7f181fcaf483fab22ee Mon Sep 17 00:00:00 2001
> +From: Robert Marko <robimarko at gmail.com>
> +Date: Wed, 3 Apr 2024 14:18:07 +0200
> +Subject: [PATCH] kconfig/lxdialog: fix check() with GCC14
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +GCC14 now treats implicit int types as error so when check() from
> +check-lxdialog.sh is called to check whether we can link against ncurses
> +it will fail silently and the help text indicating to install ncurses is
> +printed.
> +
> +However, this is not due to missing ncurses but once the stderr redirect
> +to /dev/null is removed we can see the root cause:
> +<stdin>:2:1: error: return type defaults to ‘int’ [-Wimplicit-int]
> +
> +So, in order for menuconfig to work with GCC14 lets just specify the
> +return type of main() as int.
> +
> +Signed-off-by: Robert Marko <robimarko at gmail.com>
> +Reviewed-by: Petr Vorel <petr.vorel at gmail.com>
> +Tested-by: Petr Vorel <petr.vorel at gmail.com>
> +---
> + kconfig/lxdialog/check-lxdialog.sh | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/kconfig/lxdialog/check-lxdialog.sh b/kconfig/lxdialog/check-lxdialog.sh
> +index 16cd9a3186..27d6c30a57 100755
> +--- a/kconfig/lxdialog/check-lxdialog.sh
> ++++ b/kconfig/lxdialog/check-lxdialog.sh
> +@@ -48,7 +48,7 @@ trap "rm -f $tmp" 0 1 2 3 15
> + check() {
> +         $cc -x c - -o $tmp 2>/dev/null <<'EOF'
> + #include CURSES_LOC
> +-main() {}
> ++int main() {}
> + EOF
> + 	if [ $? != 0 ]; then
> + 	    echo " *** Unable to find the ncurses libraries or the"       1>&2
> +-- 
> +2.44.0
> +
> diff --git a/support/kconfig/patches/series b/support/kconfig/patches/series
> index e5a6f69d8f..f120e323b7 100644
> --- a/support/kconfig/patches/series
> +++ b/support/kconfig/patches/series
> @@ -10,3 +10,4 @@
>  19-merge_config.sh-add-br2-external-support.patch
>  20-merge_config.sh-Allow-to-define-config-prefix.patch
>  21-Avoid-false-positive-matches-from-comment-lines.patch
> +22-kconfig-lxdialog-fix-check-with-GCC14.patch
> -- 
> 2.44.0
> 
> _______________________________________________
> buildroot mailing list
> buildroot at buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'



More information about the buildroot mailing list