diff -Naurp ld/scripttempl/avr7.sc ld/scripttempl/avr7.sc --- ld/scripttempl/avr7.sc 2013-03-22 16:10:14.000000000 +0530 +++ ld/scripttempl/avr7.sc 2013-03-22 16:19:16.000000000 +0530 @@ -161,7 +161,7 @@ SECTIONS .data ${RELOCATING-0} : ${RELOCATING+AT (ADDR (.text) + SIZEOF (.text))} { ${RELOCATING+ PROVIDE (__data_start = .) ; } - *(.data) + KEEP (*(.data)) *(.data*) *(.rodata) /* We need to include .rodata here if gcc is used */ *(.rodata*) /* with -fdata-sections. */ @@ -195,7 +195,7 @@ SECTIONS .eeprom ${RELOCATING-0}: { - *(.eeprom*) + KEEP (*(.eeprom*)) ${RELOCATING+ __eeprom_end = . ; } } ${RELOCATING+ > eeprom} diff -Naurp ld/scripttempl/avr.sc ld/scripttempl/avr.sc --- ld/scripttempl/avr.sc 2013-03-22 16:10:00.000000000 +0530 +++ ld/scripttempl/avr.sc 2013-03-22 16:19:13.000000000 +0530 @@ -199,7 +199,7 @@ SECTIONS .eeprom ${RELOCATING-0}: { - *(.eeprom*) + KEEP (*(.eeprom*)) ${RELOCATING+ __eeprom_end = . ; } } ${RELOCATING+ > eeprom}