[Pkg-openmpi-maintainers] Bug#818909: Segfaults caused by new DT_MIPS_RLD_MAP_REL tag and RPATH removers
Aurelien Jarno
aurelien at aurel32.net
Fri Apr 8 16:44:30 UTC 2016
On 2016-04-08 10:45, Aurelien Jarno wrote:
> Hi,
>
> On 2016-04-07 11:51, James Cowgill wrote:
> >
> > Based only on chrpath and cmake reverse dependencies, there is an upper
> > bound of about 1500 binNMUs (after the tools after fixed). Hopefully
> > that can be reduced!
> >
> > I really don't have any time to fix all this. Please can someone else
> > have a look!
>
> I'll try to do an archive scan asap to really get an idea on how many
> packages are affected. After I'll look at how to fix chrpath, but help
> would be welcome as I also don't have a lot of time.
Please find below a small quick and dirty python script to check that.
There is probably a way to do it better and cleaner, but it does its
job.
I will start an archive scan and will start working on a chrpath fix.
Aurelien
#!/usr/bin/python3
from sys import argv, exit
from elftools.elf.elffile import ELFFile, DynamicSection
# MIPS specific constants
DT_MIPS_BASE_ADDRESS=0x70000006
DT_MIPS_RLD_MAP=0x70000016
DT_MIPS_RLD_MAP_REL=0x70000035
good = True
filename = argv[1]
with open(filename, 'rb') as f:
for section in ELFFile(f).iter_sections():
if not isinstance(section, DynamicSection):
continue
base = None
rld_map = None
rld_map_rel = None
rld_map_rel_offset = None
for index, tag in enumerate(section.iter_tags()):
if tag.entry.d_tag == DT_MIPS_BASE_ADDRESS:
base = tag.entry.d_val
elif tag.entry.d_tag == DT_MIPS_RLD_MAP:
rld_map = tag.entry.d_val
elif tag.entry.d_tag == DT_MIPS_RLD_MAP_REL:
rld_map_rel = tag.entry.d_val
rld_map_rel_offset = section.header.sh_offset + index * section.header.sh_entsize
if base and rld_map and rld_map_rel:
if rld_map != base + rld_map_rel + rld_map_rel_offset:
good = False
print('%s: %s' % (filename, 'ok' if good else 'bad'))
exit(0 if good else 1)
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
aurelien at aurel32.net http://www.aurel32.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-openmpi-maintainers/attachments/20160408/9a3e2438/attachment.sig>
More information about the Pkg-openmpi-maintainers
mailing list