The optiboot bootloader uses "-nostdlib -nostartfiles" to supress the start files and other stuff copied into normal binaries to save space. On versions that include EEPROM support, it has then included "-lc" at the end of the gcc command, in order to pick up the eeprom_read_byte() and eeprom_write_byte() functions from avr-libc. This has worked well with assorted versions of avr-gcc/avr-libc up through 4.8.x or so.
In the latest Atmel toolchain release (avr8-3.5, which has avr-gcc 4.9.2), I get link errors because the eeprom functions are no longer IN lib/avr/lib/avrN/libc.a, but rather (apparently) in lib/avr/lib/avrN/lib<chipname>.a, and -lc doesn't seem to cause that to be searched :-(
Is this a bug? (Should lib<chipname>.a be considered part of -lc ?) Is there some other way I can add those per-chip libraries back to by build without having to name them explicitly? (actually, naming them explicitly doesn't seem to work, either. Are the avrN sub-directories not normally in the library search path? (Apparently not! I sure don't want to have to derive THOSE in a makefile!) Sigh.