This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hallo!
On Mon, 04 Jul 2011 12:55:55 +0200, I wrote:
> On Mon, 4 Jul 2011 09:15:26 +0200, Samuel Thibault <samuel.thibault@ens-lyon.org> wrote:
> > Matt Rice, le Sun 03 Jul 2011 23:42:10 -0700, a Ãcrit :
> > > On Sun, Jul 3, 2011 at 6:40 AM, Thomas Schwinge <thomas@schwinge.name> wrote:
> > > > On Thu, 30 Jun 2011 10:48:02 +0100, Nick Clifton <nickc@redhat.com> wrote:
> > > >> Â> [ELFOSABI_GNU]
> > > >>
> > > >> Approved - please apply.
> > > >
> > > > Applied, with the following additional changed:
> > >
> > > Hi, It isn't immediately obvious to me how to fix it but this patch
> > > broke gdb compilation,
> > >
> > > ELFOSABI_HURD and ELFOSABI_LINUX caused the respective i386gnu-tdep.c
> > > and i386-linux-tdep.c implementations to be used. Not sure what to
> > > replace that with, with these being the same and/or missing.
> >
> > I believe it should be turned into just one case (ELFOSABI_GNU), and
> > then use generic_elf_osabi_sniff_abi_tag_sections, as is done for
> > ELFOSABI_NONE, to distinguish between LINUX and HURD.
>
> That's what I'm thinking too, and here is the simple patch -- completely
> untested. Matt, are you interested in testing this? The must be no
> regressions for GNU/Linux [...]
No regressions in the testsuite for i686-pc-linux-gnu.
Additional manual testing:
GNU/Hurd box:
$ cp /bin/true true-h-0
$ cp /bin/true true-h-3
$ elfedit --output-osabi none true-h-0
$ elfedit --output-osabi linux true-h-3
(Need to use ``--output-osabi linux'' until ``--output-osabi GNU'' is
supported by the installed binutils version.)
GNU/Linux box:
$ cp /bin/true true-l-0
$ cp /bin/true true-l-3
$ elfedit --output-osabi none true-l-0
$ elfedit --output-osabi linux true-l-3
Without the patch, on i686-pc-linux-gnu:
$ for f in ~/tmp/true-*; do echo "* $(basename "$f"):" && gdb/gdb --batch -q -ex 'show osabi' "$f"; done
* true-h-0:
warning: A handler for the OS ABI "GNU/Hurd" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
The current OS ABI is "auto" (currently "GNU/Hurd").
The default OS ABI is "GNU/Linux".
* true-h-3:
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Linux".
* true-l-0:
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Linux".
* true-l-3:
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Linux".
(true-h-3 should fail in the same way as true-h-0.)
With the patch, on i686-pc-linux-gnu:
$ for f in ~/tmp/true-*; do echo "* $(basename "$f"):" && gdb/gdb --batch -q -ex 'show osabi' "$f"; done
* true-h-0:
warning: A handler for the OS ABI "GNU/Hurd" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
The current OS ABI is "auto" (currently "GNU/Hurd").
The default OS ABI is "GNU/Linux".
* true-h-3:
warning: A handler for the OS ABI "GNU/Hurd" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
The current OS ABI is "auto" (currently "GNU/Hurd").
The default OS ABI is "GNU/Linux".
* true-l-0:
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Linux".
* true-l-3:
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Linux".
All OK.
With the patch, on i686-unknown-gnu0.3:
$ for f in ~/tmp/true-*; do echo "* $(basename "$f"):" && gdb/gdb --batch -q -ex 'show osabi' "$f"; done
* true-h-0:
The current OS ABI is "auto" (currently "GNU/Hurd").
The default OS ABI is "GNU/Hurd".
* true-h-3:
The current OS ABI is "auto" (currently "GNU/Hurd").
The default OS ABI is "GNU/Hurd".
* true-l-0:
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Hurd".
* true-l-3:
warning: A handler for the OS ABI "GNU/Linux" is not built into this configuration
of GDB. Attempting to continue with the default i386 settings.
The current OS ABI is "auto" (currently "GNU/Linux").
The default OS ABI is "GNU/Hurd".
All OK.
> 2011-07-04 Thomas Schwinge <thomas@schwinge.name>
>
> gdb/
> * osabi.c (generic_elf_osabi_sniffer) <ELFOSABI_GNU>: Handle in the
> same way as ELFOSABI_NONE.
> <ELFOSABI_LINUX, ELFOSABI_HURD>: Remove cases.
>
> diff --git a/gdb/osabi.c b/gdb/osabi.c
> index a264924..7820ecb 100644
> --- a/gdb/osabi.c
> +++ b/gdb/osabi.c
> @@ -519,6 +519,11 @@ generic_elf_osabi_sniffer (bfd *abfd)
> the base specification for that machine (there are no
> OS-specific extensions). In order to determine the real OS
> in use we must look for OS-specific notes. */
> + /* Fall through. */
> +
> + case ELFOSABI_GNU:
> + /* The same applies for ELFOSABI_GNU: this can mean GNU/Hurd, GNU/Linux,
> + and possibly more. */
> bfd_map_over_sections (abfd,
> generic_elf_osabi_sniff_abi_tag_sections,
> &osabi);
> @@ -532,14 +537,6 @@ generic_elf_osabi_sniffer (bfd *abfd)
> osabi = GDB_OSABI_NETBSD_ELF;
> break;
>
> - case ELFOSABI_LINUX:
> - osabi = GDB_OSABI_LINUX;
> - break;
> -
> - case ELFOSABI_HURD:
> - osabi = GDB_OSABI_HURD;
> - break;
> -
> case ELFOSABI_SOLARIS:
> osabi = GDB_OSABI_SOLARIS;
> break;
OK for HEAD?
I now had a look at the complete ``Cygnus src tree'', and there is no
further use of ELFOSABI_HURD. There is an additional definition of it in
winsup/cygwin/include/sys/elf_common.h (and ELFOSABI_GNU missing). Is
that file still in active use?
GrÃÃe,
Thomas
Attachment:
pgp00000.pgp
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |