Comment 0 for bug 873013

Revision history for this message
Wookey (wookey) wrote :

perl fails to cross-build with a lot of undefined references to pthread*

cc -fstack-protector -L/usr/local/lib -o miniperl \
       gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o xsutils.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o \
     miniperlmain.o opmini.o perlmini.o
util.o: In function `Perl_safesysmalloc':
/home/wookey/testing/build/build/xdeb/perl/util.c:78: undefined reference to `pthread_getspecific'
util.o: In function `Perl_safesysrealloc':
/home/wookey/testing/build/build/xdeb/perl/util.c:134: undefined reference to `pthread_getspecific'
util.o: In function `Perl_croak_nocontext':
/home/wookey/testing/build/build/xdeb/perl/util.c:1444: undefined reference to `pthread_getspecific'
util.o: In function `Perl_safesyscalloc':
/home/wookey/testing/build/build/xdeb/perl/util.c:271: undefined reference to `pthread_getspecific'
util.o: In function `Perl_die_nocontext':
/home/wookey/testing/build/build/xdeb/perl/util.c:1397: undefined reference to `pthread_getspecific'

A lot of work has been done on perl to make it cross-build and with that (1.3MB) patch applied it gets quite a long way, but something is still amiss with pthread.

Other people have had this working, so further investigation is needed to determine what exactly is still going wrong in this environement.

Background:
The build command is:
xdeb --only-explicit -a armel --prefer-apt --apt-source --debug --force-rebuild bash

The actual build command xdeb issues is:
debuild --no-lintian -eUSER -eCONFIG_SITE=/etc/dpkg-cross/cross-config.armel -eDEB_BUILD_OPTIONS=nocheck -eGTEST_INCLUDEDIR=/usr/arm-linux-gnueabi/include -eGTEST_LIBDIR=/usr/arm-linux-gnueabi/lib -ePKG_CONFIG_LIBDIR=/usr/arm-linux-gnueabi/lib/pkgconfig:/usr/arm-linux-gnueabi/share/pkgconfig:/usr/share/pkgconfig -eDH_VERBOSE=1 -aarmel -b -uc -us -tc

To easily reproduce the build environment in which this bug was discovered follow the HOWTO here:
https://wiki.linaro.org/Platform/DevPlatform/CrossCompile/CrossBuildNano