On Fri, Sep 03, 2010 at 01:06:03AM +0200, Loïc Minier wrote: > On Thu, Sep 02, 2010, Mariano Alvira wrote: > > Now, with 4.4 and 4.5, I'm having the following build problem: > [...] > > See <file:///usr/share/doc/gcc-4.5/README.Bugs> for instructions. > > Ah that's interesting; which exact compiler are you using? Could you > provide a minimal test case we could reproduce this bug with? > > -- > Loïc Minier
Loïc, Thanks, I've made a minimal test case: #include <stdint.h> struct packet { uint8_t length; /* does not include FCS checksum */ }; typedef struct packet packet_t; void bad(volatile packet_t *p) { volatile uint8_t v; uint8_t i; i = p->length; /* this one builds fine */ v = p->length; /* this one doesn't */ return; } For the problem to appear you must use -Os -march=armv4t and the volatile assignment. E.g.: bad: arm-linux-gnueabi-gcc -Os -march=armv4t -c -o tests.o tests.c ok: arm-linux-gnueabi-gcc -march=armv4t -c -o tests.o tests.c arm-linux-gnueabi-gcc -Os -c -o tests.o tests.c arm-linux-gnueabi-gcc -c -o tests.o tests.c For this test I'm using 4.5 from here: deb http://people.canonical.com/~hrw/ubuntu-maverick-armel-cross-compilers/ ./ $ arm-linux-gnueabi-gcc --version arm-linux-gnueabi-gcc (Ubuntu/Linaro 4.5.1-2ubuntu2) 4.5.1 I think you'll have the same result with 4.4 from the same place. Please let me know if there is any other information I can provide to help! -Mar. _______________________________________________ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev