When I link my files with msp430-ld it keeps saying "undefined reference to `__stop_progExec__'". What's up?

You forgot to link a couple of things - startup code, interrupt vectors and libraries. The proper linker command looks something like:


$ msp430-ld -m msp430x[arch]
/usr/local/msp430/bin/../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib/crt430x[arch].o
-L/usr/local/msp430/bin/../lib/gcc-lib/msp430/3.2.3/msp1
-L/usr/local/msp430/bin/../lib/gcc-lib/msp430/3.2.3
-L/usr/local/msp430/bin/../lib/gcc-lib
-L/usr/local/msp430//lib/gcc-lib/msp430/3.2.3/msp1
-L/usr/local/msp430//lib/gcc-lib/msp430/3.2.3
-L/usr/local/msp430/bin/../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib/msp1
-L/usr/local/msp430/bin/../lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib
-L/usr/local/msp430//lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib/msp1
-L/usr/local/msp430//lib/gcc-lib/msp430/3.2.3/../../../../msp430/lib
-L/usr/local/msp430/bin/../lib/gcc-lib/msp430/3.2.3/../../..
[object file].o -lgcc -lc -lgcc
Of course, this is a pain to type, so don't! The simple way is to use msp430-gcc as a front end to the linker. Then you can just type:

$ msp430-gcc -mmcu=[arch] -L[extra lib path] -l[extra lib] obj1.o obj2.o ... -o outfile