On Wed, 19 May 2010, Gary Thomas wrote:
On 05/19/2010 03:38 AM, Vitus Jensen wrote:We noticed a strange problem with C++ code casting long long variables to double, as a lot of qt-embedded code is doing. ================= double convert(long long l) { return (double)l; // or double(l) } int main(int argc, char * argv[]) { long long l = 10; double f; f = convert(l); printf("convert: %lld => %f\n", l, f); return 0; } ==================== output: convert: 10 => 0.000000 C++ compiled via powerpc-angstrom-linux-g++ gives the above result. Compiling the same code as C using powerpc-angstrom-linux-gcc works fine. But when looking at the assembler code both compiler produce virtually identical output and both call __floatdidf to do the actual conversion. Very strange, has anyone ever seen similar effects?Is this from a recent tree (i.e. post Richard Purdie's restructuring)? I've seen similar problems with C++ code on Poky which uses the same changes.
No, I'm building everything from the stable branch. There were some commits cherry-picked from .dev but those only add Qt 4.5.2.
Poky is ARM only, right? Perhaps it would be helpfull to build a compiler from .dev and for a widely used powerpc-platform? How does n1200 sound? It uses the same ppc603e.
Vitus -- Vitus Jensen, Hannover, Germany, Universe (current) pgp public key available from keyservers _______________________________________________ Openembedded-devel mailing list [email protected] http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
