ID:               48317
 User updated by:  jf at netmadeira dot com
 Reported By:      jf at netmadeira dot com
 Status:           Open
 Bug Type:         Compile Failure
 Operating System: linux
 PHP Version:      5.3CVS-2009-05-18 (snap)
 New Comment:

Ok, cvs is not the best help here, because for fix this bug I would
need to study lots of code to now what is really breaking here, so, I'll
point what I think its bad, and what I done to fix the error to
myself!!

The rules to define the PHP_FUNCTION(dns_check_record) are:

header: dns.h
#if defined(PHP_WIN32) || (HAVE_RES_SEARCH && !(defined(__BEOS__) ||
defined(NETWARE)))
# if defined(PHP_WIN32) || (HAVE_DN_SKIPNAME && HAVE_DN_EXPAND)
PHP_FUNCTION(dns_check_record);
(...)

function code: dns.c
#if HAVE_RES_SEARCH && !(defined(__BEOS__)||defined(PHP_WIN32) ||
defined(NETWARE))
(...)
PHP_FUNCTION(dns_check_record)
{
(...)



Adding the function to php functions list: basic_functions.c
#if defined(PHP_WIN32) || (HAVE_RES_SEARCH && !(defined(__BEOS__) ||
defined(NETWARE)))
PHP_FE(dns_check_record,arginfo_dns_check_record)
PHP_FALIAS(checkdnsrr,dns_check_record,arginfo_dns_check_record)
#endif

What I see is that in three cases, the rules are different in all, so
sometimes the header can be defines and the function not, or like in
mine, the function is defined but header not!!

Clearly are some conflicts of rules here, but can't really tell what,
without studing the code.

What I made to fix for myself was:
diff -u -p -r1.1.1.1 dns.h
--- standard/dns.h      18 May 2009 21:39:19 -0000      1.1.1.1
+++ standard/dns.h      18 May 2009 22:14:09 -0000
@@ -49,9 +49,9 @@ PHP_FUNCTION(gethostname);
 
 #if defined(PHP_WIN32) || (HAVE_RES_SEARCH && !(defined(__BEOS__) ||
defined(NETWARE)))
 
+PHP_FUNCTION(dns_check_record);
 # if defined(PHP_WIN32) || (HAVE_DN_SKIPNAME && HAVE_DN_EXPAND)
 PHP_FUNCTION(dns_get_mx);
-PHP_FUNCTION(dns_check_record);
 # endif
 
 #if defined(PHP_WIN32) || HAVE_DNS_FUNCS


Hope some developer could fix the mess with those rules...


Previous Comments:
------------------------------------------------------------------------

[2009-05-18 21:22:19] jf at netmadeira dot com

well, I'm trying to do that, but its first time working with cvs..

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

[2009-05-18 20:28:36] paj...@php.net

Feel free to send a patch (cvs diff -up :)



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

[2009-05-18 20:25:13] jf at netmadeira dot com

Sorry to post again, but checked 5.2.9 basic_functions.h

and the rule was:
#if HAVE_RES_SEARCH && !(defined(__BEOS__) || defined(PHP_WIN32) ||
defined(NETWARE))

in 5.3.0 bracket was added before HAVE_RES_SEARCH, think its that what
is triggering this.

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

[2009-05-18 20:16:41] jf at netmadeira dot com

Whele, it seems its not cross-compiling fault!
ext/standard/dns.h has this rule for dns_get_record fucntion:

#if defined(PHP_WIN32) || (HAVE_RES_SEARCH && !(defined(__BEOS__) ||
defined(NETWARE)))

# if defined(PHP_WIN32) || (HAVE_DN_SKIPNAME && HAVE_DN_EXPAND)
PHP_FUNCTION(dns_get_mx);
PHP_FUNCTION(dns_check_record);
# endif

#if defined(PHP_WIN32) || HAVE_DNS_FUNCS
PHP_FUNCTION(dns_get_record);
PHP_MINIT_FUNCTION(dns);
# endif

in ext/standard/basic_functions.c the prepocessor rule to define(/or
not) php dns_get_record function is:
#if defined(PHP_WIN32) || (HAVE_RES_SEARCH && !(defined(__BEOS__) ||
defined(NETWARE)))

so, something is triggering the defenition of this function somewhere
else, think that this rule must be revised..

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

[2009-05-18 18:49:20] jf at netmadeira dot com

Ok, I understand..
Do you have at least an ideia of what is causing it?? Maybe I can try
to fix it myself..

Best regards

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

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/48317

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

Reply via email to