Flint Million
2012-Dec-21 21:55 UTC
[Samba] Problem compiling Samba4, Python installed in nonstandard location
Hi,I am working with a custom built (LFS-based) Linux distro and am attempting
to compile Samba4.
Samba3 has always compiled without issue.
The system has its Python installed in /opt/python2. There are symlinks to put
"python" in /usr/local/bin and the "python2.7" lib folder in
/usr/include.
The configure command used was simply ./configure --enable-fhs --with-quotas
The compile runs fine until it gets to steps involving Python. I'm guessing
this has to do with Python headers not being properly included, but I can't
figure out what approach to take to make it work right:
[3286/3752] Linking
default/lib/talloc/libpytalloc-util.so/opt/python2/lib/libpython2.7.a(longobject.o):
In function
`PyLong_FromString':/usr/src/Python-2.7.3/Objects/longobject.c:1851:
undefined reference to
`log'/opt/python2/lib/libpython2.7.a(dynload_shlib.o): In function
`_PyImport_GetDynLoadFunc':/usr/src/Python-2.7.3/Python/dynload_shlib.c:94:
undefined reference to
`dlsym'/usr/src/Python-2.7.3/Python/dynload_shlib.c:130: undefined reference
to `dlopen'/usr/src/Python-2.7.3/Python/dynload_shlib.c:141: undefined
reference to `dlsym'/usr/src/Python-2.7.3/Python/dynload_shlib.c:133:
undefined reference to
`dlerror'/opt/python2/lib/libpython2.7.a(signalmodule.o): In function
`timeval_from_double':/usr/src/Python-2.7.3/./Modules/signalmodule.c:112:
undefined reference to
`floor'/usr/src/Python-2.7.3/./Modules/signalmodule.c:112: undefined
reference to `floor'/usr/src/Python-2.7.3/./Modules/signalmodule.c:113:
undefined reference to
`fmod'/usr/src/Python-2.7.3/./Modules/signalmodule.c:113: undefined
reference to `fmod'/opt/python2/lib/libpython2.7.a(posixmodule.o): In
function `posix_openpty':/usr/src/Python-2.7.3/./Modules/posixmodule.c:3756:
undefined reference to
`openpty'/opt/python2/lib/libpython2.7.a(posixmodule.o): In function
`posix_forkpty':/usr/src/Python-2.7.3/./Modules/posixmodule.c:3816:
undefined reference to
`forkpty'/opt/python2/lib/libpython2.7.a(complexobject.o): In function
`_Py_c_pow':/usr/src/Python-2.7.3/Objects/complexobject.c:139: undefined
reference to `hypot'/usr/src/Python-2.7.3/Objects/complexobject.c:140:
undefined reference to
`pow'/usr/src/Python-2.7.3/Objects/complexobject.c:141: undefined reference
to `atan2'/usr/src/Python-2.7.3/Objects/complexobject.c:143: undefined
reference to `sincos'/usr/src/Python-2.7.3/Objects/complexobject.c:144:
undefined reference to
`exp'/usr/src/Python-2.7.3/Objects/complexobject.c:145: undefined reference
to `log'/opt/python2/lib/libpython2.7.a(complexobject.o): In function
`_Py_c_abs':/usr/src/Python-2.7.3/Objects/complexobject.c:210: undefined
reference to `hypot'/opt/python2/lib/libpython2.7.a(floatobject.o): In
function `float_divmod':/usr/src/Python-2.7.3/Objects/floatobject.c:750:
undefined reference to `fmod'/opt/python2/lib/libpython2.7.a(floatobject.o):
In function `float_rem':/usr/src/Python-2.7.3/Objects/floatobject.c:718:
undefined reference to `fmod'/opt/python2/lib/libpython2.7.a(floatobject.o):
In function `float_pow':/usr/src/Python-2.7.3/Objects/floatobject.c:912:
undefined reference to `pow'/usr/src/Python-2.7.3/Objects/floatobject.c:888:
undefined reference to
`fmod'/usr/src/Python-2.7.3/Objects/floatobject.c:863: undefined reference
to `fmod'/usr/src/Python-2.7.3/Objects/floatobject.c:853: undefined
reference to `fmod'/opt/python2/lib/libpython2.7.a(floatobject.o): In
function
`_Py_double_round':/usr/src/Python-2.7.3/Objects/floatobject.c:1137:
undefined reference to `fmod'collect2: error: ld returned 1 exit statusWaf:
Leaving directory `/home/src/samba-4.0.0/bin'Build failed: -> task
failed (err #1): {task: cc_link pytalloc_util_5.o ->
libpytalloc-util.so}make: *** [all] Error 1
I'm not at all familiar with the "waf" build system, so I'm
not sure how I can do things like apply additional LD or C flags (was thinking
of forcing it to use /opt/python2/include as an include dir) or if this is
something completely unrelated. I do know there's something that's
always happened with this system where the LDFLAGS doesn't include
"-ldl" so those "dl" errors might be related to that, but
executing "LDFLAGS=-ldl make" didn't change the behavior at all.
Any advice?
F
Andrew Bartlett
2012-Dec-21 22:11 UTC
[Samba] Problem compiling Samba4, Python installed in nonstandard location
On Fri, 2012-12-21 at 15:55 -0600, Flint Million wrote:> Hi,I am working with a custom built (LFS-based) Linux distro and am attempting to compile Samba4. > Samba3 has always compiled without issue. > The system has its Python installed in /opt/python2. There are symlinks to put "python" in /usr/local/bin and the "python2.7" lib folder in /usr/include. > The configure command used was simply ./configure --enable-fhs --with-quotas > The compile runs fine until it gets to steps involving Python. I'm guessing this has to do with Python headers not being properly included, but I can't figure out what approach to take to make it work right: > [3286/3752] Linking default/lib/talloc/libpytalloc-util.so/opt/python2/lib/libpython2.7.a(longobject.o): In function `PyLong_FromString':/usr/src/Python-2.7.3/Objects/longobject.c:1851: undefined reference to `log'/opt/python2/lib/libpython2.7.a(dynload_shlib.o): In function `_PyImport_GetDynLoadFunc':/usr/src/Python-2.7.3/Python/dynload_shlib.c:94: undefined reference to `dlsym'/usr/src/Python-2.7.3/Python/dynload_shlib.c:130: undefined reference to `dlopen'/usr/src/Python-2.7.3/Python/dynload_shlib.c:141: undefined reference to `dlsym'/usr/src/Python-2.7.3/Python/dynload_shlib.c:133: undefined reference to `dlerror'/opt/python2/lib/libpython2.7.a(signalmodule.o): In function `timeval_from_double':/usr/src/Python-2.7.3/./Modules/signalmodule.c:112: undefined reference to `floor'/usr/src/Python-2.7.3/./Modules/signalmodule.c:112: undefined reference to `floor'/usr/src/Python-2.7.3/./Modules/signalmodule.c:113: undefined reference to `fmod'/usr/src/Python-2.7.3/./Modules/signalmodule.c:113: undefined reference to `fmod'/opt/python2/lib/libpython2.7.a(posixmodule.o): In function `posix_openpty':/usr/src/Python-2.7.3/./Modules/posixmodule.c:3756: undefined reference to `openpty'/opt/python2/lib/libpython2.7.a(posixmodule.o): In function `posix_forkpty':/usr/src/Python-2.7.3/./Modules/posixmodule.c:3816: undefined reference to `forkpty'/opt/python2/lib/libpython2.7.a(complexobject.o): In function `_Py_c_pow':/usr/src/Python-2.7.3/Objects/complexobject.c:139: undefined reference to `hypot'/usr/src/Python-2.7.3/Objects/complexobject.c:140: undefined reference to `pow'/usr/src/Python-2.7.3/Objects/complexobject.c:141: undefined reference to `atan2'/usr/src/Python-2.7.3/Objects/complexobject.c:143: undefined reference to `sincos'/usr/src/Python-2.7.3/Objects/complexobject.c:144: undefined reference to `exp'/usr/src/Python-2.7.3/Objects/complexobject.c:145: undefined reference to `log'/opt/python2/lib/libpython2.7.a(complexobject.o): In function `_Py_c_abs':/usr/src/Python-2.7.3/Objects/complexobject.c:210: undefined ref > erence to `hypot'/opt/python2/lib/libpython2.7.a(floatobject.o): In function `float_divmod':/usr/src/Python-2.7.3/Objects/floatobject.c:750: undefined reference to `fmod'/opt/python2/lib/libpython2.7.a(floatobject.o): In function `float_rem':/usr/src/Python-2.7.3/Objects/floatobject.c:718: undefined reference to `fmod'/opt/python2/lib/libpython2.7.a(floatobject.o): In function `float_pow':/usr/src/Python-2.7.3/Objects/floatobject.c:912: undefined reference to `pow'/usr/src/Python-2.7.3/Objects/floatobject.c:888: undefined reference to `fmod'/usr/src/Python-2.7.3/Objects/floatobject.c:863: undefined reference to `fmod'/usr/src/Python-2.7.3/Objects/floatobject.c:853: undefined reference to `fmod'/opt/python2/lib/libpython2.7.a(floatobject.o): In function `_Py_double_round':/usr/src/Python-2.7.3/Objects/floatobject.c:1137: undefined reference to `fmod'collect2: error: ld returned 1 exit statusWaf: Leaving directory `/home/src/samba-4.0.0/bin'Build failed: -> task failed (err #1): {task: cc_link pytalloc_util_5.o -> libpytalloc-util.so}make: *** [all] Error 1 > I'm not at all familiar with the "waf" build system, so I'm not sure how I can do things like apply additional LD or C flags (was thinking of forcing it to use /opt/python2/include as an include dir) or if this is something completely unrelated. I do know there's something that's always happened with this system where the LDFLAGS doesn't include "-ldl" so those "dl" errors might be related to that, but executing "LDFLAGS=-ldl make" didn't change the behavior at all. > Any advice? > FThese errors seem to indicate the python isn't sufficiently linked on your platform. Do other things compile correctly against python? Is your /etc/ld.so.conf correct? On the broader question, you can pass additional LDFLAGS to Samba's build process like so: LDFLAGS=-lm ./configure Andrew Bartlett -- Andrew Bartlett http://samba.org/~abartlet/ Authentication Developer, Samba Team http://samba.org
Apparently Analagous Threads
- upgrade python to python2.6.4 using yum
- yum install fails - itertoolsmodule.so
- yum install fails - itertoolsmodule.so
- Re: Memory corruption when testing nbdkit python plugin with nbd-tester-client?
- upgrade-ing samba on debian jessie. ( 4.1.17 to 4.2.3 sernet ) fails and solutions.