Jens-Michael Gross suggested I post this in the CCS forum. I'm not an expert on compilers and linkers, so please read my original post in the msp430 forum here.
I'll try to reiterate and better explain what seems to be happening. Lets say I have 3 source files, "main.c", "A.c" and "B.c". Each is accompanied by a header file. There is a variable function pointer to a runtime-assigned callback function contained in 'A':
typedef void (*cbFunction_t)(void); cbFunction_t cbFoo = NULL; // NULL is #defined earlier as 0
In 'B', I have a static uint8_t foo with global scope to that file. When I compile, I get the linker error shown in the subject of this post. If I change the variable foo from static to volatile, the error goes away. If anyone has any answers, please explain. Thanks.