Browse Source

ELFOSABI_GNU

bfd/
	* elf.c (_bfd_elf_set_osabi): Use ELFOSABI_GNU name instead of
	ELFOSABI_LINUX alias.
	* elf32-hppa.c: Likewise.
	* elf32-i370.c: Likewise.
	* elf64-hppa.c: Likewise.

	binutils/
	* elfedit.c (osabis): Use ELFOSABI_GNU name instead of ELFOSABI_LINUX
	alias and ELFOSABI_HURD.  Add GNU alias.
	* readelf.c (get_osabi_name, get_symbol_binding, get_symbol_type):
	Likewise.
	* doc/binutils.texi <elfedit>: Update accordingly.

	elfcpp/
	* elfcpp.h (ELFOSABI): Add ELFOSABI_GNU with value of ELFOSABI_LINUX,
	keep ELFOSABI_LINUX as an alias.  Remove ELFOSABI_HURD.

	gas/
	* config/obj-elf.c (obj_elf_type): Use ELFOSABI_GNU name instead of
	ELFOSABI_LINUX alias.
	* config/tc-ia64.c: Likewise.

	include/elf/
	* common.h (ELFOSABI_GNU): Define, replaces...
	(ELFOSABI_LINUX): ... this, kept as an alias.
	(ELFOSABI_HURD): Remove.

	ld/testsuite/
	* ld-ifunc/ifunc.exp: Update for changed output.
	* ld-unique/unique.exp: Likewise.
binutils-2_22-branch
Thomas Schwinge 15 years ago
parent
commit
9c55345c8c
  1. 9
      bfd/ChangeLog
  2. 4
      bfd/elf.c
  3. 6
      bfd/elf32-hppa.c
  4. 2
      bfd/elf32-i370.c
  5. 6
      bfd/elf64-hppa.c
  6. 9
      binutils/ChangeLog
  7. 3
      binutils/doc/binutils.texi
  8. 4
      binutils/elfedit.c
  9. 11
      binutils/readelf.c
  10. 6
      elfcpp/ChangeLog
  11. 5
      elfcpp/elfcpp.h
  12. 7
      gas/ChangeLog
  13. 12
      gas/config/obj-elf.c
  14. 2
      gas/config/tc-ia64.c
  15. 5
      gas/doc/as.texinfo
  16. 7
      include/elf/ChangeLog
  17. 4
      include/elf/common.h
  18. 6
      ld/testsuite/ChangeLog
  19. 14
      ld/testsuite/ld-ifunc/ifunc.exp
  20. 16
      ld/testsuite/ld-unique/unique.exp

9
bfd/ChangeLog

@ -1,3 +1,12 @@
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
* elf.c (_bfd_elf_set_osabi): Use ELFOSABI_GNU name instead of
ELFOSABI_LINUX alias.
* elf32-hppa.c: Likewise.
* elf32-i370.c: Likewise.
* elf64-hppa.c: Likewise.
2011-07-01 Ian Lance Taylor <iant@google.com>
* elf32-i386.c (elf_i386_eh_frame_plt): Correct expression: change

4
bfd/elf.c

@ -9610,11 +9610,11 @@ _bfd_elf_set_osabi (bfd * abfd,
i_ehdrp->e_ident[EI_OSABI] = get_elf_backend_data (abfd)->elf_osabi;
/* To make things simpler for the loader on Linux systems we set the
osabi field to ELFOSABI_LINUX if the binary contains symbols of
osabi field to ELFOSABI_GNU if the binary contains symbols of
the STT_GNU_IFUNC type or STB_GNU_UNIQUE binding. */
if (i_ehdrp->e_ident[EI_OSABI] == ELFOSABI_NONE
&& elf_tdata (abfd)->has_gnu_symbols)
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_LINUX;
i_ehdrp->e_ident[EI_OSABI] = ELFOSABI_GNU;
}

6
bfd/elf32-hppa.c

@ -950,9 +950,9 @@ elf32_hppa_object_p (bfd *abfd)
i_ehdrp = elf_elfheader (abfd);
if (strcmp (bfd_get_target (abfd), "elf32-hppa-linux") == 0)
{
/* GCC on hppa-linux produces binaries with OSABI=Linux,
/* GCC on hppa-linux produces binaries with OSABI=GNU,
but the kernel produces corefiles with OSABI=SysV. */
if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX &&
if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_GNU &&
i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_NONE) /* aka SYSV */
return FALSE;
}
@ -4678,7 +4678,7 @@ elf32_hppa_elf_get_symbol_type (Elf_Internal_Sym *elf_sym, int type)
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf32-hppa-linux"
#undef ELF_OSABI
#define ELF_OSABI ELFOSABI_LINUX
#define ELF_OSABI ELFOSABI_GNU
#undef elf32_bed
#define elf32_bed elf32_hppa_linux_bed

