I faced that when tried to link FreeBSD kernel. It was "duplicate symbol: _edata in (internal) and (internal)" error.
_data was a shared symbol that came from hack.so. At first it was replaced with DefinedRegular by the code
disabled in this patch and later when script tried to define the same symbol - the error was shown.
I think when SECTIONS command is used we should not define these symbols automatically.
In the same situation (as given in testcase) ld defines them as UND. gold defines as ABS with zero value.
I suggest just do not do anything in this case and let script handle everything.