If there is a symbol conflict, we will print out an error message like this.
foo.o (.text+0x100): duplicate symbol 'foobar' bar.o (.text+0x250): previous definition was here
We pass three arguments to reportDuplciate function, namely, the existing
symbol, the new conflicting symbol's section, and the offset of the new symbol.
If the existing is not a regular symbol, we fall back to a less user-friendly
message.
I found that we don't need the existing symbol to print out the first line of
the error message, so that error check was too strict. This patch simplifies
the function and relaxed the restriction.
ErrSec may be nullptr, if we're adding absolute symbol