Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 914172 Details for
Bug 1110249
elflint run-elflint-self.sh failure for ppc64le ELFv2 abi
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
ppc64-abiv2 patch
elfutils-0.159-ppc64-abiv2.patch (text/plain), 4.59 KB, created by
Menanteau Guy
on 2014-07-02 12:41:55 UTC
(
hide
)
Description:
ppc64-abiv2 patch
Filename:
MIME Type:
Creator:
Menanteau Guy
Created:
2014-07-02 12:41:55 UTC
Size:
4.59 KB
patch
obsolete
>--- elfutils-0.159/libelf/elf.h.ori >+++ elfutils-0.159/libelf/elf.h >@@ -1,5 +1,5 @@ > /* This file defines standard ELF types, structures, and macros. >- Copyright (C) 1995-2013 Free Software Foundation, Inc. >+ Copyright (C) 1995-2014 Free Software Foundation, Inc. > This file is part of the GNU C Library. > > The GNU C Library is free software; you can redistribute it and/or >@@ -2252,6 +2252,17 @@ typedef Elf32_Addr Elf32_Conflict; > #define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */ > #define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */ > #define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */ >+#define R_PPC64_TLSGD 107 /* none (sym+add)@tlsgd */ >+#define R_PPC64_TLSLD 108 /* none (sym+add)@tlsld */ >+#define R_PPC64_TOCSAVE 109 /* none */ >+ >+/* Added when HA and HI relocs were changed to report overflows. */ >+#define R_PPC64_ADDR16_HIGH 110 >+#define R_PPC64_ADDR16_HIGHA 111 >+#define R_PPC64_TPREL16_HIGH 112 >+#define R_PPC64_TPREL16_HIGHA 113 >+#define R_PPC64_DTPREL16_HIGH 114 >+#define R_PPC64_DTPREL16_HIGHA 115 > > /* GNU extension to support local ifunc. */ > #define R_PPC64_JMP_IREL 247 >@@ -2261,12 +2272,29 @@ typedef Elf32_Addr Elf32_Conflict; > #define R_PPC64_REL16_HI 251 /* half16 (sym+add-.)@h */ > #define R_PPC64_REL16_HA 252 /* half16 (sym+add-.)@ha */ > >+/* e_flags bits specifying ABI. >+ 1 for original function descriptor using ABI, >+ 2 for revised ABI without function descriptors, >+ 0 for unspecified or not using any features affected by the differences. */ >+#define EF_PPC64_ABI 3 >+ > /* PowerPC64 specific values for the Dyn d_tag field. */ > #define DT_PPC64_GLINK (DT_LOPROC + 0) > #define DT_PPC64_OPD (DT_LOPROC + 1) > #define DT_PPC64_OPDSZ (DT_LOPROC + 2) >+#define DT_PPC64_OPT (DT_LOPROC + 3) > #define DT_PPC64_NUM 3 > >+/* PowerPC64 specific values for the DT_PPC64_OPT Dyn entry. */ >+#define PPC64_OPT_TLS 1 >+#define PPC64_OPT_MULTI_TOC 2 >+ >+/* PowerPC64 specific values for the Elf64_Sym st_other field. */ >+#define STO_PPC64_LOCAL_BIT 5 >+#define STO_PPC64_LOCAL_MASK (7 << STO_PPC64_LOCAL_BIT) >+#define PPC64_LOCAL_ENTRY_OFFSET(other) \ >+ (((1 << (((other) & STO_PPC64_LOCAL_MASK) >> STO_PPC64_LOCAL_BIT)) >> 2) << 2) >+ > > /* ARM specific declarations */ > >--- elfutils-0.159/src/elflint.c.ori >+++ elfutils-0.159/src/elflint.c >@@ -793,7 +793,8 @@ section [%2d] '%s': symbol %zu: function > && strcmp (name, "__fini_array_end") != 0 > && strcmp (name, "__bss_start") != 0 > && strcmp (name, "__bss_start__") != 0 >- && strcmp (name, "__TMC_END__") != 0)) >+ && strcmp (name, "__TMC_END__") != 0 >+ && strcmp (name, ".TOC.") != 0)) > ERROR (gettext ("\ > section [%2d] '%s': symbol %zu: st_value out of bounds\n"), > idx, section_name (ebl, idx), cnt); >--- elfutils-0.159/backends/ppc64_init.c.ori >+++ elfutils-0.159/backends/ppc64_init.c >@@ -61,6 +61,7 @@ ppc64_init (elf, machine, eh, ehlen) > HOOK (eh, machine_flag_check); > HOOK (eh, copy_reloc_p); > HOOK (eh, check_special_symbol); >+ HOOK (eh, check_st_other_bits); > HOOK (eh, bss_plt_p); > HOOK (eh, return_value_location); > HOOK (eh, register_info); >--- elfutils-0.159/backends/ppc64_symbol.c.ori >+++ elfutils-0.159/backends/ppc64_symbol.c >@@ -72,6 +72,8 @@ ppc64_dynamic_tag_name (int64_t tag, cha > return "PPC64_OPD"; > case DT_PPC64_OPDSZ: > return "PPC64_OPDSZ"; >+ case DT_PPC64_OPT: >+ return "PPC64_OPT"; > default: > break; > } >@@ -84,7 +86,8 @@ ppc64_dynamic_tag_check (int64_t tag) > { > return (tag == DT_PPC64_GLINK > || tag == DT_PPC64_OPD >- || tag == DT_PPC64_OPDSZ); >+ || tag == DT_PPC64_OPDSZ >+ || tag == DT_PPC64_OPT); > } > > >@@ -120,3 +123,10 @@ ppc64_machine_flag_check (GElf_Word flag > { > return flags == 0 || flags == 1 || flags == 2; > } >+ >+bool >+ppc64_check_st_other_bits (unsigned char st_other) >+{ >+ return (PPC64_LOCAL_ENTRY_OFFSET (st_other) != 0); >+} >+ >--- elfutils-0.159/backends/ppc64_reloc.def.ori >+++ elfutils-0.159/backends/ppc64_reloc.def >@@ -132,6 +132,21 @@ RELOC_TYPE (DTPREL16_HIGHER, REL) > RELOC_TYPE (DTPREL16_HIGHERA, REL) > RELOC_TYPE (DTPREL16_HIGHEST, REL) > RELOC_TYPE (DTPREL16_HIGHESTA, REL) >+RELOC_TYPE (TLSGD, REL) >+RELOC_TYPE (TLSLD, REL) >+RELOC_TYPE (TOCSAVE, REL) >+RELOC_TYPE (ADDR16_HIGH, REL) >+RELOC_TYPE (ADDR16_HIGHA, REL) >+RELOC_TYPE (TPREL16_HIGH, REL) >+RELOC_TYPE (TPREL16_HIGHA, REL) >+RELOC_TYPE (DTPREL16_HIGH, REL) >+RELOC_TYPE (DTPREL16_HIGHA, REL) >+RELOC_TYPE (JMP_IREL, REL) >+RELOC_TYPE (IRELATIVE, REL) >+RELOC_TYPE (REL16, REL) >+RELOC_TYPE (REL16_LO, REL) >+RELOC_TYPE (REL16_HI, REL) >+RELOC_TYPE (REL16_HA, REL) > > /* Notes from Alan Modra: >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 1110249
:
909504
| 914172