meson.build: Enhance check for error() function

Along with checking for presence of <error.h> some toolchains also
require to check for error() function to avoid linking error, e.g.
powerpc64-unknown-linux-musl-gcc from Gentoo:

    [17/18] powerpc64-unknown-linux-musl-gcc  -o ping/ping ping/ping.p/ping.c.o ping/ping.p/ping_common.c.o ping/ping.p/ping6_common.c.o ping/ping.p/node_info.c.o -Wl,--as-needed -Wl,--no-undefined -Os -pipe -mcpu=970 -mtune=970 -maltivec -mabi=altivec -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--start-group libcommon.a -lm -lresolv -Wl,--end-group
    FAILED: ping/ping
    powerpc64-unknown-linux-musl-gcc  -o ping/ping ping/ping.p/ping.c.o ping/ping.p/ping_common.c.o ping/ping.p/ping6_common.c.o ping/ping.p/node_info.c.o -Wl,--as-needed -Wl,--no-undefined -Os -pipe -mcpu=970 -mtune=970 -maltivec -mabi=altivec -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--start-group libcommon.a -lm -lresolv -Wl,--end-group
    /usr/lib/gcc/powerpc64-unknown-linux-musl/14/../../../../powerpc64-unknown-linux-musl/bin/ld: ping/ping.p/ping.c.o: in function `ping_strtod':
    ping.c:(.text+0x1c8): undefined reference to `error'

Closes: https://github.com/iputils/iputils/pull/601
Dowstream-bug: https://bugs.gentoo.org/951050
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Signed-off-by: Brahmajit Das <listout@listout.xyz>
This commit is contained in:
Brahmajit Das
2025-06-22 07:30:38 +05:30
committed by Petr Vorel
parent d546847a8c
commit 35ed506fe4

View File

@@ -143,7 +143,7 @@ endif
foreach h : [
'error.h',
]
if cc.has_header(h)
if cc.has_header(h) and cc.has_function('error')
conf.set('HAVE_' + h.to_upper().underscorify(), 1,
description : 'Define if ' + h + ' can be included.')
endif