New submission from Antoine Pitrou <pit...@free.fr>:

Sun/Oracle uses the following patch to fix building of the socket module, since 
on Solaris "netpacket/packet.h" is incompatible with its Linux counterpart. 
Otherwise, it fails with the following messages:

/home/antoine/py3k/gcc/Modules/socketmodule.c: In function ‘makesockaddr’:
/home/antoine/py3k/gcc/Modules/socketmodule.c:1150: error: ‘struct ifreq’ has 
no member named ‘ifr_ifindex’
/home/antoine/py3k/gcc/Modules/socketmodule.c:1151: error: ‘SIOCGIFNAME’ 
undeclared (first use in this function)
/home/antoine/py3k/gcc/Modules/socketmodule.c:1151: error: (Each undeclared 
identifier is reported only once
/home/antoine/py3k/gcc/Modules/socketmodule.c:1151: error: for each function it 
appears in.)
/home/antoine/py3k/gcc/Modules/socketmodule.c: In function ‘getsockaddrarg’:
/home/antoine/py3k/gcc/Modules/socketmodule.c:1484: error: ‘SIOCGIFINDEX’ 
undeclared (first use in this function)
/home/antoine/py3k/gcc/Modules/socketmodule.c:1502: error: ‘struct ifreq’ has 
no member named ‘ifr_ifindex’
/home/antoine/py3k/gcc/Modules/socketmodule.c: In function ‘PyInit__socket’:
/home/antoine/py3k/gcc/Modules/socketmodule.c:4580: error: ‘PACKET_LOOPBACK’ 
undeclared (first use in this function)
/home/antoine/py3k/gcc/Modules/socketmodule.c:4581: error: ‘PACKET_FASTROUTE’ 
undeclared (first use in this function)



$ cat ~/spec-files/patches/Python26-17-netpacket-packet-h.diff 
--- Python-2.6.2/Modules/socketmodule.c.packet  2009-04-01 07:20:48.000000000 
+1300
+++ Python-2.6.2/Modules/socketmodule.c 2009-12-01 21:25:04.133257645 +1300
@@ -81,6 +81,14 @@
 
 */
 
+#ifdef HAVE_NETPACKET_PACKET_H
+#ifdef sun
+#define USE_NETPACKET_PACKET_H 0
+#else
+#define USE_NETPACKET_PACKET_H 1
+#endif
+#endif
+
 #ifdef __APPLE__
   /*
    * inet_aton is not available on OSX 10.3, yet we want to use a binary
@@ -1092,7 +1100,7 @@
                }
 #endif
 
-#ifdef HAVE_NETPACKET_PACKET_H
+#if USE_NETPACKET_PACKET_H
        case AF_PACKET:
        {
                struct sockaddr_ll *a = (struct sockaddr_ll *)addr;
@@ -1382,7 +1390,7 @@
        }
 #endif
 
-#ifdef HAVE_NETPACKET_PACKET_H
+#if USE_NETPACKET_PACKET_H
        case AF_PACKET:
        {
                struct sockaddr_ll* addr;
@@ -1559,7 +1567,7 @@
        }
 #endif
 
-#ifdef HAVE_NETPACKET_PACKET_H
+#if USE_NETPACKET_PACKET_H
        case AF_PACKET:
        {
                *len_ret = sizeof (struct sockaddr_ll);
@@ -4575,7 +4583,7 @@
        PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF");
 #endif
 
-#ifdef HAVE_NETPACKET_PACKET_H
+#if USE_NETPACKET_PACKET_H
        PyModule_AddIntConstant(m, "AF_PACKET", AF_PACKET);
        PyModule_AddIntConstant(m, "PF_PACKET", PF_PACKET);
        PyModule_AddIntConstant(m, "PACKET_HOST", PACKET_HOST);

----------
components: Build
messages: 119615
nosy: jcea, loewis, movement, pitrou
priority: normal
severity: normal
stage: patch review
status: open
title: Fix building of socket module under Solaris
type: behavior
versions: Python 2.7, Python 3.1, Python 3.2

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue10201>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to