Turns out the leading underscore was required, as otherwise GCC complains the typedef is hiding the original.