Steve, Your FAQ update doesn't address the actual issue, and that's NONE of the .a files in /usr/local/msp430 contain the object code for __umulsi3hw. As you can see from the 'nm' output, there are 4 functions that need it, and no declarations for it (compared to the 'strcmp', picked at random). FWIW, I'm compiling for a MSP430F147.
In /usr/local/msp430/lib/lib/gcc-lib/msp430/3.2.3/msp2/libgcc.a, the functions _mulvsi3, _udivmoddi4 and _mulvsi3 want __umulsi3hw. In /usr/local/msp430/msp430/lib/msp2/libc.a, the functions strtol and strtoul want __umulsi3hw. So where is it? --John [r...@linux msp430]# find /usr/local/msp430 -name \*.a | xargs nm | grep 3hw U __umulsi3hw U __umulsi3hw U __umulsi3hw U __umulsi3hw [r...@linux msp430]# find /usr/local/msp430 -name \*.a | xargs nm | grep strcmp U strcmp U strcmp U strcmp U strcmp strcmp.o: 00000000 T strcmp strcmp.o: 00000000 T strcmp strcmp.o: 00000000 T strcmp