Re: undefined reference to `pthread_getspecific' in perl-native_5.12.2.bb task do_compile?


Daryl Spitzer <daryl.spitzer@...>
 

This email (on the gumstix mailing list) describes the problem:
http://sourceforge.net/mailarchive/message.php?msg_id=27373548. libc
has moved in Ubuntu 11.04.

Later in that thread is a link to this OE patch:
http://patches.openembedded.org/patch/1659/. Since I'm a Yocto and OE
newbie, it's not clear to me if this patch can be applied to Yocto
Project 1.0.1, and if so, how.

I might be better off installing 10.10 on my machine. (It's new, so I
don't need to worry about backing up and restoring any files.) But
then I may be missing out on a learning opportunity and a chance to
help out the community.

Would someone be able to walk me through applying or adapting this
patch to Yocto?

--
Daryl

On Wed, Jun 8, 2011 at 6:48 AM, Daryl Spitzer <daryl.spitzer@...> wrote:
Does this look familiar?  Why would I be getting these errors when
following the Yocto Project Quick Start instructions, without changes?
 Did I miss something?
It does not. However this is when trying to build perl-native, i.e. Poky
is trying to build its own version of Perl but linked against your
system libraries etc and is unable to find some pthread functions to
link to.

Can you tell us which distribution/version combination you are using?

Could be that we need to patch perl-native to -lpthread ?
Is your host Ubuntu 11.04 on x86 (not x86_64)?  There was a patch for this
that I'm not sure got back ported into Bernard.
Oops.  I forgot to provide those details...

My host is Ubuntu 11.04 64 bit:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=11.04
DISTRIB_CODENAME=natty
DISTRIB_DESCRIPTION="Ubuntu 11.04"
$ uname -m
x86_64

I ran `wget http://www.yoctoproject.org/downloads/poky/poky-bernard-5.0.tar.bz2`
(as directed in the Yocto Project Quick Start).  Does that 5.0
correspond to Yocto Project 1.0.1?

I found http://bit.ly/lzyY5b (an email on the gumstix-users mailing
list, archived on old.nabble.com), which appears to be the same
problem.  I ran:

$ sudo apt-get install pthread*
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'libpthread-stubs0' for regex 'pthread*'
Note, selecting 'libpthread-stubs0-dev' for regex 'pthread*'
libpthread-stubs0 is already the newest version.
libpthread-stubs0 set to manually installed.
libpthread-stubs0-dev is already the newest version.
libpthread-stubs0-dev set to manually installed.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

I'll read through the rest of that thread to see if can find a
solution.  But I thought I'd send this information off in case it
triggers someone to suggest a solution specific to the Yocto Project.

--
Daryl


On Wed, Jun 8, 2011 at 4:17 AM, Gary Thomas <gary@...> wrote:
On 06/07/2011 10:38 PM, Joshua Lock wrote:

On Tue, 2011-06-07 at 19:41 -0700, Daryl Spitzer wrote:

The good news is that following the instructions in
https://wiki.yoctoproject.org/wiki/Working_Behind_a_Network_Proxy
seems to have solved my proxy problems.  But unfortunately I'm getting
errors after running `bitbake -k poky-image-sato`, following the
"Building an Image" instructions in the Yocto Project Quick Start.  (I
didn't make any changes to the conf/local.conf file generated by
`source poky-bernard-5.0/poky-init-build-env poky-5.0-build`, except
to add the CVS setup lines as directed in the
Working_Behind_a_Network_Proxy wiki page.)  When I repeat `bitbake -k
poky-image-sato` I believe I get the same results.

Here's the output, up to and including the first error:


Loading cache...done.
Loaded 980 entries from dependency cache.
Parsing recipes...done.
Parsing of 783 .bb files complete (772 cached, 11 parsed). 991
targets, 11 skipped, 0 masked, 0 errors.

OE Build Configuration:
BB_VERSION        = "1.11.0"
METADATA_BRANCH   = "<unknown>"
METADATA_REVISION = "<unknown>"
TARGET_ARCH       = "i586"
TARGET_OS         = "linux"
MACHINE           = "qemux86"
DISTRO            = "poky"
DISTRO_VERSION    = "1.0"
TARGET_FPU        = ""

NOTE: Resolving any missing task queue dependencies
NOTE: Preparing runqueue
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
NOTE: Running task 632 of 4961 (ID: 387,

/home/daryls/yocto/poky-bernard-5.0/meta/recipes-devtools/perl/perl-native_5.12.2.bb,
do_compile)
NOTE: package perl-native-5.12.2-r7: task do_compile: Started
ERROR: Function 'do_compile' failed (see

/home/daryls/yocto/poky-5.0-build/tmp/work/x86_64-linux/perl-native-5.12.2-r7/temp/log.do_compile.27994
for further information)
...

----------

And here's the head of log.do_compile.27994:


OTE: make -e MAKEFLAGS=
gcc -L/home/daryls/yocto/poky-5.0-build/tmp/sysroots/x86_64-linux/usr/lib

-Wl,-rpath-link,/home/daryls/yocto/poky-5.0-build/tmp/sysroots/x86_64-linux/usr/lib

-Wl,-rpath,/home/daryls/yocto/poky-5.0-build/tmp/sysroots/x86_64-linux/usr/lib
-Wl,-O1 -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 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':
util.c:(.text+0x558): undefined reference to `pthread_getspecific'
util.o: In function `Perl_safesysrealloc':
util.c:(.text+0x5f0): undefined reference to `pthread_getspecific'
util.o: In function `Perl_croak_nocontext':
util.c:(.text+0x19b6): undefined reference to `pthread_getspecific'

----------

Does this look familiar?  Why would I be getting these errors when
following the Yocto Project Quick Start instructions, without changes?
 Did I miss something?
It does not. However this is when trying to build perl-native, i.e. Poky
is trying to build its own version of Perl but linked against your
system libraries etc and is unable to find some pthread functions to
link to.

Can you tell us which distribution/version combination you are using?

Could be that we need to patch perl-native to -lpthread ?
Is your host Ubuntu 11.04 on x86 (not x86_64)?  There was a patch for this
that I'm not sure got back ported into Bernard.

--
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

Join yocto@lists.yoctoproject.org to automatically receive all group messages.