Edit report at https://bugs.php.net/bug.php?id=64340&edit=1
ID: 64340
Comment by: reeze@php.net
Reported by: reeze@php.net
Summary: sockets tests failed
Status: Feedback
Type: Bug
Package: Sockets related
Operating System: Mac OSX 10.8
PHP Version: 5.5.0alpha5
Assigned To: laruence
Block user comment: N
Private report: N
New Comment:
Hi, cataphract
The macro __APPLE_USE_RFC_3542 must be defined before including netinet/in.h,
but not all of the our c files include php_sockets.h in the topmost, but by indirectly
include other header files.
eg:
$ head -n 1 conversions.c
sockaddr_conv.h
$ header -n 5 sockaddr_conv.h
...
#include <php_network.h>
#include "php_sockets.h" /* php_socket */
php_network.h wil be included <netinet/in.h> before the macro defined. and php_network.h has
to been included
before php_sockets.h, so I have to move conversion.h up instead.
in the mean time, in convesion.h <netinet/in.h> was included before php_sockets.h too, so I
have to move it
up to meet the requirement of the macro.
The current partial patch breaks the build because of missing the left part:
Undefined symbols for architecture x86_64:
"_from_zval_write_in6_pktinfo", referenced from:
_init_ancillary_registry in sendrecvmsg.o
_php_do_setsockopt_ipv6_rfc3542 in sendrecvmsg.o
"_to_zval_read_in6_pktinfo", referenced from:
_init_ancillary_registry in sendrecvmsg.o
_php_do_getsockopt_ipv6_rfc3542 in sendrecvmsg.o
ld: symbol(s) not found for architecture x86_64
Previous Comments:
------------------------------------------------------------------------
[2013-03-03 02:55:50] laruence@php.net
Thank you for your bug report. This issue has already been fixed
in the latest released version of PHP, which you can download at
http://www.php.net/downloads.php
I commmitted, since reeze doesn't has PHP karma.
please verify the fix.
------------------------------------------------------------------------
[2013-03-03 02:53:54] laruence@php.net
Automatic comment on behalf of laruence
Revision: http://git.php.net/?p=php-src.git;a=commit;h=f2246f352fc01295c370728d68a9bcd2bb546652
Log: Fixed Bug #64340 (sockets tests failed) Patch by Reeze
------------------------------------------------------------------------
[2013-03-03 02:53:30] laruence@php.net
Automatic comment on behalf of laruence
Revision: http://git.php.net/?p=php-src.git;a=commit;h=f2246f352fc01295c370728d68a9bcd2bb546652
Log: Fixed Bug #64340 (sockets tests failed) Patch by Reeze
------------------------------------------------------------------------
[2013-03-02 19:19:57] cataphract@php.net
What's the deal with having changed the header includes order? I don't really like having
headers that must be included in a specific order, that usually means one header depends on another,
but fails to include it; if there's something that requires the headers to be in a specific
order that should be fixed instead.
As to rest (the skip and the define for __APPLE_USE_RFC_3542), I see no problem with it; you can
commit it yourself.
------------------------------------------------------------------------
[2013-03-02 18:05:30] reeze@php.net
The following patch has been added/updated:
Patch Name: ipv6-pktinfo-and-tiny-test-fix
Revision: 1362247530
URL: https://bugs.php.net/patch-display.php?bug=64340&patch=ipv6-pktinfo-and-tiny-test-fix&revision=1362247530
------------------------------------------------------------------------
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
https://bugs.php.net/bug.php?id=64340--
Edit this bug report at https://bugs.php.net/bug.php?id=64340&edit=1