[webkit-dev] Strang problem with the linux port.
Kimmo Kinnunen
kimmok at iki.fi
Thu Mar 9 10:00:45 PST 2006
Mike Emmel wrote:
> Hi all I'm having a strange problem with the linux port and maybe
> someone can help.
>
> The problem is that the macros in
>
> khtml/html/htmlnames.cpp fail under linux
>
> I dumped the cpp code and I'm getting generated code like the following.
>
> new ((void*)&abbrTag) QualifiedName(nullAtom, "abbr", xhtmlNS);
>
> Now when I looked at the constructor for QualifiedName it takes as args
>
> QualifiedName::QualifiedName(const AtomicString& p, const
> AtomicString& l, const AtomicString& n)
I've experienced this. I think it's g++-4.0 inlining bug.. It happened
for me also, exactly at "abbr" tag..
In dom_qname.cpp (I don't know if this has been renamed) there's a hash
function
inline unsigned hashComponents(const QualifiedNameComponents& buf)
which I believe will get optimized somehow wrong, and it always hashes
to zero. I got it working by adding printf("%x", hash); before the zero
comparison :)
Doesn't make sense unless the printf disables some optimization. In my
old code there seems also to be 0x80000000u instead of 0x80000000,
which I believe was some sort of hazard at trying to make sure that
signedness+bigendian/little endian differences don't matter..
I know this sounds rediculous, but try it if you don't have any other
clues. My compiler was (GCC) 4.0.2 20050728 (prerelease) [FreeBSD]..
Kimmo
More information about the webkit-dev
mailing list