Index: gcc/config/avr/avr.h =================================================================== --- gcc/config/avr/avr.h (revision 142815) +++ gcc/config/avr/avr.h (working copy) @@ -910,7 +908,8 @@ mmcu=m3001*: -Tdata 0x801000}" #define LIB_SPEC \ - "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}" + "%{!mmcu=at90s1*:%{!mmcu=attiny11:%{!mmcu=attiny12:%{!mmcu=attiny15:%{!mmcu=attiny28: -lc }}}}}\ + %{muse-device-lib:%(device_lib_binutils)}" #define LIBSTDCXX "-lgcc" /* No libstdc++ for now. Empty string doesn't work. */ @@ -1046,7 +1045,119 @@ %{mmcu=atmega2560|mmcu=avr6:crtm2560.o%s} \ %{mmcu=atmega2561:crtm2561.o%s}" -#define EXTRA_SPECS {"crt_binutils", CRT_BINUTILS_SPECS}, +#define EXTRA_SPECS \ + {"crt_binutils", CRT_BINUTILS_SPECS}, \ + {"device_lib_binutils", DEVICE_LIB_BINUTILS_SPECS}, + +#define DEVICE_LIB_BINUTILS_SPECS "\ +%{!mmcu*|mmcu=at90s8515|mmcu=avr2:-ls8515} \ +%{mmcu=at90s2313:-ls2313} \ +%{mmcu=at90s2323:-ls2323} \ +%{mmcu=at90s2333:-ls2333} \ +%{mmcu=at90s2343:-ls2343} \ +%{mmcu=attiny22:-ltn22} \ +%{mmcu=attiny26:-ltn26} \ +%{mmcu=at90s4433:-ls4433} \ +%{mmcu=at90s4414:-ls4414} \ +%{mmcu=at90s4434:-ls4434} \ +%{mmcu=at90c8534:-lc8534} \ +%{mmcu=at90s8535:-ls8535} \ +%{mmcu=at86rf401:-l86401} \ +%{mmcu=attiny13:-ltn13} \ +%{mmcu=attiny13a:-ltn13a} \ +%{mmcu=attiny2313|mmcu=avr25:-ltn2313} \ +%{mmcu=attiny24:-ltn24} \ +%{mmcu=attiny44:-ltn44} \ +%{mmcu=attiny84:-ltn84} \ +%{mmcu=attiny25:-ltn25} \ +%{mmcu=attiny45:-ltn45} \ +%{mmcu=attiny85:-ltn85} \ +%{mmcu=attiny261:-ltn261} \ +%{mmcu=attiny461:-ltn461} \ +%{mmcu=attiny861:-ltn861} \ +%{mmcu=attiny43u:-ltn43u} \ +%{mmcu=attiny48:-ltn48} \ +%{mmcu=attiny88:-ltn88} \ +%{mmcu=attiny167:-ltn167} \ +%{mmcu=at43usb355|mmcu=avr3:-l43355} \ +%{mmcu=at76c711:-l76711} \ +%{mmcu=atmega103|mmcu=avr31:-lm103} \ +%{mmcu=at43usb320:-l43320} \ +%{mmcu=at90usb162|mmcu=avr35:-lusb162} \ +%{mmcu=at90usb82:-lusb82} \ +%{mmcu=atmega8|mmcu=avr4:-lm8} \ +%{mmcu=atmega48:-lm48} \ +%{mmcu=atmega48p:-lm48p} \ +%{mmcu=atmega88:-lm88} \ +%{mmcu=atmega88p:-lm88p} \ +%{mmcu=atmega8515:-lm8515} \ +%{mmcu=atmega8535:-lm8535} \ +%{mmcu=at90pwm1:-l90pwm1} \ +%{mmcu=at90pwm2:-l90pwm2} \ +%{mmcu=at90pwm2b:-l90pwm2b} \ +%{mmcu=at90pwm3:-l90pwm3} \ +%{mmcu=at90pwm3b:-l90pwm3b} \ +%{mmcu=atmega16:-lm16} \ +%{mmcu=atmega161|mmcu=avr5:-lm161} \ +%{mmcu=atmega162:-lm162} \ +%{mmcu=atmega163:-lm163} \ +%{mmcu=atmega164p:-lm164p} \ +%{mmcu=atmega165:-lm165} \ +%{mmcu=atmega165p:-lm165p} \ +%{mmcu=atmega168:-lm168} \ +%{mmcu=atmega168p:-lm168p} \ +%{mmcu=atmega169:-lm169} \ +%{mmcu=atmega169p:-lm169p} \ +%{mmcu=atmega32:-lm32} \ +%{mmcu=atmega323:-lm323} \ +%{mmcu=atmega324p:-lm324p} \ +%{mmcu=atmega325:-lm325} \ +%{mmcu=atmega325p:-lm325p} \ +%{mmcu=atmega3250:-lm3250} \ +%{mmcu=atmega3250p:-lm3250p} \ +%{mmcu=atmega328p:-lm328p} \ +%{mmcu=atmega329:-lm329} \ +%{mmcu=atmega329p:-lm329p} \ +%{mmcu=atmega3290:-lm3290} \ +%{mmcu=atmega3290p:-lm3290p} \ +%{mmcu=atmega406:-lm406} \ +%{mmcu=atmega64:-lm64} \ +%{mmcu=atmega640:-lm640} \ +%{mmcu=atmega644:-lm644} \ +%{mmcu=atmega644p:-lm644p} \ +%{mmcu=atmega645:-lm645} \ +%{mmcu=atmega6450:-lm6450} \ +%{mmcu=atmega649:-lm649} \ +%{mmcu=atmega6490:-lm6490} \ +%{mmcu=atmega8hva:-lm8hva} \ +%{mmcu=atmega16hva:-lm16hva} \ +%{mmcu=atmega16hvb:-lm16hvb} \ +%{mmcu=atmega32hvb:-lm32hvb} \ +%{mmcu=atmega4hvd:-lm4hvd} \ +%{mmcu=atmega8hvd:-lm8hvd} \ +%{mmcu=at90can32:-lcan32} \ +%{mmcu=at90can64:-lcan64} \ +%{mmcu=at90pwm216:-l90pwm216} \ +%{mmcu=at90pwm316:-l90pwm316} \ +%{mmcu=atmega32c1:-lm32c1} \ +%{mmcu=atmega64c1:-lm64c1} \ +%{mmcu=atmega32m1:-lm32m1} \ +%{mmcu=atmega64m1:-lm64m1} \ +%{mmcu=atmega16u4:-lm16u4} \ +%{mmcu=atmega32u4:-lm32u4} \ +%{mmcu=atmega32u6:-lm32u6} \ +%{mmcu=at90usb646:-lusb646} \ +%{mmcu=at90usb647:-lusb647} \ +%{mmcu=at94k:-lat94k} \ +%{mmcu=atmega128|mmcu=avr51:-lm128} \ +%{mmcu=atmega1280:-lm1280} \ +%{mmcu=atmega1281:-lm1281} \ +%{mmcu=atmega1284p:-lm1284p} \ +%{mmcu=atmega2560:-lm2560} \ +%{mmcu=atmega2561:-lm2561} \ +%{mmcu=at90can128:-lcan128} \ +%{mmcu=at90usb1286:-lusb1286} \ +%{mmcu=at90usb1287:-lusb1287}" /* This is the default without any -mmcu=* option (AT90S*). */ #define MULTILIB_DEFAULTS { "mmcu=avr2" } Index: gcc/config/avr/avr.opt =================================================================== --- gcc/config/avr/avr.opt (revision 142815) +++ gcc/config/avr/avr.opt (working copy) @@ -39,7 +39,7 @@ mno-tablejump Target Report RejectNegative Mask(NO_TABLEJUMP) -Do not generate tablejump insns +Do not generate tablejump insns. Obsolete: use fno-jump-tables instead. morder1 Target Report Undocumented Mask(ORDER_1) @@ -66,3 +66,7 @@ mpmem-wrap-around Target Report Make the linker relaxation machine assume that a program counter wrap-around occures. + +muse-device-lib +Target Report +Need for avr-libc 1.8.0 and up.