Date: Tue, 3 Apr 2012 21:23:43 -0400 From: John Nielsen <lists@jnielsen.net> To: freebsd-current@freebsd.org Subject: Re: Python won't build? Message-ID: <B2D18BF5-9EEB-43E0-9679-3AA9EE3A6063@jnielsen.net> In-Reply-To: <7E2199A3-9E2D-44D5-B7E5-06D68A13D70B@jnielsen.net> References: <7E2199A3-9E2D-44D5-B7E5-06D68A13D70B@jnielsen.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mar 31, 2012, at 10:21 PM, John Nielsen wrote: > I updated a machine yesterday from 9-STABLE to 10-CURRENT (r233631). = Everything went smoothly with the update itself, but I ran in to an = issue with Python when rebuilding all of my installed ports. Python = won't build; it complains about the definition of LONG_BIT. I had = python27 installed but python26 does the same thing. I ran "make = delete-old" and "make delete-old-libs", no improvement. I even built a = clean chroot environment via make installworld DESTDIR=3D..., (plus = devfs and ports tree). Same problem. >=20 > So.. is this the result of something in the FreeBSD source? Can anyone = else reproduce this? What should I try next? So, no chorus of "me too"s. How about a "works for me"? I'm still not = sure if this is something peculiar to this machine or not and I haven't = fired up a clean virtual machine on different hardware to verify (though = I'm not far from that...). Some of my own follow up: I tried rebuilding world with sources from today, 3/9 and 2/28 and got = the same result, so if it's a regression on the FreeBSD end it's been = there a while (and seemingly not related to the i386/amd64/x86 header = cleanup, which led me to pick those revisions). I also tried setting = tweaking newvers.sh to say 9.9-CURRENT and rebuilt world with no = improvement, so if it's autotools or something else versus two-digit = FreeBSD version problem it's something subtle. Looking in to the Python code, this block is what throws the error: /* from python27/work/Python-2.7.2/Include/pyport.h */ #ifndef LONG_BIT #define LONG_BIT (8 * SIZEOF_LONG) #endif #if LONG_BIT !=3D 8 * SIZEOF_LONG /* 04-Oct-2000 LONG_BIT is apparently (mis)defined as 64 on some recent * 32-bit platforms using gcc. We try to catch that here at = compile-time * rather than waiting for integer multiplication to trigger bogus * overflows. */ #error "LONG_BIT definition appears wrong for platform (bad gcc/glibc = config?)." #endif It turns out the problem is not the one mentioned in the comment (bogus = definition of LONG_BIT), but rather that SIZEOF_LONG is never defined. = Comparing with another amd64 system running 9-STABLE, it looks like that = ought to be defined during the "configure" step and end up in = work/Python-2.7.2/portbld.shared/pyconfig.h. That is not happening on = the maching running -CURRENT--pyconfig.h doesn't get created in the = portbld.shared directory. It does exist in portbld.static (and on the = well-behaving -STABLE machine the two are identical), so I copied it = over. That lets the first stage of the build mostly finish but it fails = linking the 'python' binary: cc -c -fno-strict-aliasing -O2 -pipe -march=3Dathlon64 = -fno-strict-aliasing -DNDEBUG -O2 -pipe -march=3Dathlon64 = -fno-strict-aliasing -I. -IInclude -I./../Include -fPIC -DPy_BUILD_CORE = -o Modules/python.o ./../Modules/python.c cc -pthread -Wl,--export-dynamic -o python Modules/python.o -L. = -lpython2.7 -lutil -lm =20 ./libpython2.7.so: undefined reference to `_PyImport_Inittab' *** [python] Error code 1 Stop in = /opt/scratch/opt/ports/lang/python27/work/Python-2.7.2/portbld.shared. *** [pre-build] Error code 1 So there is something going on besides just the header file not being = created. Does anyone have any ideas what it could be? I'm willing to = believe this is a Python problem but I'd still like to know what changed = on my end to uncover it before pursuing help from the Python folks. > cc -c -fno-strict-aliasing -O2 -pipe -march=3Dathlon64 = -fno-strict-aliasing -DNDEBUG -O2 -pipe -march=3Dathlon64 = -fno-strict-aliasing -I. -IInclude -I./../Include -fPIC -DPy_BUILD_CORE = -o Parser/acceler.o ./../Parser/acceler.c > ... > In file included from ./../Include/Python.h:58, > from ./../Include/pgenheaders.h:10, > from ./../Parser/acceler.c:13: > ./../Include/pyport.h:849:2: error: #error "LONG_BIT definition = appears wrong for platform (bad gcc/glibc config?)." > ... > Stop in = /opt/scratch/opt/ports/lang/python27/work/Python-2.7.2/portbld.shared. > *** [pre-build] Error code 1 Thanks, JN
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B2D18BF5-9EEB-43E0-9679-3AA9EE3A6063>