Minor change to support some new functionality in newlib. Committed. * config/msp430/msp430.opt (-minrt): New. * config/msp430/msp430.h (STARTFILE_SPEC): Link alternate runtime if -minrt given. (ENDFILE_SPEC): Likewise.
Index: gcc/config/msp430/msp430.opt =================================================================== --- gcc/config/msp430/msp430.opt (revision 207293) +++ gcc/config/msp430/msp430.opt (working copy) @@ -25,6 +25,10 @@ Select small model - 16-bit addresses/po mrelax Target Report Optimize opcode sizes at link time mOs Target Undocumented Mask(OPT_SPACE) + +minrt +Target Report Mask(MINRT) RejectNegative +Use a minimum runtime (no static initializers or ctors) for memory-constrained devices. Index: gcc/config/msp430/msp430.h =================================================================== --- gcc/config/msp430/msp430.h (revision 207293) +++ gcc/config/msp430/msp430.h (working copy) @@ -42,17 +42,17 @@ extern bool msp430x; else \ builtin_assert ("cpu=MSP430"); \ } \ while (0) #undef STARTFILE_SPEC -#define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:crt0.o%s} crtbegin.o%s" +#define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{minrt:crt0-minrt.o%s}%{!minrt:crt0.o%s}} %{!minrt:crtbegin.o%s}" /* -lgcc is included because crtend.o needs __mspabi_func_epilog_1. */ #undef ENDFILE_SPEC -#define ENDFILE_SPEC "crtend.o%s crtn.o%s -lgcc" +#define ENDFILE_SPEC "%{!minrt:crtend.o%s} %{minrt:crtn-minrt.o%s}%{!minrt:crtn.o%s} -lgcc" #define ASM_SPEC "-mP " /* Enable polymorphic instructions. */ \ "%{mcpu=*:-mcpu=%*}%{!mcpu=*:%{mmcu=*:-mmcu=%*}} " /* Pass the CPU type on to the assembler. */ \ "%{mrelax=-mQ} " /* Pass the relax option on to the assembler. */ \ "%{mlarge:-ml} " /* Tell the assembler if we are building for the LARGE pointer model. */ \ "%{!msim:-md} %{msim:%{mlarge:-md}}" /* Copy data from ROM to RAM if necessary. */ \