Contruction of global static objects fails while using flash adresses over 0xFFFF, e.g. for bootloader purposes. avr mcu hangs completly before main or even the called constructor itself.
minimal gcc call: avr-c++ -c -mmcu=at90can128 -I. -I. -g -O0 -Wall -Wextra -Wshadow -Wpointer-arith -Wcast-align -Wsign-compare -Waggregate-return -Wunused -fno-exceptions a_test.cpp -o a_test.o linked with the following options -Wl,-Map=a_test.map,--cref,--section-start=.text=0x1F000 short example code in attachment. -- Summary: static constructors beyond 64k fail Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: joerg dot diederich at graffiti dot net GCC host triplet: Linux 2.6.16-1.2111_FC4 i686 athlon i386 GNU/Linux GCC target triplet: avr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29141