gcc sparc v8 relocation error: value does not fit

in our case, we got this error when we tried to do:
load [label], register.

you have to set the label into a register, then do
load [register], register

load [register + offset], register

such as
load [%fp - 4], %l0

basically, just make sure your instructions are formatted properly!