all data placed to single .progmem.data section. test.cpp: char __attribute__((__progmem__)) Test1[] = "test1"; char const __attribute__((__progmem__)) Test2[] = "test2";
void const * array[] = { Test1, Test2 }; cmd line: avr-gcc -mmcu=atmega8 -fdata-sections -Wall -Os -Wa,-ahlmsd=test.lst -c test.cpp -o test.o listing: 8 .global Test1 9 .section .progmem.data,"a",@progbits 12 Test1: 13 0000 7465 7374 .string "test1" 13 3100 14 .global array 15 .section .data.array,"aw",@progbits 18 array: 19 0000 0000 .word Test1 20 0002 0000 .word _ZL5Test2 21 .section .progmem.data 24 _ZL5Test2: 25 0006 7465 7374 .string "test2" 25 3200 here array placed into unique section .data.array, while Test1 and Test2 into single section .progmem.data -- Summary: C++, -fdata-sections not works with .progmem data Product: gcc Version: 4.3.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: sb-sf at users dot sourceforge dot net GCC host triplet: x86 GCC target triplet: AVR http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40113