[webkit-help] Linking error with Qt port on Linux in Debug mode

Benoit Jacob jacob.benoit.1 at gmail.com
Wed Dec 16 04:38:40 PST 2009


Hi Ossy,

Yes, this file is present. It is in

  ~/build/WebKit/Debug/WebCore/generated/debug

where ~/build/WebKit is my $WEBKITOUTPUTDIR.

 Indeed, it does contain the definition of findDoctypeEntry().
However, it starts like this:

#ifdef __GNUC__
__inline
#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
__attribute__ ((__gnu_inline__))
#endif
#endif
const struct PubIDInfo *
findDoctypeEntry (register const char *str, register unsigned int len)
{
  ...

Here it is tempting to suspect that this inlining might have something
to do with the linking error. I also remember successfully completing
a build in Release mode, so this linking error is only in Debug mode.

I have a question. What does "register" mean on the parameters of a
non-inlined function? Could it be that it is an impossible thing,
hence preventing the compiler from compiling the function non-inlined
into the library?

Cheers,
Benoit


2009/12/16 Osztrogonac Csaba <oszi at inf.u-szeged.hu>:
> Hi Benoit,
>
> Have you got DocTypeStrings.cpp in
> WebKitBuild/Release/WebCore/generated/release
> directory? findDoctypeEntry(...) function should be defined here. This file
> is
> generated from doctypestring.gperf by gperf.
>
> br,
> Ossy
>
> Benoit Jacob írta:
>>
>> Dear List,
>>
>> I get this linking error when trying to build webkit on my GNU linux
>> system:
>>
>> $ build-webkit --debug --makeargs='-j5' --qt
>> ...
>> make[1]: Entering directory
>> `/home/bjacob/build/WebKit/Debug/WebKit/qt/QtLauncher'
>> g++ -m64 -o ../../../bin/QtLauncher main.o
>> -L/home/bjacob/build/WebKit/Debug/lib -L/usr/lib -lQtWebKit -L/usr/lib
>> -pthread -pthread -L/usr/X11R6/lib64 -pthread -pthread -pthread
>> -lQtNetwork -lssl -lcrypto -pthread -pthread -pthread -lQtUiTools
>>
>> -L/home/pierre/chroot/arch64-extra/qt/trunk/src/qt-x11-opensource-src-4.5.3/lib
>> -lQtXml -pthread -pthread -pthread -pthread -lQtGui -pthread -pthread
>> -pthread -pthread -lpng -lfreetype -lgobject-2.0 -lSM -lICE -pthread
>> -pthread -lXrender -lfontconfig -lXext -lX11 -lQtCore -pthread -lz -lm
>> -pthread -lgthread-2.0 -lrt -lglib-2.0 -ldl -lpthread
>> /home/bjacob/build/WebKit/Debug/lib/libQtWebKit.so: undefined
>> reference to `findEntity(char const*, unsigned int)'
>> /home/bjacob/build/WebKit/Debug/lib/libQtWebKit.so: undefined
>> reference to `findColor(char const*, unsigned int)'
>> /home/bjacob/build/WebKit/Debug/lib/libQtWebKit.so: undefined
>> reference to `findProp(char const*, unsigned int)'
>> /home/bjacob/build/WebKit/Debug/lib/libQtWebKit.so: undefined
>> reference to `findDoctypeEntry(char const*, unsigned int)'
>> /home/bjacob/build/WebKit/Debug/lib/libQtWebKit.so: undefined
>> reference to `findValue(char const*, unsigned int)'
>> collect2: ld returned 1 exit status
>>
>>
>> When I look at these symbols in libQtWebKit.so, they are indeed
>> present and undefined:
>>
>> $ nm /home/bjacob/build/WebKit/Debug/lib/libQtWebKit.so -C | egrep '^[ ]*U
>> find'
>>                 U findEntity(char const*, unsigned int)
>>                 U findDoctypeEntry(char const*, unsigned int)
>>                 U findProp(char const*, unsigned int)
>>                 U findColor(char const*, unsigned int)
>>                 U findValue(char const*, unsigned int)
>>
>> Here, U means 'undefined'.
>>
>> More information:
>>  Compiler: GCC 4.4.2
>>  Architecture: x86-64
>>  Qt version: 4.5.3
>>
>> Apparently I'm not alone:
>> http://bugs.gentoo.org/show_bug.cgi?id=287390
>> but I've not been able to figure what I had to do!
>>
>> Any idea?
>>
>> Thanks,
>> Benoit
>
> _______________________________________________
> webkit-help mailing list
> webkit-help at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-help
>


More information about the webkit-help mailing list