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