This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author drkirkby
Recipients drkirkby
Date 2010-05-29.14:30:07
SpamBayes Score 1.3328746e-05
Marked as misclassified No
Message-id <1275143413.04.0.262553470749.issue8852@psf.upfronthosting.co.za>
In-reply-to
Content
Using Python 2.6.5, the module _socket is failing to build on OpenSolaris. The problem can be worked around with a hack, but I've not verified if the hack actually results in working code - but at least it compiles. See below. 

The problem seems to be that HAVE_NETPACKET_PACKET_H gets defined, despite the fact there is no file called netpacket.h

running build
running build_ext
building '_socket' extension
gcc -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I/export/home/drkirkby/Python-2.6.5/./Include -I. -IInclude -I./Include -I/usr/local/include -I/export/home/drkirkby/Python-2.6.5/Include -I/export/home/drkirkby/Python-2.6.5 -c /export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c -o build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.o
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c: In function ‘makesockaddr’:
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:1107: error: ‘struct ifreq’ has no member named ‘ifr_ifindex’
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:1108: error: ‘SIOCGIFNAME’ undeclared (first use in this function)
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:1108: error: (Each undeclared identifier is reported only once
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:1108: error: for each function it appears in.)
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c: In function ‘getsockaddrarg’:
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:1415: error: ‘SIOCGIFINDEX’ undeclared (first use in this function)
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:1427: error: ‘struct ifreq’ has no member named ‘ifr_ifindex’
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c: In function ‘init_socket’:
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:4596: error: ‘PACKET_LOOPBACK’ undeclared (first use in this function)
/export/home/drkirkby/Python-2.6.5/Modules/socketmodule.c:4597: error: ‘PACKET_FASTROUTE’ undeclared (first use in this function)
building '_curses' extension
gcc -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I/export/home/drkirkby/Python-2.6.5/./Include -I. -IInclude -I./Include -I/usr/local/include -I/export/home/drkirkby/Python-2.6.5/Include -I/export/home/drkirkby/Python-2.6.5 -c /export/home/drkirkby/Python-2.6.5/Modules/_cursesmodule.c -o build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/Python-2.6.5/Modules/_cursesmodule.o
/export/home/drkirkby/Python-2.6.5/Modules/_cursesmodule.c: In function ‘PyCursesWindow_ChgAt’:
/export/home/drkirkby/Python-2.6.5/Modules/_cursesmodule.c:708: warning: implicit declaration of function ‘mvwchgat’
/export/home/drkirkby/Python-2.6.5/Modules/_cursesmodule.c:712: warning: implicit declaration of function ‘wchgat’
gcc -shared build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/Python-2.6.5/Modules/_cursesmodule.o -L/usr/local/lib -lcurses -ltermcap -o build/lib.solaris-2.11-i86pc-2.6/_curses.so
*** WARNING: renaming "_curses" since importing it failed: ld.so.1: python: fatal: relocation error: file build/lib.solaris-2.11-i86pc-2.6/_curses.so: symbol mvwchgat: referenced symbol not found
building '_curses_panel' extension
gcc -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I/export/home/drkirkby/Python-2.6.5/./Include -I. -IInclude -I./Include -I/usr/local/include -I/export/home/drkirkby/Python-2.6.5/Include -I/export/home/drkirkby/Python-2.6.5 -c /export/home/drkirkby/Python-2.6.5/Modules/_curses_panel.c -o build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/Python-2.6.5/Modules/_curses_panel.o
gcc -shared build/temp.solaris-2.11-i86pc-2.6/export/home/drkirkby/Python-2.6.5/Modules/_curses_panel.o -L/usr/local/lib -lpanel -lcurses -ltermcap -o build/lib.solaris-2.11-i86pc-2.6/_curses_panel.so
*** WARNING: renaming "_curses_panel" since importing it failed: No module named _curses
building 'sunaudiodev' extension
gcc -fPIC -fno-strict-aliasing -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -I/export/home/drkirkby/Python-2.6.5/./Include -I. -IInclude -I.

A patch (which is a hack, rather than a real solution), is below. 

drkirkby@hawk:~/Python-2.6.5/Modules$ diff -U 10  socketmodule.c.orig socketmodule.c
--- socketmodule.c.orig	Sat May 29 14:58:17 2010
+++ socketmodule.c	Sat May 29 15:26:08 2010
@@ -1089,20 +1089,21 @@
 		}
 #endif
 
 		default:
 			PyErr_SetString(PyExc_ValueError,
 					"Unknown Bluetooth protocol");
 			return NULL;
 		}
 #endif
 
+#undef HAVE_NETPACKET_PACKET_H /* Hack to build on OpenSolaris x64 */
 #ifdef HAVE_NETPACKET_PACKET_H
 	case AF_PACKET:
 	{
 		struct sockaddr_ll *a = (struct sockaddr_ll *)addr;
 		char *ifname = "";
 		struct ifreq ifr;
 		/* need to look up interface name give index */
 		if (a->sll_ifindex) {
 			ifr.ifr_ifindex = a->sll_ifindex;
 			if (ioctl(sockfd, SIOCGIFNAME, &ifr) == 0)
History
Date User Action Args
2010-05-29 14:30:13drkirkbysetrecipients: + drkirkby
2010-05-29 14:30:13drkirkbysetmessageid: <1275143413.04.0.262553470749.issue8852@psf.upfronthosting.co.za>
2010-05-29 14:30:10drkirkbylinkissue8852 messages
2010-05-29 14:30:07drkirkbycreate