Subject: RTFM

From: Daniel van Vugt <[email-masked]>
Date: Mon, 17 Jun 2013 18:09:08 +0800

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