This is probably also the reason why "lame -V" does not work on armel. See https://sourceforge.net/tracker/index.php?func=detail&aid=2681646&group_id=290&atid=100290
Thank you so much Martin for informing on the arm list. On Thu, Mar 19, 2009 at 10:40, Martin Guy <martinw...@yahoo.it> wrote: > Hi > I thought I should mention this here too in case anyone else gets > bitten by this armel-specific bug. > > A GCC bug has just turned up that affects the arm-*-gnueabi > architecture in gcc-4.[123]. While debugging libvorbisenc (which > produces silent output files on armel), it turns out that when -O > -ffast-math are set, GCC can produce incorrect code for the max(x,y) > macro applied to floating point values. > > Thanks to Erik de Castro Lopo for some incisive debugging and for > producing a minimal example (should print "0 0" but doesn't) > > /* > ** This file is in the Public Domain. > ** > ** This program demonstrates a bug in the -ffast-math option of the > gcc > ** armel compiler : gcc version 4.3.2 (Debian 4.3.2-1.1) > ** > ** This works as expected: > ** > ** > gcc -Wall -O3 gcc-test.c -o gcc-test && ./gcc-test > ** min : 0.0000 max : 0.0000 > ** > ** Compile with -ffast-math and things goes screwy. > ** > ** > gcc -Wall -O3 -ffast-math gcc-test.c -o gcc-test && ./gcc-test > ** min : 99999.0000 max : 0.0000 > */ > > #include <stdio.h> > > #define COUNT 10 > > #define test_max(x,y) ((x) < (y) ? (y) : (x)) > #define test_min(x,y) ((x) > (y) ? (y) : (x)) > > int > main (void) > { /* C Standard says static data gets initialized to zero. */ > static float data [COUNT] ; > float max = -99999.0, min = 99999.0 ; > int k ; > > for (k = 0 ; k < COUNT ; k++) > { max = test_max (max, data [k]) ; > min = test_min (min, data [k]) ; > } ; > > printf ("min : %12.4f max : %12.4f\n", min, max) ; > > return 0 ; > } > > Full details at http://bugs.debian.org/515949 > > M > > > -- > To UNSUBSCRIBE, email to debian-arm-requ...@lists.debian.org > with a subject of "unsubscribe". Trouble? Contact > listmas...@lists.debian.org > >