[uClibc] Can't build QtE 3.3.2 with uClibc 0.9.26 g++, solved, kinda

Kenneth Crudup kenny at panix.com
Wed May 19 00:33:27 UTC 2004


> In file included from /home/src/uclibc/toolchain/gcc-3.3.x/toolchain_arm_nofpu/arm-linux-uclibc/include/c++/memory:55,
>                  from /home/src/uclibc/toolchain/gcc-3.3.x/toolchain_arm_nofpu/arm-linux-uclibc/include/c++/string:48,
>                  from ../include/qstring.h:56,
>                  from kernel/qt.h:28,
>                  from .moc/release-shared-mt-emb-arm/allmoc.cpp:1:
> /home/src/uclibc/toolchain/gcc-3.3.x/toolchain_arm_nofpu/arm-linux-uclibc/include/c++/bits/stl_alloc.h:382: error: parse error before `;' token

> ... and it all goes downhill from there.

> Line 382 of stl_alloc.h is:
>
>       static _Atomic_word _S_force_new;

> ... but _Atomic_word is clearly defined in <bits/atomicity.h>, which is
> included at the top of the file. There don't appear to be any conditional
> #ifs to hide this include.

OK, I've figured this (at least) problem out; the file being referenced
by <bits/atomicity.h> is:

  .../arm-linux-uclibc/include/bits/atomicity.h

Which has all the ARM-specific inline asm for the "exchange_and_add()"
et al. functions, but where the definitions of "_Atomic_word" etc. is
in the *other* <bits/atomicity.h> file, located in:

  .../arm-linux-uclibc/include/c++/arm-linux-uclibc/bits/atomicity.h

So, by making the *horrible* kludge of adding:

  #include "../c++/arm-linux-uclibc/bits/atomicity.h"

right after the "#include <inttypes.h>" line, Qt 3.3.2 builds under
uClibc 0.9.26 . (Qt takes next to forever to build, but I've gotten
so far at least libqte-mt.so).

... but my question is *why* did I have to do that? Did some file not
get grafted into another by mistake (it sure looks like those two files
needed to be merged or something). It seems as if any program that
used "stl_alloc.h" (i.e., quite a few of 'em) would have barfed and
someone else should have caught this by now. (I even rebuilt my toolchain
from whatever snapshot was available on Sunday afternoon PST).

	-Kenny

-- 
Kenneth R. Crudup  Sr. SW Engineer, Scott County Consulting, Los Angeles
H: 3630 S. Sepulveda Blvd. #138, L.A., CA 90034-6809      (888) 454-8181
W: 26601 Agoura Road, Calabasas, CA 91302-1959            (818) 444-3685



More information about the uClibc mailing list