My english can be clunky so I'll let you rephrase the message as you wish.

I'm not saying that the issue GCC output being redirected. I'm saying
that redirecting GCC's output hides the real issue. Because all the
use can see it the message about missing ncurses, while ncurses has
nothing to do with the issue.
That is why I removed the redirection, to avoid future useless error tracking.

The real issue is the test code being wrong: the main should have
explicit 'int' return. It was a warning prior gcc 14.1. It should have
been fixed when it was a warning, but nobody seen it because it was
hidden. It is a warning since at least gcc 5...
See: https://godbolt.org/z/G6zaEzn1f

I did not search how buildroot and linux fixed the issue of their
side. IMHO the buildroot fix is not enough:
- It still hides potential issues
- There is no "return 0;" statement. I know this is allowed, but it is
not explicit and I would not be surprised if someday a warning is
added about that. So I would not remove it for the sole purpose of
saving 10 bytes of code.

Le dim. 21 juil. 2024 à 20:09, Harald van Dijk <har...@gigawatt.nl> a écrit :
>
> 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 <ctx...@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
_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to