Discussion:
Revert part of commit 32ec8896025
Alan Modra
2018-09-21 04:31:38 UTC
Permalink
echo "__thread char *p;" | gcc -c -g -xc - -o thread.o
With current powerpc64le-linux-gcc has this reloc in .debug_info
0000000000000025 0000000d0000004e R_PPC64_DTPREL64 0000000000000000 p + 8000

That stops me looking at .debug_info, which is a bit unfriendly.
~/build/gas-virgin/powerpc64le-linux/binutils/readelf -wi thread.o
readelf: Warning: unable to apply unsupported reloc type 78 to section .debug_info
Older readelf continued on after the warning, dumping .debug_info.
The same happens on x86_64-linux with a different reloc number.

Nick, what do you think?

* readelf.c (apply_relocations): Don't return FALSE for warnings.

diff --git a/binutils/readelf.c b/binutils/readelf.c
index 9c675ddf1e..91f4c12286 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -13032,7 +13032,6 @@ apply_relocations (Filedata * filedata,
{
Elf_Internal_Shdr * relsec;
unsigned char * end = start + size;
- bfd_boolean res = TRUE;

if (relocs_return != NULL)
{
@@ -13161,7 +13160,6 @@ apply_relocations (Filedata * filedata,
warn (_("unable to apply unsupported reloc type %d to section %s\n"),
reloc_type, printable_section_name (filedata, section));
prev_reloc = reloc_type;
- res = FALSE;
continue;
}

@@ -13171,7 +13169,6 @@ apply_relocations (Filedata * filedata,
warn (_("skipping invalid relocation offset 0x%lx in section %s\n"),
(unsigned long) rp->r_offset,
printable_section_name (filedata, section));
- res = FALSE;
continue;
}

@@ -13180,7 +13177,6 @@ apply_relocations (Filedata * filedata,
{
warn (_("skipping invalid relocation symbol index 0x%lx in section %s\n"),
sym_index, printable_section_name (filedata, section));
- res = FALSE;
continue;
}
sym = symtab + sym_index;
@@ -13206,7 +13202,6 @@ apply_relocations (Filedata * filedata,
get_symbol_type (filedata, ELF_ST_TYPE (sym->st_info)),
printable_section_name (filedata, relsec),
(long int)(rp - relocs));
- res = FALSE;
continue;
}

@@ -13273,7 +13268,7 @@ apply_relocations (Filedata * filedata,
break;
}

- return res;
+ return TRUE;
}

#ifdef SUPPORT_DISASSEMBLY
--
Alan Modra
Australia Development Lab, IBM
Nick Clifton
2018-09-21 17:41:01 UTC
Permalink
Hi Alan,
Post by Alan Modra
readelf: Warning: unable to apply unsupported reloc type 78 to section .debug_info
Older readelf continued on after the warning, dumping .debug_info.
The same happens on x86_64-linux with a different reloc number.
Nick, what do you think?
* readelf.c (apply_relocations): Don't return FALSE for warnings.
Go ahead - make my day.

Erm, umm, I mean, sure, this makes sense. I have no objections to the patch.

Cheers
Nick

Continue reading on narkive:
Loading...