Defining _GNU_SOURCE causes musl to define everything including everything protected by _XOPEN_SOURCE. However it does not cause musl to define _XOPEN_SOURCE.
On the other hand, the ncurses header specifically checks for _XOPEN_SOURCE or _XOPEN_SOURCE_EXTENDED. So it is not completely clear where this should be fixed. -- Felix