This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [ld] build_link_order question
- From: Alan Modra <amodra at gmail dot com>
- To: Gunther Nikl <gnikl at justmail dot de>
- Cc: binutils <binutils at sourceware dot org>
- Date: Wed, 11 Apr 2018 09:22:43 +0930
- Subject: Re: [ld] build_link_order question
- References: <20180410181439.00003f34@justmail.de>
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