[ld] build_link_order question

Alan Modra amodra@gmail.com
Tue Apr 10 23:52:00 GMT 2018
On Tue, Apr 10, 2018 at 06:14:39PM +0200, Gunther Nikl wrote:
> Hello,
> 
> I am using an out-of-tree a.out target (m68k-amigaos). When placing
> the (a.out?) COMMON section into a .data output section the link fails
> in aoutx.h/get_reloc_upper_bound with "bfd_error_invalid_operation".
> AFAICT, this is because ld creates a link_order statement since the
> output section ".data" has contents. That is contrary to the usual
> destination ".bss"  where SEC_HAS_CONTENTS is not set. Is this a
> limitation of ldwrite.c:build_link_order/lang_input_section_enum?
> For a test I added a check there that catches input sections without
> contents to not create a link order. Then the link succeeds. Is this
> a proper solution?

No.  AOUT is a very limited format.  Your problem is that somehow you
are creating sections that don't match one of obj_textsec(output_bfd),
obj_datasec(output_bfd) or obj_bsssec(output_bfd).

-- 
Alan Modra
Australia Development Lab, IBM



More information about the Binutils mailing list