RTFM
Daniel van Vugt
daniel.van.vugt at canonical.com
Mon Jun 17 10:09:08 UTC 2013
I used to take this with a grain of salt:
- Be sure that the cross compiler that you are using matches the target
environment. (eg, make sure you're using the saucy toolchain if you're
targeting a saucy phablet image) You can specify the toolchain version
thusly:
$ apt-get install g++-arm-linux-gnueabihf/saucy
However now I find it seems to be critical.
If you cross compile with the raring (4.7) tools for saucy phablet then
it will succeed in building, and succeed in running most binaries. But
not all binaries.
You'll get some failing acceptance tests (LP: #1191664) and even more
annoying subtleties like:
render_surfaces.cpp:
std::chrono::duration_cast<std::chrono::microseconds>(elapsed).count()
returns milliseconds instead of microseconds (hence runs at 1000 times
slower than usual).
So my question is:
If there's C++ ABI breakage between raring and saucy, why don't I get
any errors during compilation, linkage or execution?
It's scary that everything appears to work and you don't get a single
error message. Just tricky and random behavior.
- Daniel
More information about the Mir-devel
mailing list