How do you check if a weak symbol was resolved?

2010/8/2 Mike Hommey <m...@glandium.org>:
> On Fri, Jul 30, 2010 at 11:53:17AM +0200, Christoph Junghans 
> <jungh...@votca.org> wrote:
>> Package: libxml2
>> Version: 2.6.32.dfsg-5+lenny1
>>
>> I know static compiling is bad, but from time to time you need it.
>>
>> Here is the simplest case I can imagine:
>> $ cat main.c
>> #include <libxml/parser.h>
>>
>> int main(int argc, char **argv) {
>>             xmlInitParser();
>> }
>> $ gcc -static main.c `xml2-config --libs --cflags` -pthread -lz -lm
>> $ ./a.out
>> Segmentation fault
>>
>> This is a problem with weak symbols in threads.c
>>
>> A patch can be found here:
>> https://bugzilla.gnome.org/show_bug.cgi?id=609926
>> but upstream refused to merge it.
>
> Upstream is partially responsible for the problem. I'd say there are actually
> 2 different problems. The first one is that despite using weak symbols, the
> initialization steps don't check if the symbols are resolved before using
> them. That should IMHO be fixed in libxml2, instead of removing weak symbols.
> The fix should be straightforward.
>
> The other issue is that gcc and ld are doing weird stuff with those weak
> pthread symbols, even when using -lpthread. I'll probably file a bug against
> either or both.
>
> Please also note that you should be using the "--libs --static" options when
> linking statically libxml2, which gives the right flags, but due to the above,
> that doesn't buy much.
>
> Cheers,
>
> Mike
>



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to