https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61285
Bug ID: 61285 Summary: GCC version 4.7.x 4.8.x 4.9.x does not compile working ARM code for the AT24 EEPROM driver under Linux 3.6.x Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: major Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: Nassar.Mahmood at nortechonline dot co.uk I'm working on deploying Linux on an embedded system, kernel v3.6.9. The board is based on Atmels AT91SAM9G20, we are using BuildRoot to manage the deployement. The description of the system is: Target Architecture - ARM (little endian) Target Architecture Variant - arm926t Target ABI - EABI Floating point strategy - Soft float ARM instruction set - ARM As part of the project we plan on using a library which has been written with C++11 code, for this we require gcc 4.8.x or 4.9.x to build the target system. The board contains an EEPROM chip on which a unique serial number is stored, this uses the Linux AT24 driver to access it. My problem is that building with a gcc 4.7 toolchain onwards causes the AT24 driver to lock up the system, and eventually reboot. I have tested this by building against gcc versions downloaded from here, the red hat mirror, custom gcc toolchains supplied by Mentor (Sourcery). I can replicate the issue with either C library -- uclibc or glibc. The AT24 driver has not undergone any major changes.