Harald van Dijk wrote:
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.

I ran into the same problem, thanks for sending a patch already!

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

The 2>/dev/null didn't *cause* the issue, but it *hid* the actual error,
making debugging harder. Fixing the current issue requires only the
second change in the patch (explicit return type), but I strongly agree
that the redirection should be removed to make finding any future issues
easier.

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

I wouldn't mind Busybox adopting the current Linux version with the in
my opinion much more convenient nconfig, but until/unless that happens
I'd like this patch to be merged so "make menuconfig" works on systems
with GCC >= 14.1. ;-)

Is there anything I can do to help make that happen? Maybe the slightly
rephrased commit message I've submitted to Buildroot with this patch is
enough already?
https://patchwork.ozlabs.org/project/buildroot/patch/20240726160152.2182074-1-fiona.kl...@gmx.de/

Best regards,
Fiona

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
--
2.45.2

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to