mirror of git://sourceware.org/git/glibc.git
Don't issue an error if DT_PLTRELSZ is missing
A shared object doesn't need PLT if there are no PLT relocations. It shouldn't be an error if DT_PLTRELSZ is missing. [BZ #18410] * elf/dl-reloc.c (_dl_relocate_object): Don't issue an error for missing DT_PLTRELSZ.
This commit is contained in:
parent
333e1ba4e5
commit
3e058c9d7e
|
@ -1,3 +1,9 @@
|
|||
2015-05-22 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #18410]
|
||||
* elf/dl-reloc.c (_dl_relocate_object): Don't issue an error
|
||||
for missing DT_PLTRELSZ.
|
||||
|
||||
2015-05-22 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Remove obsolete aliases that broke 'locale -a'
|
||||
|
|
4
NEWS
4
NEWS
|
@ -18,8 +18,8 @@ Version 2.22
|
|||
18029, 18030, 18032, 18036, 18038, 18039, 18042, 18043, 18046, 18047,
|
||||
18049, 18068, 18080, 18093, 18100, 18104, 18110, 18111, 18125, 18128,
|
||||
18138, 18185, 18196, 18197, 18206, 18210, 18211, 18217, 18220, 18221,
|
||||
18244, 18247, 18287, 18319, 18333, 18346, 18397, 18409, 18412, 18418,
|
||||
18434, 18444.
|
||||
18244, 18247, 18287, 18319, 18333, 18346, 18397, 18409, 18410, 18412,
|
||||
18418, 18434, 18444.
|
||||
|
||||
* Cache information can be queried via sysconf() function on s390 e.g. with
|
||||
_SC_LEVEL1_ICACHE_SIZE as argument.
|
||||
|
|
|
@ -258,21 +258,13 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
|
|||
ELF_DYNAMIC_RELOCATE (l, lazy, consider_profiling, skip_ifunc);
|
||||
|
||||
#ifndef PROF
|
||||
if (__glibc_unlikely (consider_profiling))
|
||||
if (__glibc_unlikely (consider_profiling)
|
||||
&& l->l_info[DT_PLTRELSZ] != NULL)
|
||||
{
|
||||
/* Allocate the array which will contain the already found
|
||||
relocations. If the shared object lacks a PLT (for example
|
||||
if it only contains lead function) the l_info[DT_PLTRELSZ]
|
||||
will be NULL. */
|
||||
if (l->l_info[DT_PLTRELSZ] == NULL)
|
||||
{
|
||||
errstring = N_("%s: no PLTREL found in object %s\n");
|
||||
fatal:
|
||||
_dl_fatal_printf (errstring,
|
||||
RTLD_PROGNAME,
|
||||
l->l_name);
|
||||
}
|
||||
|
||||
size_t sizeofrel = l->l_info[DT_PLTREL]->d_un.d_val == DT_RELA
|
||||
? sizeof (ElfW(Rela))
|
||||
: sizeof (ElfW(Rel));
|
||||
|
@ -283,7 +275,7 @@ _dl_relocate_object (struct link_map *l, struct r_scope_elem *scope[],
|
|||
{
|
||||
errstring = N_("\
|
||||
%s: out of memory to store relocation results for %s\n");
|
||||
goto fatal;
|
||||
_dl_fatal_printf (errstring, RTLD_PROGNAME, l->l_name);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue