Thursday, July 08, 2010
Element 3.x build missing stubs-32.h
Q: Trying to build Element 3.2.x for the first time, and hitting this compile error:
Making liblinx.a
In file included from /usr/include/features.h:359,
from /usr/include/assert.h:37,
from linx.c:31:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make[5]: *** [lib] Error 1
make[5]: Leaving directory
/home/jmir/Element/Releases/3.2.0/element_3.2.0/3party/linx/linux-x86_64/linx-
2.2.2/liblinx
A: Google is your friend. Your 64-bit system was installed without (optional) 386 support. The LINX team decided a while ago that, on 64-bit hosts, liblinx.a shall be built in both 32- and 64-bit versions. So you are on the hook for 32-bit, if you don't want to change the way LINX builds. The easiest way to get through this is to add glibc for 386:
$ yum install glibc-devel.i386
--- Building Element Libraries
make[2]: Entering directory `/home/jmir/Element/Releases/3.2.0/element_3.2.0'
make[3]: Entering directory `/home/jmir/Element/Releases/3.2.0/element_3.2.0/3party/linx'/bin/cp: cannot create regular file
`/home/jmir/Element/Releases/3.2.0/element_3.2.0/ref_platforms/generic_cluster/../../lib/linux-x86_64/liblinx.a':
No such file or directory
make[3]: *** [/home/jmir/Element/Releases/3.2.0/element_3.2.0/ref_platforms/generic_cluster/../../lib/linux-
x86_64/liblinx.a] Error 1
A: This time, google is not your friend. The "native-linux-x86_64" object directories are normal and desired in this case, but the compile error is somewhat misleading. After adding 32-bit support you should "make clean" and start over.
Making liblinx.a
In file included from /usr/include/features.h:359,
from /usr/include/assert.h:37,
from linx.c:31:
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h: No such file or directory
make[5]: *** [lib] Error 1
make[5]: Leaving directory
/home/jmir/Element/Releases/3.2.0/element_3.2.0/3party/linx/linux-x86_64/linx-
2.2.2/liblinx
A: Google is your friend. Your 64-bit system was installed without (optional) 386 support. The LINX team decided a while ago that, on 64-bit hosts, liblinx.a shall be built in both 32- and 64-bit versions. So you are on the hook for 32-bit, if you don't want to change the way LINX builds. The easiest way to get through this is to add glibc for 386:
$ yum install glibc-devel.i386
A more complete explanation of the problem can be found at
http://linux.derkeiler.com/Mailing-Lists/Fedora/2008-06/msg02081.html
--- Building Element Libraries
make[2]: Entering directory `/home/jmir/Element/Releases/3.2.0/element_3.2.0'
make[3]: Entering directory `/home/jmir/Element/Releases/3.2.0/element_3.2.0/3party/linx'/bin/cp: cannot create regular file
`/home/jmir/Element/Releases/3.2.0/element_3.2.0/ref_platforms/generic_cluster/../../lib/linux-x86_64/liblinx.a':
No such file or directory
make[3]: *** [/home/jmir/Element/Releases/3.2.0/element_3.2.0/ref_platforms/generic_cluster/../../lib/linux-
x86_64/liblinx.a] Error 1
A: This time, google is not your friend. The "native-linux-x86_64" object directories are normal and desired in this case, but the compile error is somewhat misleading. After adding 32-bit support you should "make clean" and start over.
free invisible web counter