I am getting link errors about missing multiply routines. What is wrong?

The usual cause for this problem is that you specified a different "-mmcu=" option at the compile and link stages. Both the compiler and the linker need to know which device you are using. The compiler needs to know, so it can use hardware or software multiplies. The linker needs to know so it can choose the library for software multiplication or hardware multiplication, as appropriate. Unless you have explicitly defined the memory map, the linker also needs to know the target device, so it can choose the appropriate default memory definitions.