mirror of
git://sourceware.org/git/glibc.git
synced 2025-04-24 14:41:06 +08:00
Support PLT and GOT references in local PIC check
Linker in binutils 2.26 and newer generate GOT references instead PLT references when -z now is passed to linker. We need to extend scripts/localplt.awk to allow PLT or GOT references. [BZ #19007] * scripts/localplt.awk: Also allow GOT references. * sysdeps/unix/sysv/linux/i386/localplt.data: Mark _Unwind_Find_FDE, calloc, memalign, realloc and __libc_memalign with "+ REL R_386_GLOB_DAT". * sysdeps/x86_64/localplt.data: Mark calloc, memalign, realloc and __libc_memalign with "+ RELA R_X86_64_GLOB_DAT".
This commit is contained in:
parent
8f763b04a0
commit
d3d9c95aef
10
ChangeLog
10
ChangeLog
@ -1,3 +1,13 @@
|
||||
2015-10-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
[BZ #19007]
|
||||
* scripts/localplt.awk: Also allow GOT references.
|
||||
* sysdeps/unix/sysv/linux/i386/localplt.data: Mark
|
||||
_Unwind_Find_FDE, calloc, memalign, realloc and __libc_memalign
|
||||
with "+ REL R_386_GLOB_DAT".
|
||||
* sysdeps/x86_64/localplt.data: Mark calloc, memalign, realloc
|
||||
and __libc_memalign with "+ RELA R_X86_64_GLOB_DAT".
|
||||
|
||||
2015-10-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* sysdeps/unix/sysv/linux/i386/brk.c (__brk): Use
|
||||
|
6
NEWS
6
NEWS
@ -17,9 +17,9 @@ Version 2.23
|
||||
18661, 18674, 18675, 18681, 18724, 18757, 18778, 18781, 18787, 18789,
|
||||
18790, 18795, 18796, 18803, 18820, 18823, 18824, 18825, 18857, 18863,
|
||||
18870, 18872, 18873, 18875, 18887, 18921, 18951, 18952, 18956, 18961,
|
||||
18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985, 19003, 19012,
|
||||
19016, 19018, 19032, 19046, 19049, 19050, 19059, 19071, 19076, 19077,
|
||||
19078, 19079, 19085, 19086, 19088, 19094, 19095, 19124, 19125
|
||||
18966, 18967, 18969, 18970, 18977, 18980, 18981, 18985, 19003, 19007,
|
||||
19012, 19016, 19018, 19032, 19046, 19049, 19050, 19059, 19071, 19076,
|
||||
19077, 19078, 19079, 19085, 19086, 19088, 19094, 19095, 19124, 19125
|
||||
|
||||
* The obsolete header <regexp.h> has been removed. Programs that require
|
||||
this header must be updated to use <regex.h> instead.
|
||||
|
@ -7,7 +7,7 @@
|
||||
BEGIN { result = 0 }
|
||||
|
||||
FILENAME != lastfile {
|
||||
if (lastfile && jmprel_offset == 0) {
|
||||
if (lastfile && jmprel_offset == 0 && rela_offset == 0 && rel_offset == 0) {
|
||||
print FILENAME ": *** failed to find expected output (readelf -WSdr)";
|
||||
result = 2;
|
||||
}
|
||||
|
@ -1,17 +1,17 @@
|
||||
# Linker in binutils 2.26 and newer consolidates R_X86_64_JUMP_SLOT
|
||||
# relocation with R_386_GLOB_DAT relocation against the same symbol.
|
||||
libc.so: _Unwind_Find_FDE
|
||||
libc.so: calloc
|
||||
libc.so: _Unwind_Find_FDE + REL R_386_GLOB_DAT
|
||||
libc.so: calloc + REL R_386_GLOB_DAT
|
||||
libc.so: free + REL R_386_GLOB_DAT
|
||||
libc.so: malloc + REL R_386_GLOB_DAT
|
||||
libc.so: memalign
|
||||
libc.so: realloc
|
||||
libc.so: memalign + REL R_386_GLOB_DAT
|
||||
libc.so: realloc + REL R_386_GLOB_DAT
|
||||
libm.so: matherr
|
||||
# The dynamic loader uses __libc_memalign internally to allocate aligned
|
||||
# TLS storage. The other malloc family of functions are expected to allow
|
||||
# user symbol interposition.
|
||||
ld.so: __libc_memalign
|
||||
ld.so: malloc
|
||||
ld.so: calloc
|
||||
ld.so: realloc
|
||||
ld.so: __libc_memalign + REL R_386_GLOB_DAT
|
||||
ld.so: malloc + REL R_386_GLOB_DAT
|
||||
ld.so: calloc + REL R_386_GLOB_DAT
|
||||
ld.so: realloc + REL R_386_GLOB_DAT
|
||||
ld.so: free + REL R_386_GLOB_DAT
|
||||
|
@ -3,17 +3,17 @@
|
||||
# users can define their own functions and have library internals call them.
|
||||
# Linker in binutils 2.26 and newer consolidates R_X86_64_JUMP_SLOT
|
||||
# relocation with R_X86_64_GLOB_DAT relocation against the same symbol.
|
||||
libc.so: calloc
|
||||
libc.so: calloc + RELA R_X86_64_GLOB_DAT
|
||||
libc.so: free + RELA R_X86_64_GLOB_DAT
|
||||
libc.so: malloc + RELA R_X86_64_GLOB_DAT
|
||||
libc.so: memalign
|
||||
libc.so: realloc
|
||||
libc.so: memalign + RELA R_X86_64_GLOB_DAT
|
||||
libc.so: realloc + RELA R_X86_64_GLOB_DAT
|
||||
libm.so: matherr
|
||||
# The dynamic loader uses __libc_memalign internally to allocate aligned
|
||||
# TLS storage. The other malloc family of functions are expected to allow
|
||||
# user symbol interposition.
|
||||
ld.so: __libc_memalign
|
||||
ld.so: malloc
|
||||
ld.so: calloc
|
||||
ld.so: realloc
|
||||
ld.so: __libc_memalign + RELA R_X86_64_GLOB_DAT
|
||||
ld.so: malloc + RELA R_X86_64_GLOB_DAT
|
||||
ld.so: calloc + RELA R_X86_64_GLOB_DAT
|
||||
ld.so: realloc + RELA R_X86_64_GLOB_DAT
|
||||
ld.so: free + RELA R_X86_64_GLOB_DAT
|
||||
|
Loading…
x
Reference in New Issue
Block a user