Это похоже на ошибку в 9.0.0. Похоже, что это не происходит с ToT или с 8.0.0.
Простой случай воспроизведения:
extern void* __heap_base;
void* a = &__heap_base;
void _start() {
}
Сборка с:
$ clang --target=wasm32 test.c -nostdlib -Wl,-no-gc-sections
С 9.0.0:
wasm-ld: error: /tmp/test-551a5c.o: undefined symbol: __heap_base
clang-9: error: linker command failed with exit code 1 (use -v to see invocation)
Это должно быть открыто как ошибка в багтрекере llvm.