From: Andrew Burgess <aburgess@redhat.com>
To: gdb-patches@sourceware.org
Subject: Re: [PATCH] gdb: only include mips and riscv targets if building with 64-bit bfd
Date: Mon, 13 Dec 2021 11:09:33 +0000 [thread overview]
Message-ID: <20211213110933.GA175541@redhat.com> (raw)
In-Reply-To: <20211209180826.1818792-1-aburgess@redhat.com>
Thank you everyone for all the feedback.
I've now pushed this patch. As has been discussed on this thread, and
the thread Jim linked, if/when the situation changes, and either riscv
or mips can build with a 32-bit libbfd, then I'm obviously happy for
some/all of this patch to be reverted.
Thanks,
Andrew
* Andrew Burgess <aburgess@redhat.com> [2021-12-09 18:08:26 +0000]:
> While testing another patch I was trying to build different
> configurations of GDB, and, during one test build I ran into a
> problem, I configured with `--enable-targets=all
> --host=i686-w64-mingw32` and saw this error while linking GDB:
>
> .../i686-w64-mingw32/bin/ld: mips-tdep.o: in function `mips_gdbarch_init':
> .../src/gdb/mips-tdep.c:8730: undefined reference to `disassembler_options_mips'
> .../i686-w64-mingw32/bin/ld: riscv-tdep.o: in function `riscv_gdbarch_init':
> .../src/gdb/riscv-tdep.c:3851: undefined reference to `disassembler_options_riscv'
>
> So the `disassembler_options_mips` and `disassembler_options_riscv`
> symbols are missing.
>
> This turns out to be because mips-dis.c and riscv-dis.c, in which
> these symbols are defined, are in the TARGET64_LIBOPCODES_CFILES list
> in opcodes/Makefile.am, these files are only built when we are
> building with a 64-bit bfd.
>
> If we look further, into bfd/Makefile.am, we can see that all the
> files matching elf*-riscv.lo are in the BFD64_BACKENDS list, as are
> the elf*-mips.lo files, and (I know because I tried), the two
> disassemblers do, not surprisingly, depend on features supplied from
> libbfd.
>
> So, though we can build most of GDB just fine for riscv and mips with
> a 32-bit bfd, if I understand correctly, the final GDB
> executable (assuming we could get it to link) would not understand
> these architectures at the bfd level, nor would there be any
> disassembler available. This sounds like a pretty useless GDB to me.
>
> So, in this commit, I move the riscv and mips targets into GDB's list
> of targets that require a 64-bit bfd. After this I can build GDB just
> fine with the configure options given above.
> ---
> gdb/Makefile.in | 22 +++++++++++-----------
> 1 file changed, 11 insertions(+), 11 deletions(-)
>
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index bff27577b95..f2966cf6c00 100644
> --- a/gdb/Makefile.in
> +++ b/gdb/Makefile.in
> @@ -710,10 +710,21 @@ ALL_64_TARGET_OBS = \
> arch/aarch64-insn.o \
> arch/aarch64-mte-linux.o \
> arch/amd64.o \
> + arch/riscv.o \
> ia64-linux-tdep.o \
> ia64-tdep.o \
> ia64-vms-tdep.o \
> + mips-fbsd-tdep.o \
> + mips-linux-tdep.o \
> + mips-netbsd-tdep.o \
> + mips-sde-tdep.o \
> + mips-tdep.o \
> mips64-obsd-tdep.o \
> + riscv-fbsd-tdep.o \
> + riscv-linux-tdep.o \
> + riscv-none-tdep.o \
> + riscv-ravenscar-thread.o \
> + riscv-tdep.o \
> sparc64-fbsd-tdep.o \
> sparc64-linux-tdep.o \
> sparc64-netbsd-tdep.o \
> @@ -734,7 +745,6 @@ ALL_TARGET_OBS = \
> arch/arm-linux.o \
> arch/i386.o \
> arch/ppc-linux-common.o \
> - arch/riscv.o \
> arm-bsd-tdep.o \
> arm-fbsd-tdep.o \
> arm-linux-tdep.o \
> @@ -793,11 +803,6 @@ ALL_TARGET_OBS = \
> mep-tdep.o \
> microblaze-linux-tdep.o \
> microblaze-tdep.o \
> - mips-fbsd-tdep.o \
> - mips-linux-tdep.o \
> - mips-netbsd-tdep.o \
> - mips-sde-tdep.o \
> - mips-tdep.o \
> mn10300-linux-tdep.o \
> mn10300-tdep.o \
> moxie-tdep.o \
> @@ -818,11 +823,6 @@ ALL_TARGET_OBS = \
> ppc-sysv-tdep.o \
> ppc64-tdep.o \
> ravenscar-thread.o \
> - riscv-fbsd-tdep.o \
> - riscv-linux-tdep.o \
> - riscv-none-tdep.o \
> - riscv-ravenscar-thread.o \
> - riscv-tdep.o \
> rl78-tdep.o \
> rs6000-aix-tdep.o \
> rs6000-lynx178-tdep.o \
> --
> 2.25.4
>
prev parent reply other threads:[~2021-12-13 11:09 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-09 18:08 Andrew Burgess
2021-12-09 18:50 ` John Baldwin
2021-12-10 10:24 ` Andrew Burgess
2021-12-10 17:05 ` John Baldwin
2021-12-09 22:40 ` Jim Wilson
2021-12-10 10:42 ` Andrew Burgess
2021-12-13 11:09 ` Andrew Burgess [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211213110933.GA175541@redhat.com \
--to=aburgess@redhat.com \
--cc=gdb-patches@sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).