Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sat, 18 Oct 2014 12:18:13 +0200
From: Szabolcs Nagy <nsz@...t70.net>
To: musl@...ts.openwall.com
Subject: Re: Re: gthread_once

* Michael <msbroadf@...il.com> [2014-10-18 13:16:52 +1100]:

> Essentially my plan is to compile my console only app for android but using
> the musl library instead of bionic. Im compling for standard x86_64 linux
> first to see if its viable. My app is plain c++ using wxwidgets (base only)
> and boost threads/system. I compiled these dependencies using CC/CXX/AR etc
> vars set to x86_64-linux-musl-gcc etc... and they compile fine and appear
> to be only linking to musl libraries as i used -v on the compliation and
> watched the directories it pulls in.
> 
> Could the pthread_once be something to do with this thread
> http://sourceware-org.1504.n7.nabble.com/PATCH-Provide-pthread-atfork-in-libc-nonshared-a-and-libc-a-td246012.html#a247866
> 

that's a different glibc specific problem: they have separate
libpthread which makes a lot of things hard so they do various
workarounds

in your case it seems libstdc++ uses the gthr-posix.h from libgcc
that provides the __gthread_once function which is supposed to call
pthread_once through a weak reference, but the weak ref is 0
(so uninitialized, eventhough musl have the pthread_once symbol)

i'd check

 nm libstdc++.a |grep pthread_once

you should see undefined weak symbols (w) i think

and then at link time these should resolve to the pthread_once
in libc.a

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.