[PATCH, v2] Fix 32-bit build for --enable-targets=all
Jose E. Marchesi
jose.marchesi@oracle.com
Tue Apr 26 08:07:53 GMT 2022
Hi Alan.
> On Mon, Apr 25, 2022 at 08:40:54AM +0100, Luis Machado wrote:
>> On 4/24/22 15:58, Joel Brobecker wrote:
>> > Looking at this patch, I think you you may not have seen Alan's
>> > comment, which je sent on Apr 18, saying:
>> >
>> > https://sourceware.org/pipermail/gdb-patches/2022-April/187960.html
>> > | Anything that requires 64-bit BFD support does not belong in
>> > | TARGET32_LIBOPCODES_CFILES. In fact, the whole point of
>> > | TARGET32_LIBOPCODES_CFILES was to fix --enable-targets=all breakage on
>> > | 32-bit hosts without --enable-64-bit-bfd. Why would you want to put
>> > | bpf here? It's a 64-bit target!
>> >
>> > (I see that you weren't in the list of direct recipients for that email)
>> >
>>
>> Yes, it looks that way.
>>
>> Unfortunately --enable-targets=all never really worked OK for 32-bit builds
>> after splitting 64/32 targets. It is not clear to me if there are bugs
>> elsewhere that are preventing a clean build, but right now it doesn't look
>> buildable at all.
>>
>> Alan?
>
> The major problem I have with your patch is that all it does is sweep
> a problem under the rug. While it may fix a build breakage I doubt
> that it actually improves anything for users. For example, if I apply
> your patch for a 32-bit --enable-targets=all binutils build, then
> attempt to disassemble one of the bpf gas testsuite objects:
>
> $ ~/build/gas/all32/binutils/objdump -dr tmpdir/lddw.o
> /home/alan/build/gas/all32/binutils/objdump: tmpdir/lddw.o: file format not recognized
>
> That's due to lack of the required support from bfd/elf64-bpf.c to
> load bpf object files into BFD.
Could you please elaborate on that?
What is it in elf64-bpf.c that must be improved in order to support
32-bit --enable-targets=all binutils?
> I think you'll find a similar result for the other targets your patch
> touches, and not just with objdump but with everything else that uses
> libbfd.
>
> There is also a minor problem with the patch in that it adds entries
> to TARGET32_LIBOPCODES_CFILES without removing the corresponding
> entries from TARGET64_LIBOPCODES_CFILES. Similarly for the defines in
> opcodes/disassemble.c.
More information about the Binutils
mailing list