If I assemble the following PowerPC...
asm.as:
li r0, hello
nop
... I get an appropriate error message:
> powerpc-eabi-as -mregnames -mgekko ../asm.as -o asm.ob 
../asm.as: Assembler messages:
../asm.as:2: Error: unsupported relocation against hello
This is because hello is undefined. The error is desired behavior. However, if I use the @h (higher 16-bits) annotation, it will silently assemble and assume hello has value 0:
asm.as:
li r0, hello@h
nop
Commands used:
$ powerpc-eabi-as -mregnames -mgekko ../asm.as -o asm.ob 
$ powerpc-eabi-objcopy -O "binary" asm.ob asm 
$ rm asm.ob 
$ xxd -p asm 
3800000060000000
Why is this new code now accepted by the assembler when hello is still undefined? Is there a way to enable the error message again? I want to find out immediately if an undefined variable like this is used.