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