vapier 08/04/20 08:20:06
Added: elfutils-0.131-gnu-inline.patch
Log:
Use Debian patched tarball to fix #158438 and add fix by Ryan Hill for building with gcc-4.3 #204610.
(Portage version: 2.2_pre5)
Revision Changes Path
1.1 dev-libs/elfutils/files/elfutils-0.131-gnu-inline.patch
file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-libs/elfutils/files/elfutils-0.131-gnu-inline.patch?rev=1.1&view=markup
plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/dev-libs/elfutils/files/elfutils-0.131-gnu-inline.patch?rev=1.1&content-type=text/plain
Index: elfutils-0.131-gnu-inline.patch
===================================================================
fix 'extern inline' handling to use gnu inlines
http://bugs.gentoo.org/204610
--- elfutils-0.131/backends/ia64_retval.c
+++ elfutils-0.131/backends/ia64_retval.c
@@ -96,7 +96,7 @@
If we find a datum that's not the same FP type as the first datum, punt.
If we count more than eight total homogeneous FP data, punt. */
- inline int hfa (const Dwarf_Op *loc, int nregs)
+ __gnu_inline int hfa (const Dwarf_Op *loc, int nregs)
{
if (fpregs_used == 0)
*locp = loc;
--- elfutils-0.131/libdw/dwarf_entry_breakpoints.c
+++ elfutils-0.131/libdw/dwarf_entry_breakpoints.c
@@ -64,7 +64,7 @@
*bkpts = NULL;
/* Add one breakpoint location to the result vector. */
- inline int add_bkpt (Dwarf_Addr pc)
+ __gnu_inline int add_bkpt (Dwarf_Addr pc)
{
Dwarf_Addr *newlist = realloc (*bkpts, ++nbkpts * sizeof newlist[0]);
if (newlist == NULL)
@@ -80,7 +80,7 @@
}
/* Fallback result, break at the entrypc/lowpc value. */
- inline int entrypc_bkpt (void)
+ __gnu_inline int entrypc_bkpt (void)
{
Dwarf_Addr pc;
return INTUSE(dwarf_entrypc) (die, &pc) < 0 ? -1 : add_bkpt (pc);
@@ -107,7 +107,7 @@
/* Search a contiguous PC range for prologue-end markers.
If DWARF, look for proper markers.
Failing that, if ADHOC, look for the ad hoc convention. */
- inline int search_range (Dwarf_Addr low, Dwarf_Addr high,
+ __gnu_inline int search_range (Dwarf_Addr low, Dwarf_Addr high,
bool dwarf, bool adhoc)
{
size_t l = 0, u = nlines;
--- elfutils-0.131/libdw/dwarf_getscopevar.c
+++ elfutils-0.131/libdw/dwarf_getscopevar.c
@@ -93,7 +93,7 @@
size_t match_file_len = match_file == NULL ? 0 : strlen (match_file);
bool lastfile_matches = false;
const char *lastfile = NULL;
- inline bool file_matches (Dwarf_Files *files, size_t idx)
+ __gnu_inline bool file_matches (Dwarf_Files *files, size_t idx)
{
if (idx >= files->nfiles)
return false;
--- elfutils-0.131/libdw/libdw.h
+++ elfutils-0.131/libdw/libdw.h
@@ -633,6 +633,12 @@
/* Inline optimizations. */
#ifdef __OPTIMIZE__
+# if defined(__GNUC_STDC_INLINE__) || defined(__GNUC_GNU_INLINE__)
+# define __gnu_inline inline __attribute__ ((__gnu_inline__))
+# else
+# define __gnu_inline inline
+# endif
+
/* Return attribute code of given attribute. */
__libdw_extern_inline unsigned int
dwarf_whatattr (Dwarf_Attribute *attr)
--- elfutils-0.131/libdw/libdw_visit_scopes.c
+++ elfutils-0.131/libdw/libdw_visit_scopes.c
@@ -109,7 +109,7 @@
if (INTUSE(dwarf_child) (&root->die, &child.die) != 0)
return -1;
- inline int recurse (void)
+ __gnu_inline int recurse (void)
{
return __libdw_visit_scopes (depth + 1, &child,
previsit, postvisit, arg);
--- elfutils-0.131/libdwfl/argp-std.c
+++ elfutils-0.131/libdwfl/argp-std.c
@@ -106,7 +106,7 @@
static error_t
parse_opt (int key, char *arg, struct argp_state *state)
{
- inline void failure (Dwfl *dwfl, int errnum, const char *msg)
+ __gnu_inline void failure (Dwfl *dwfl, int errnum, const char *msg)
{
if (errnum == -1)
argp_failure (state, EXIT_FAILURE, 0, "%s: %s",
@@ -116,7 +116,7 @@
if (dwfl != NULL)
dwfl_end (dwfl);
}
- inline error_t fail (Dwfl *dwfl, int errnum, const char *msg)
+ __gnu_inline error_t fail (Dwfl *dwfl, int errnum, const char *msg)
{
failure (dwfl, errnum, msg);
return errnum == -1 ? EIO : errnum;
--- elfutils-0.131/libdwfl/dwfl_module_addrsym.c
+++ elfutils-0.131/libdwfl/dwfl_module_addrsym.c
@@ -59,7 +59,7 @@
/* Return true iff we consider ADDR to lie in the same section as SYM. */
GElf_Word addr_shndx = SHN_UNDEF;
- inline bool same_section (const GElf_Sym *sym, GElf_Word shndx)
+ __gnu_inline bool same_section (const GElf_Sym *sym, GElf_Word shndx)
{
/* For absolute symbols and the like, only match exactly. */
if (shndx >= SHN_LORESERVE)
--- elfutils-0.131/libdwfl/dwfl_module_getsrc_file.c
+++ elfutils-0.131/libdwfl/dwfl_module_getsrc_file.c
@@ -79,15 +79,15 @@
&& cu != NULL
&& (error = __libdwfl_cu_getsrclines (cu)) == DWFL_E_NOERROR)
{
- inline const char *INTUSE(dwarf_line_file) (const Dwarf_Line *line)
+ __gnu_inline const char *INTUSE(dwarf_line_file) (const Dwarf_Line *line)
{
return line->files->info[line->file].name;
}
- inline Dwarf_Line *dwfl_line (const Dwfl_Line *line)
+ __gnu_inline Dwarf_Line *dwfl_line (const Dwfl_Line *line)
{
return &dwfl_linecu (line)->die.cu->lines->info[line->idx];
}
- inline const char *dwfl_line_file (const Dwfl_Line *line)
+ __gnu_inline const char *dwfl_line_file (const Dwfl_Line *line)
{
return INTUSE(dwarf_line_file) (dwfl_line (line));
}
--- elfutils-0.131/libdwfl/elf-from-memory.c
+++ elfutils-0.131/libdwfl/elf-from-memory.c
@@ -216,7 +216,7 @@
bool found_base = false;
switch (ehdr.e32.e_ident[EI_CLASS])
{
- inline void handle_segment (GElf_Addr vaddr, GElf_Off offset,
+ __gnu_inline void handle_segment (GElf_Addr vaddr, GElf_Off offset,
GElf_Xword filesz, GElf_Xword align)
{
GElf_Off segment_end = ((offset + filesz + align - 1) & -align);
@@ -280,7 +280,7 @@
switch (ehdr.e32.e_ident[EI_CLASS])
{
- inline bool handle_segment (GElf_Addr vaddr, GElf_Off offset,
+ __gnu_inline bool handle_segment (GElf_Addr vaddr, GElf_Off offset,
GElf_Xword filesz, GElf_Xword align)
{
GElf_Off start = offset & -align;
--- elfutils-0.131/libdwfl/linux-kernel-modules.c
+++ elfutils-0.131/libdwfl/linux-kernel-modules.c
@@ -541,7 +541,7 @@
{
Dwarf_Addr start;
Dwarf_Addr end;
- inline Dwfl_Module *report (void)
+ __gnu_inline Dwfl_Module *report (void)
{
return INTUSE(dwfl_report_module) (dwfl, KERNEL_MODNAME, start, end);
}
@@ -628,7 +628,7 @@
only '_' and one only using '-'. */
char alternate_name[namelen + 1];
- inline bool subst_name (char from, char to)
+ __gnu_inline bool subst_name (char from, char to)
{
const char *n = memchr (module_name, from, namelen);
if (n == NULL)
--- elfutils-0.131/libdwfl/linux-proc-maps.c
+++ elfutils-0.131/libdwfl/linux-proc-maps.c
@@ -134,7 +134,7 @@
char *last_file = NULL;
Dwarf_Addr low = 0, high = 0;
- inline bool report (void)
+ __gnu_inline bool report (void)
{
if (last_file != NULL)
{
--- elfutils-0.131/src/ld.h
+++ elfutils-0.131/src/ld.h
@@ -1087,7 +1087,7 @@
/* Checked whether the symbol is undefined and referenced from a DSO. */
extern bool linked_from_dso_p (struct scninfo *scninfo, size_t symidx);
-extern inline bool
+extern __gnu_inline bool
linked_from_dso_p (struct scninfo *scninfo, size_t symidx)
{
struct usedfiles *file = scninfo->fileinfo;
--- elfutils-0.131/src/readelf.c
+++ elfutils-0.131/src/readelf.c
@@ -5722,7 +5722,7 @@
qsort (regs, maxreg + 1, sizeof regs[0], &compare_registers);
/* Collect the unique sets and sort them. */
- inline bool same_set (const struct register_info *a,
+ __gnu_inline bool same_set (const struct register_info *a,
const struct register_info *b)
{
return (a < ®s[maxnreg] && a->regloc != NULL
--- elfutils-0.131/src/strip.c
+++ elfutils-0.131/src/strip.c
@@ -1336,7 +1336,7 @@
/* Update section headers when the data size has changed.
We also update the SHT_NOBITS section in the debug
file so that the section headers match in sh_size. */
- inline void update_section_size (const Elf_Data *newdata)
+ __gnu_inline void update_section_size (const Elf_Data *newdata)
{
GElf_Shdr shdr_mem;
GElf_Shdr *shdr = gelf_getshdr (scn, &shdr_mem);
--- elfutils-0.131/src/unstrip.c
+++ elfutils-0.131/src/unstrip.c
@@ -389,7 +389,7 @@
{
Elf_Data *data = elf_getdata (outscn, NULL);
- inline void adjust_reloc (GElf_Xword *info)
+ __gnu_inline void adjust_reloc (GElf_Xword *info)
{
size_t ndx = GELF_R_SYM (*info);
if (ndx != STN_UNDEF)
@@ -1039,7 +1039,7 @@
}
bool fail = false;
- inline void check_match (bool match, Elf_Scn *scn, const char *name)
+ __gnu_inline void check_match (bool match, Elf_Scn *scn, const char *name)
{
if (!match)
{
@@ -1267,7 +1267,7 @@
}
/* Locate a matching unallocated section in SECTIONS. */
- inline struct section *find_unalloc_section (const GElf_Shdr *shdr,
+ __gnu_inline struct section *find_unalloc_section (const GElf_Shdr *shdr,
const char *name)
{
size_t l = nalloc, u = stripped_shnum - 1;
@@ -2182,7 +2182,7 @@
handle_implicit_modules (const struct arg_info *info)
{
struct match_module_info mmi = { info->args, NULL, info->match_files };
- inline ptrdiff_t next (ptrdiff_t offset)
+ __gnu_inline ptrdiff_t next (ptrdiff_t offset)
{
return dwfl_getmodules (info->dwfl, &match_module, &mmi, offset);
}
--
gentoo-commits@g.o mailing list
|