Okay - figured it out: __STACK_TOP defined in the .ld file.
In the old project, the .ld file defines both __StackTop and __STACK_TOP:
.stack :
{
. = ALIGN(8);
__StackLimit = .;
. += STACK_SIZE;
__StackTop = .;
__STACK_TOP = .;
PROVIDE(__stack = __StackTop);
} > m_data
The newer project only defines __StackTop:
/* Initializes stack on the end of block */
__StackTop = ORIGIN(m_data) + LENGTH(m_data);
__StackLimit = __StackTop - STACK_SIZE;
PROVIDE(__stack = __StackTop);
I could alias __StackTop to __STACK_TOP as in the old project, or change references in my code to _StackTop. The latter appears to be stylistically more correct. And it now compiles without error.