Hi all

Looking over skipped tests I noticed, one minor version to late, that
inet_ntop() and inet_pton() are not available on fbsd. The reason is
unfortunate macro expansion where inet_ntop & inet_pton get expanded
to __inet_ntop & __inet_pton ergo => inet_ntop/pton() are named
__inet_ntop/pton().

Attached is a patch adding ZEND_RAW_NAMED_FE/FENTRY macros fixing this
issue. It also fixes the never ending libiconv()/iconv() saga (which
can still be reproduced on fbsd with --with-iconv --with-xmlrpc).

Objections? Comments?

-Hannes
Index: main/php.h
===================================================================
RCS file: /repository/php-src/main/php.h,v
retrieving revision 1.221.2.4.2.5
diff -u -r1.221.2.4.2.5 php.h
--- main/php.h  17 Nov 2006 11:40:52 -0000      1.221.2.4.2.5
+++ main/php.h  18 Dec 2006 18:23:46 -0000
@@ -340,6 +340,7 @@
 #define PHP_FUNCTION                   ZEND_FUNCTION
 #define PHP_METHOD                     ZEND_METHOD
 
+#define PHP_RAW_NAMED_FE ZEND_RAW_NAMED_FE
 #define PHP_NAMED_FE   ZEND_NAMED_FE
 #define PHP_FE                 ZEND_FE
 #define PHP_DEP_FE      ZEND_DEP_FE
Index: Zend/zend_API.h
===================================================================
RCS file: /repository/ZendEngine2/zend_API.h,v
retrieving revision 1.207.2.8.2.5
diff -u -r1.207.2.8.2.5 zend_API.h
--- Zend/zend_API.h     18 Jul 2006 09:06:32 -0000      1.207.2.8.2.5
+++ Zend/zend_API.h     18 Dec 2006 18:23:46 -0000
@@ -48,6 +48,9 @@
 
 #define ZEND_FENTRY(zend_name, name, arg_info, flags)  { #zend_name, name, 
arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags 
},
 
+#define ZEND_RAW_FENTRY(zend_name, name, arg_info, flags)   { zend_name, name, 
arg_info, (zend_uint) (sizeof(arg_info)/sizeof(struct _zend_arg_info)-1), flags 
},
+#define ZEND_RAW_NAMED_FE(zend_name, name, arg_info) 
ZEND_RAW_FENTRY(#zend_name, name, arg_info, 0)
+
 #define ZEND_NAMED_FE(zend_name, name, arg_info)       ZEND_FENTRY(zend_name, 
name, arg_info, 0)
 #define ZEND_FE(name, arg_info)                                                
ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0)
 #define ZEND_DEP_FE(name, arg_info)                 ZEND_FENTRY(name, 
ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
Index: ext/standard/basic_functions.c
===================================================================
RCS file: /repository/php-src/ext/standard/basic_functions.c,v
retrieving revision 1.725.2.31.2.35
diff -u -r1.725.2.31.2.35 basic_functions.c
--- ext/standard/basic_functions.c      13 Dec 2006 15:31:47 -0000      
1.725.2.31.2.35
+++ ext/standard/basic_functions.c      18 Dec 2006 18:23:47 -0000
@@ -3326,10 +3326,10 @@
        PHP_FE(number_format,                                                   
                                                arginfo_number_format)
        PHP_FE(fmod,                                                            
                                                        arginfo_fmod)
 #ifdef HAVE_INET_NTOP
-       PHP_NAMED_FE(inet_ntop,         php_inet_ntop,                          
                                arginfo_inet_ntop)
+       PHP_RAW_NAMED_FE(inet_ntop,             php_inet_ntop,                  
                                        arginfo_inet_ntop)
 #endif
 #ifdef HAVE_INET_PTON
-       PHP_NAMED_FE(inet_pton,         php_inet_pton,                          
                                arginfo_inet_pton)
+       PHP_RAW_NAMED_FE(inet_pton,             php_inet_pton,                  
                                        arginfo_inet_pton)
 #endif
        PHP_FE(ip2long,                                                         
                                                        arginfo_ip2long)
        PHP_FE(long2ip,                                                         
                                                        arginfo_long2ip)
Index: ext/iconv/iconv.c
===================================================================
RCS file: /repository/php-src/ext/iconv/iconv.c,v
retrieving revision 1.124.2.8.2.8
diff -u -r1.124.2.8.2.8 iconv.c
--- ext/iconv/iconv.c   15 Nov 2006 18:34:57 -0000      1.124.2.8.2.8
+++ ext/iconv/iconv.c   18 Dec 2006 19:07:10 -0000
@@ -142,7 +142,7 @@
 /* {{{ iconv_functions[]
  */
 zend_function_entry iconv_functions[] = {
-       PHP_NAMED_FE(iconv,php_if_iconv,                                
arginfo_iconv)
+       PHP_RAW_NAMED_FE(iconv,php_if_iconv,                            
arginfo_iconv)
        PHP_FE(ob_iconv_handler,                                                
arginfo_ob_iconv_handler)
        PHP_FE(iconv_get_encoding,                                              
arginfo_iconv_get_encoding)
        PHP_FE(iconv_set_encoding,                                              
arginfo_iconv_set_encoding)
-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to