2
bfd/elf32-i370.c

@ -1368,7 +1368,7 @@ i370_elf_relocate_section (bfd *output_bfd,
#define ELF_MACHINE_ALT1 EM_I370_OLD
#endif
#define ELF_MAXPAGESIZE 0x1000
#define ELF_OSABI ELFOSABI_LINUX
#define ELF_OSABI ELFOSABI_GNU
#define elf_info_to_howto i370_elf_info_to_howto

6
bfd/elf64-hppa.c

@ -329,9 +329,9 @@ elf64_hppa_object_p (bfd *abfd)
i_ehdrp = elf_elfheader (abfd);
if (strcmp (bfd_get_target (abfd), "elf64-hppa-linux") == 0)
{
/* GCC on hppa-linux produces binaries with OSABI=Linux,
/* GCC on hppa-linux produces binaries with OSABI=GNU,
but the kernel produces corefiles with OSABI=SysV. */
if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_LINUX
if (i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_GNU
&& i_ehdrp->e_ident[EI_OSABI] != ELFOSABI_NONE) /* aka SYSV */
return FALSE;
}
@ -4097,7 +4097,7 @@ const struct elf_size_info hppa64_elf_size_info =
#undef TARGET_BIG_NAME
#define TARGET_BIG_NAME "elf64-hppa-linux"
#undef ELF_OSABI
#define ELF_OSABI ELFOSABI_LINUX
#define ELF_OSABI ELFOSABI_GNU
#undef elf_backend_post_process_headers
#define elf_backend_post_process_headers _bfd_elf_set_osabi
#undef elf64_bed

9
binutils/ChangeLog

@ -1,3 +1,12 @@
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
* elfedit.c (osabis): Use ELFOSABI_GNU name instead of ELFOSABI_LINUX
alias and ELFOSABI_HURD. Add GNU alias.
* readelf.c (get_osabi_name, get_symbol_binding, get_symbol_type):
Likewise.
* doc/binutils.texi <elfedit>: Update accordingly.
2011-07-01 Nick Clifton <nickc@redhat.com>
PR binutils/12325

3
binutils/doc/binutils.texi

@ -4295,7 +4295,8 @@ Set the matching input ELF file OSABI to @var{osabi}. If
@option{--input-osabi} isn't specified, it will match any ELF OSABIs.
The supported ELF OSABIs are, @var{none}, @var{HPUX}, @var{NetBSD},
@var{Linux}, @var{Hurd}, @var{Solaris}, @var{AIX}, @var{Irix},
@var{GNU}, @var{Linux} (alias for @var{GNU}),
@var{Solaris}, @var{AIX}, @var{Irix},
@var{FreeBSD}, @var{TRU64}, @var{Modesto}, @var{OpenBSD}, @var{OpenVMS},
@var{NSK}, @var{AROS} and @var{FenixOS}.

4
binutils/elfedit.c

@ -518,8 +518,8 @@ osabis[] =
{ ELFOSABI_NONE, "none" },
{ ELFOSABI_HPUX, "HPUX" },
{ ELFOSABI_NETBSD, "NetBSD" },
{ ELFOSABI_LINUX, "Linux" },
{ ELFOSABI_HURD, "Hurd" },
{ ELFOSABI_GNU, "GNU" },
{ ELFOSABI_GNU, "Linux" },
{ ELFOSABI_SOLARIS, "Solaris" },
{ ELFOSABI_AIX, "AIX" },
{ ELFOSABI_IRIX, "Irix" },

11
binutils/readelf.c

@ -2612,8 +2612,7 @@ get_osabi_name (unsigned int osabi)
case ELFOSABI_NONE: return "UNIX - System V";
case ELFOSABI_HPUX: return "UNIX - HP-UX";
case ELFOSABI_NETBSD: return "UNIX - NetBSD";
case ELFOSABI_LINUX: return "UNIX - Linux";
case ELFOSABI_HURD: return "GNU/Hurd";
case ELFOSABI_GNU: return "UNIX - GNU";
case ELFOSABI_SOLARIS: return "UNIX - Solaris";
case ELFOSABI_AIX: return "UNIX - AIX";
case ELFOSABI_IRIX: return "UNIX - IRIX";
@ -8587,8 +8586,8 @@ get_symbol_binding (unsigned int binding)
else if (binding >= STB_LOOS && binding <= STB_HIOS)
{
if (binding == STB_GNU_UNIQUE
&& (elf_header.e_ident[EI_OSABI] == ELFOSABI_LINUX
/* GNU/Linux is still using the default value 0. */
&& (elf_header.e_ident[EI_OSABI] == ELFOSABI_GNU
/* GNU is still using the default value 0. */
|| elf_header.e_ident[EI_OSABI] == ELFOSABI_NONE))
return "UNIQUE";
snprintf (buff, sizeof (buff), _("<OS specific>: %d"), binding);
@ -8640,8 +8639,8 @@ get_symbol_type (unsigned int type)
}
if (type == STT_GNU_IFUNC
&& (elf_header.e_ident[EI_OSABI] == ELFOSABI_LINUX
/* GNU/Linux is still using the default value 0. */
&& (elf_header.e_ident[EI_OSABI] == ELFOSABI_GNU
/* GNU is still using the default value 0. */
|| elf_header.e_ident[EI_OSABI] == ELFOSABI_NONE))
return "IFUNC";

6
elfcpp/ChangeLog

@ -1,3 +1,9 @@
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
* elfcpp.h (ELFOSABI): Add ELFOSABI_GNU with value of ELFOSABI_LINUX,
keep ELFOSABI_LINUX as an alias. Remove ELFOSABI_HURD.
2011-07-01 Ian Lance Taylor <iant@google.com>
* dwarf.h (enum DW_CFA): Define.

5
elfcpp/elfcpp.h

@ -129,10 +129,9 @@ enum ELFOSABI
ELFOSABI_NONE = 0,
ELFOSABI_HPUX = 1,
ELFOSABI_NETBSD = 2,
// ELFOSABI_LINUX is not listed in the ELF standard.
ELFOSABI_GNU = 3,
// ELFOSABI_LINUX is an alias for ELFOSABI_GNU.
ELFOSABI_LINUX = 3,
// ELFOSABI_HURD is not listed in the ELF standard.
ELFOSABI_HURD = 4,
ELFOSABI_SOLARIS = 6,
ELFOSABI_AIX = 7,
ELFOSABI_IRIX = 8,

7
gas/ChangeLog

@ -1,3 +1,10 @@
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
* config/obj-elf.c (obj_elf_type): Use ELFOSABI_GNU name instead of
ELFOSABI_LINUX alias.
* config/tc-ia64.c: Likewise.
2011-06-30 Paul Carroll <pcarroll@codesourcery.com>
* config/tc-arm.c (do_t_add_sub): Only allow LSL shifts of less

12
gas/config/obj-elf.c

@ -1704,8 +1704,8 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
const struct elf_backend_data *bed;
bed = get_elf_backend_data (stdoutput);
if (!(bed->elf_osabi == ELFOSABI_LINUX
/* GNU/Linux is still using the default value 0. */
if (!(bed->elf_osabi == ELFOSABI_GNU
/* GNU is still using the default value 0. */
|| bed->elf_osabi == ELFOSABI_NONE))
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
type_name);
@ -1716,14 +1716,14 @@ obj_elf_type (int ignore ATTRIBUTE_UNUSED)
struct elf_backend_data *bed;
bed = (struct elf_backend_data *) get_elf_backend_data (stdoutput);
if (!(bed->elf_osabi == ELFOSABI_LINUX
/* GNU/Linux is still using the default value 0. */
if (!(bed->elf_osabi == ELFOSABI_GNU
/* GNU is still using the default value 0. */
|| bed->elf_osabi == ELFOSABI_NONE))
as_bad (_("symbol type \"%s\" is supported only by GNU targets"),
type_name);
type = BSF_OBJECT | BSF_GNU_UNIQUE;
/* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols. */
bed->elf_osabi = ELFOSABI_LINUX;
/* PR 10549: Always set OSABI field to GNU for objects containing unique symbols. */
bed->elf_osabi = ELFOSABI_GNU;
}
#ifdef md_elf_symbol_type
else if ((type = md_elf_symbol_type (type_name, sym, elfsym)) != -1)

2
gas/config/tc-ia64.c

@ -614,7 +614,7 @@ pseudo_func[] =
{ "svr4", PSEUDO_FUNC_CONST, { ELFOSABI_NONE } },
{ "hpux", PSEUDO_FUNC_CONST, { ELFOSABI_HPUX } },
{ "nt", PSEUDO_FUNC_CONST, { 2 } }, /* conflicts w/ELFOSABI_NETBSD */
{ "linux", PSEUDO_FUNC_CONST, { ELFOSABI_LINUX } },
{ "linux", PSEUDO_FUNC_CONST, { ELFOSABI_GNU } },
{ "freebsd", PSEUDO_FUNC_CONST, { ELFOSABI_FREEBSD } },
{ "openvms", PSEUDO_FUNC_CONST, { ELFOSABI_OPENVMS } },
{ "nsk", PSEUDO_FUNC_CONST, { ELFOSABI_NSK } },

5
gas/doc/as.texinfo

@ -6438,7 +6438,7 @@ Mark the symbol as being a function name.
@item STT_GNU_IFUNC
@itemx gnu_indirect_function
Mark the symbol as an indirect function when evaluated during reloc
processing. (This is only supported on Linux targeted assemblers).
processing. (This is only supported on assemblers targeting GNU systems).
@item STT_OBJECT
@itemx object
@ -6459,7 +6459,8 @@ Does not mark the symbol in any way. It is supported just for completeness.
@item gnu_unique_object
Marks the symbol as being a globally unique data object. The dynamic linker
will make sure that in the entire process there is just one symbol with this
name and type in use. (This is only supported on Linux targeted assemblers).
name and type in use. (This is only supported on assemblers targeting GNU
systems).
@end table

7
include/elf/ChangeLog

@ -1,3 +1,10 @@
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
* common.h (ELFOSABI_GNU): Define, replaces...
(ELFOSABI_LINUX): ... this, kept as an alias.
(ELFOSABI_HURD): Remove.
2011-06-15 Ulrich Weigand <ulrich.weigand@linaro.org>
* common.h (NT_ARM_VFP): Define.

4
include/elf/common.h

@ -62,8 +62,8 @@
#define ELFOSABI_NONE 0 /* UNIX System V ABI */
#define ELFOSABI_HPUX 1 /* HP-UX operating system */
#define ELFOSABI_NETBSD 2 /* NetBSD */
#define ELFOSABI_LINUX 3 /* GNU/Linux */
#define ELFOSABI_HURD 4 /* GNU/Hurd */
#define ELFOSABI_GNU 3 /* GNU */
#define ELFOSABI_LINUX 3 /* Alias for ELFOSABI_GNU */
#define ELFOSABI_SOLARIS 6 /* Solaris */
#define ELFOSABI_AIX 7 /* AIX */
#define ELFOSABI_IRIX 8 /* IRIX */

6
ld/testsuite/ChangeLog

@ -1,3 +1,9 @@
2011-07-03 Samuel Thibault <samuel.thibault@gnu.org>
Thomas Schwinge <thomas@schwinge.name>
* ld-ifunc/ifunc.exp: Update for changed output.
* ld-unique/unique.exp: Likewise.
2011-06-27 Nick Clifton <nickc@redhat.com>
* ld-elf/elf.exp: Exlcude all v850 targets from note-3 test.

14
ld/testsuite/ld-ifunc/ifunc.exp

@ -244,19 +244,19 @@ if { $fails == 0 } {
# Check the executables and shared libraries
#
# The linked ifunc using executables and the shared library containing
# ifunc should have an OSABI field of LINUX. The linked non-ifunc using
# ifunc should have an OSABI field of GNU. The linked non-ifunc using
# executable should have an OSABI field of NONE (aka System V).
if {! [check_osabi tmpdir/libshared_ifunc.so {UNIX - Linux}]} {
fail "Shared libraries containing ifunc does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/libshared_ifunc.so {UNIX - GNU}]} {
fail "Shared libraries containing ifunc does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
if {! [check_osabi tmpdir/local_prog {UNIX - Linux}]} {
fail "Local ifunc-using executable does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/local_prog {UNIX - GNU}]} {
fail "Local ifunc-using executable does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
if {! [check_osabi tmpdir/static_prog {UNIX - Linux}]} {
fail "Static ifunc-using executable does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/static_prog {UNIX - GNU}]} {
fail "Static ifunc-using executable does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
if {! [check_osabi tmpdir/dynamic_prog {UNIX - System V}]} {

16
ld/testsuite/ld-unique/unique.exp

@ -149,8 +149,8 @@ if { $fails != 0 } {
}
# Check the object file.
if {! [check_osabi tmpdir/unique.o {UNIX - Linux}]} {
fail "Object containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/unique.o {UNIX - GNU}]} {
fail "Object containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
@ -164,8 +164,8 @@ if { $fails == 0 } {
}
# Check the executable.
if {! [check_osabi tmpdir/unique_prog {UNIX - Linux}]} {
fail "Executable containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/unique_prog {UNIX - GNU}]} {
fail "Executable containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
@ -194,8 +194,8 @@ if { $fails == 0 } {
}
# Check the unique PIC file.
if {! [check_osabi tmpdir/unique_shared.o {UNIX - Linux}]} {
fail "PIC Object containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/unique_shared.o {UNIX - GNU}]} {
fail "PIC Object containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}
@ -209,8 +209,8 @@ if { $fails == 0 } {
}
# Check the unique shared library.
if {! [check_osabi tmpdir/libunique_shared.so {UNIX - Linux}]} {
fail "Shared library containing unique does not have an OS/ABI field of LINUX"
if {! [check_osabi tmpdir/libunique_shared.so {UNIX - GNU}]} {
fail "Shared library containing unique does not have an OS/ABI field of GNU"
set fails [expr $fails + 1]
}

Loading…
Cancel
Save