Bug #75487 [Opn->Fbk]: can't find res_ndestroy

From: Date: Wed, 18 Aug 2021 17:12:47 +0000
Subject: Bug #75487 [Opn->Fbk]: can't find res_ndestroy
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-235945@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75487&edit=1

 ID:                 75487
 Updated by:         cmb@php.net
 Reported by:        ddmitrie at gmail dot com
 Summary:            can't find res_ndestroy
-Status:             Open
+Status:             Feedback
 Type:               Bug
 Package:            Compile Failure
 Operating System:   Linux
 PHP Version:        7.2.0RC5
-Assigned To:        
+Assigned To:        cmb
 Block user comment: N
 Private report:     N

 New Comment:

Is this still an issue for you with any of the actively supported
PHP versions[1]?  If so, which compiler and libc (please specify
the versions as well) are you using.

[1] <https://www.php.net/supported-versions.php>


Previous Comments:
------------------------------------------------------------------------
[2017-11-10 03:03:28] ddmitrie at gmail dot com

7.2.0RC6  didn't change anything. Still fails to compile

------------------------------------------------------------------------
[2017-11-06 00:42:44] ddmitrie at gmail dot com

Description:
------------
configure makes certain attempts to find res_ndestroy() under various names, including for example
__res_ndestroy() and innocuous_res_ndestroy, in various libraries including bind, resolv 

If I get it right, it finally finds this function in bind under __res_ndestroy name:

configure:79335: checking for __res_ndestroy in -lbind
configure:79360: cc -o conftest -I/usr/include -g -O2 -fvisibility=hidden  -L/usr/lib 
-Wl,-rpath,/home/myaccount/php/install/lib -L/home/myaccount/php/install/lib conftest.c -lbind 
-lresolv -lcrypt -lrt -lrt -lm -ldl -configure:79360: $? = 0
configure:79369: result: yes
c

and main/php_config.h gets the following entry:

#define HAVE_RES_NDESTROY 1

all of sudden, make fails


it looks like res_ndestroy used by configure as an alias to __res_ndestroy didn't make through
and compiler still found res_ndestroy() calls, otherwise it would complaint about missed
__res_ndestroy

if I comment out HAVE_RES_NDESTROY in php_configure.h and rebuild with make clean all, it fails on
missed isfinite() function. Commenting out HAVE_ISFINITE brings yet another failure: undeclared
CALLGRIND_STOP_INSTRUMENTATION and CALLGRIND_START_INSTRUMENTATION symbols. Finally commenting out
HAVE_VALGRIND results in success.


Test script:
---------------
./configure --prefix=/home/myaccount/php/install \
 --disable-fileinfo \
 --with-libxml-dir=/home/myaccount/php/install && \
make



Actual result:
--------------
ext/standard/.libs/dns.o(.text+0x1608): In function `zif_dns_check_record':
php-7.2.0RC5/ext/standard/dns.c:422: undefined reference to `res_ndestroy'
ext/standard/.libs/dns.o(.text+0x1c1a): In function `zif_dns_get_record':
php-7.2.0RC5/ext/standard/dns.c:1013: undefined reference to `res_ndestroy'
ext/standard/.libs/dns.o(.text+0x1c9e):
php-7.2.0RC5/ext/standard/dns.c:937: undefined reference to `res_ndestroy'
ext/standard/.libs/dns.o(.text+0x1d60):
php-7.2.0RC5/ext/standard/dns.c:972: undefined reference to `res_ndestroy'




------------------------------------------------------------------------



--
Edit this bug report at https://bugs.php.net/bug.php?id=75487&edit=1


Thread (4 messages)

« previous php.bugs (#235945) next »