1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-28 00:21:52 +03:00

ld.so: Remove __libc_memalign

It is no longer needed since commit 6c444ad6e9
(elf: Do not use memalign for TCB/TLS blocks allocation [BZ #17730]).
Applications do not link against ld.so and will use the definition in
libc.so, so there is no ABI impact.
This commit is contained in:
Florian Weimer
2016-11-30 16:23:58 +01:00
parent 9e78f6f6e7
commit b04beebf07
48 changed files with 106 additions and 119 deletions

View File

@ -1,3 +1,60 @@
2016-11-30 Florian Weimer <fweimer@redhat.com>
Remove __libc_memalign from ld.so because it is unused.
* elf/dl-minimal.c: Update comment on the malloc implementation.
(malloc): Renamed from __libc_memalign, replacing the original
malloc implementation. Replace the align parameter with
MALLOC_ALIGNMENT.
* elf/Versions (ld): Update comment and remove __libc_memalign.
* sysdeps/nacl/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/aarch64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/alpha/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/arm/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/hppa/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/i386/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/ia64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/coldfire/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/m68k/m680x0/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/microblaze/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n32/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/mips/mips64/n64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/nios2/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/ld-le.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/sh/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx32/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilegx/tilegx64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/tile/tilepro/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/64/ld.abilist: Likewise.
* sysdeps/unix/sysv/linux/x86_64/x32/ld.abilist: Likewise.
* sysdeps/generic/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/aarch64/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/alpha/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/arm/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/hppa/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/i386/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/ia64/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/m68k/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/microblaze/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/nios2/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/localplt.data
(ld.so): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data
(ld.so): Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/localplt.data (ld.so):
Likewise.
* sysdeps/unix/sysv/linux/s390/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/sh/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc32/localplt.data (ld.so): Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/localplt.data (ld.so): Likewise.
* sysdeps/x86_64/localplt.data (ld.so): Likewise.
2016-11-30 Florian Weimer <fweimer@redhat.com> 2016-11-30 Florian Weimer <fweimer@redhat.com>
[BZ #16628] [BZ #16628]

View File

@ -34,8 +34,8 @@ libc {
ld { ld {
GLIBC_2.0 { GLIBC_2.0 {
# Function from libc.so which must be shared with libc. # Functions which are interposed from libc.so.
__libc_memalign; calloc; free; malloc; realloc; calloc; free; malloc; realloc;
_r_debug; _r_debug;
} }

View File

@ -31,8 +31,10 @@
#include <assert.h> #include <assert.h>
/* Minimal `malloc' allocator for use while loading shared libraries. /* Minimal malloc allocator for used during initial link. After the
No block is ever freed. */ initial link, a full malloc implementation is interposed, either
the one in libc, or a different one supplied by the user through
interposition. */
static void *alloc_ptr, *alloc_end, *alloc_last_block; static void *alloc_ptr, *alloc_end, *alloc_last_block;
@ -49,7 +51,7 @@ extern unsigned long int weak_function strtoul (const char *nptr,
/* Allocate an aligned memory block. */ /* Allocate an aligned memory block. */
void * weak_function void * weak_function
__libc_memalign (size_t align, size_t n) malloc (size_t n)
{ {
if (alloc_end == 0) if (alloc_end == 0)
{ {
@ -62,8 +64,8 @@ __libc_memalign (size_t align, size_t n)
} }
/* Make sure the allocation pointer is ideally aligned. */ /* Make sure the allocation pointer is ideally aligned. */
alloc_ptr = (void *) 0 + (((alloc_ptr - (void *) 0) + align - 1) alloc_ptr = (void *) 0 + (((alloc_ptr - (void *) 0) + MALLOC_ALIGNMENT - 1)
& ~(align - 1)); & ~(MALLOC_ALIGNMENT - 1));
if (alloc_ptr + n >= alloc_end || n >= -(uintptr_t) alloc_ptr) if (alloc_ptr + n >= alloc_end || n >= -(uintptr_t) alloc_ptr)
{ {
@ -88,12 +90,6 @@ __libc_memalign (size_t align, size_t n)
return alloc_last_block; return alloc_last_block;
} }
void * weak_function
malloc (size_t n)
{
return __libc_memalign (MALLOC_ALIGNMENT, n);
}
/* We use this function occasionally since the real implementation may /* We use this function occasionally since the real implementation may
be optimized when it can assume the memory it returns already is be optimized when it can assume the memory it returns already is
set to NUL. */ set to NUL. */

View File

@ -7,10 +7,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.22 GLIBC_2.22 A GLIBC_2.22 GLIBC_2.22 A
GLIBC_2.22 __libc_memalign F
GLIBC_2.22 __libc_stack_end D 0x4 GLIBC_2.22 __libc_stack_end D 0x4
GLIBC_2.22 __stack_chk_guard D 0x4 GLIBC_2.22 __stack_chk_guard D 0x4
GLIBC_2.22 __tls_get_addr F GLIBC_2.22 __tls_get_addr F

View File

@ -1,5 +1,4 @@
GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 GLIBC_2.17 A
GLIBC_2.17 __libc_memalign F
GLIBC_2.17 __libc_stack_end D 0x8 GLIBC_2.17 __libc_stack_end D 0x8
GLIBC_2.17 __stack_chk_guard D 0x8 GLIBC_2.17 __stack_chk_guard D 0x8
GLIBC_2.17 __tls_get_addr F GLIBC_2.17 __tls_get_addr F

View File

@ -7,11 +7,10 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader needs __tls_get_addr for TLS, and uses __libc_memalign # The dynamic loader needs __tls_get_addr for TLS.
# internally to allocate aligned TLS storage. The other malloc family of
# functions are expected to allow user symbol interposition.
ld.so: __tls_get_addr ld.so: __tls_get_addr
ld.so: __libc_memalign # The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x28 GLIBC_2.0 _r_debug D 0x28
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -24,11 +24,10 @@ libm.so: matherr
# We used to offer inline functions that used this, so it must be exported. # We used to offer inline functions that used this, so it must be exported.
# Ought to reorg things such that carg isn't thus forced to use a plt. # Ought to reorg things such that carg isn't thus forced to use a plt.
libm.so: __atan2 libm.so: __atan2
# The dynamic loader needs __tls_get_addr for TLS, and uses __libc_memalign # The dynamic loader needs __tls_get_addr for TLS.
# internally to allocate aligned TLS storage. The other malloc family of
# functions are expected to allow user symbol interposition.
ld.so: __tls_get_addr ? ld.so: __tls_get_addr ?
ld.so: __libc_memalign + RELA R_ALPHA_GLOB_DAT # The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
ld.so: malloc + RELA R_ALPHA_GLOB_DAT ld.so: malloc + RELA R_ALPHA_GLOB_DAT
ld.so: calloc + RELA R_ALPHA_GLOB_DAT ld.so: calloc + RELA R_ALPHA_GLOB_DAT
ld.so: realloc + RELA R_ALPHA_GLOB_DAT ld.so: realloc + RELA R_ALPHA_GLOB_DAT

View File

@ -1,5 +1,4 @@
GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 GLIBC_2.4 A
GLIBC_2.4 __libc_memalign F
GLIBC_2.4 __libc_stack_end D 0x4 GLIBC_2.4 __libc_stack_end D 0x4
GLIBC_2.4 __stack_chk_guard D 0x4 GLIBC_2.4 __stack_chk_guard D 0x4
GLIBC_2.4 __tls_get_addr F GLIBC_2.4 __tls_get_addr F

View File

@ -7,11 +7,10 @@ libc.so: realloc
libm.so: matherr libm.so: matherr
libpthread.so: __errno_location libpthread.so: __errno_location
libpthread.so: raise libpthread.so: raise
# The dynamic loader needs __tls_get_addr for TLS, and uses __libc_memalign # The dynamic loader needs __tls_get_addr for TLS.
# internally to allocate aligned TLS storage. The other malloc family of
# functions are expected to allow user symbol interposition.
ld.so: __tls_get_addr ld.so: __tls_get_addr
ld.so: __libc_memalign # The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 GLIBC_2.2 A
GLIBC_2.2 __libc_memalign F
GLIBC_2.2 __libc_stack_end D 0x4 GLIBC_2.2 __libc_stack_end D 0x4
GLIBC_2.2 _dl_mcount F GLIBC_2.2 _dl_mcount F
GLIBC_2.2 _r_debug D 0x14 GLIBC_2.2 _r_debug D 0x14

View File

@ -13,10 +13,8 @@ libc.so: sigprocmask
libc.so: __errno_location libc.so: __errno_location
libm.so: matherr libm.so: matherr
libpthread.so: __errno_location libpthread.so: __errno_location
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -7,10 +7,8 @@ libc.so: malloc + REL R_386_GLOB_DAT
libc.so: memalign + REL R_386_GLOB_DAT libc.so: memalign + REL R_386_GLOB_DAT
libc.so: realloc + REL R_386_GLOB_DAT libc.so: realloc + REL R_386_GLOB_DAT
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign + REL R_386_GLOB_DAT
ld.so: malloc + REL R_386_GLOB_DAT ld.so: malloc + REL R_386_GLOB_DAT
ld.so: calloc + REL R_386_GLOB_DAT ld.so: calloc + REL R_386_GLOB_DAT
ld.so: realloc + REL R_386_GLOB_DAT ld.so: realloc + REL R_386_GLOB_DAT

View File

@ -1,5 +1,4 @@
GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 GLIBC_2.2 A
GLIBC_2.2 __libc_memalign F
GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 __libc_stack_end D 0x8
GLIBC_2.2 _dl_mcount F GLIBC_2.2 _dl_mcount F
GLIBC_2.2 _r_debug D 0x28 GLIBC_2.2 _r_debug D 0x28

View File

@ -6,10 +6,8 @@ libc.so: realloc
libm.so: matherr libm.so: matherr
libm.so: matherrf libm.so: matherrf
libm.so: matherrl libm.so: matherrl
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.4 GLIBC_2.4 A GLIBC_2.4 GLIBC_2.4 A
GLIBC_2.4 __libc_memalign F
GLIBC_2.4 __libc_stack_end D 0x4 GLIBC_2.4 __libc_stack_end D 0x4
GLIBC_2.4 __stack_chk_guard D 0x4 GLIBC_2.4 __stack_chk_guard D 0x4
GLIBC_2.4 __tls_get_addr F GLIBC_2.4 __tls_get_addr F

View File

@ -6,10 +6,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -1,5 +1,4 @@
GLIBC_2.18 GLIBC_2.18 A GLIBC_2.18 GLIBC_2.18 A
GLIBC_2.18 __libc_memalign F
GLIBC_2.18 __libc_stack_end D 0x4 GLIBC_2.18 __libc_stack_end D 0x4
GLIBC_2.18 __stack_chk_guard D 0x4 GLIBC_2.18 __stack_chk_guard D 0x4
GLIBC_2.18 __tls_get_addr F GLIBC_2.18 __tls_get_addr F

View File

@ -6,11 +6,10 @@ libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
libpthread.so: __errno_location libpthread.so: __errno_location
# The dynamic loader needs __tls_get_addr for TLS, and uses __libc_memalign # The dynamic loader needs __tls_get_addr for TLS.
# internally to allocate aligned TLS storage. The other malloc family of
# functions are expected to allow user symbol interposition.
ld.so: __tls_get_addr ld.so: __tls_get_addr
ld.so: __libc_memalign # The main malloc is interposed into the dynamic linker, for
# allocations after the initial link (when dlopen is used).
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x28 GLIBC_2.0 _r_debug D 0x28
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -1,5 +1,4 @@
GLIBC_2.21 GLIBC_2.21 A GLIBC_2.21 GLIBC_2.21 A
GLIBC_2.21 __libc_memalign F
GLIBC_2.21 __libc_stack_end D 0x4 GLIBC_2.21 __libc_stack_end D 0x4
GLIBC_2.21 __stack_chk_guard D 0x4 GLIBC_2.21 __stack_chk_guard D 0x4
GLIBC_2.21 __tls_get_addr F GLIBC_2.21 __tls_get_addr F

View File

@ -27,10 +27,8 @@ libc.so: __nedf2
libc.so: __eqdf2 libc.so: __eqdf2
libc.so: __extendsfdf2 libc.so: __extendsfdf2
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -5,10 +5,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -35,10 +35,8 @@ libc.so: realloc
libm.so: copysignl ? libm.so: copysignl ?
libm.so: fabsl libm.so: fabsl
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.17 GLIBC_2.17 A GLIBC_2.17 GLIBC_2.17 A
GLIBC_2.17 __libc_memalign F
GLIBC_2.17 __libc_stack_end D 0x8 GLIBC_2.17 __libc_stack_end D 0x8
GLIBC_2.17 __tls_get_addr F GLIBC_2.17 __tls_get_addr F
GLIBC_2.17 _dl_mcount F GLIBC_2.17 _dl_mcount F

View File

@ -3,7 +3,6 @@ GLIBC_2.22 __tls_get_addr_opt F
GLIBC_2.23 GLIBC_2.23 A GLIBC_2.23 GLIBC_2.23 A
GLIBC_2.23 __parse_hwcap_and_convert_at_platform F GLIBC_2.23 __parse_hwcap_and_convert_at_platform F
GLIBC_2.3 GLIBC_2.3 A GLIBC_2.3 GLIBC_2.3 A
GLIBC_2.3 __libc_memalign F
GLIBC_2.3 __libc_stack_end D 0x8 GLIBC_2.3 __libc_stack_end D 0x8
GLIBC_2.3 __tls_get_addr F GLIBC_2.3 __tls_get_addr F
GLIBC_2.3 _dl_mcount F GLIBC_2.3 _dl_mcount F

View File

@ -4,10 +4,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to # allocations after the initial link (when dlopen is used).
# allow user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -5,17 +5,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
# It is also allowed to call __libc_memalign via function-pointer loaded from
# GOT instead of calling via a plt-stub. In this case there is a R_390_GLOB_DAT
# relocation in section .rela.dyn instead of R_390_JMP_SLOT in .rela.plt.
# After commit "elf: Do not use memalign for TCB/TLS blocks allocation
# [BZ #17730]" __libc_memalign is only called in elf/dl-minimal.c: malloc() in
# ld.so and gcc -O2/-O3 leads to R_390_GLOB_DAT. If build with
# -fno-optimize-sibling-calls an R_390_JMP_SLOT is generated.
ld.so: __libc_memalign + RELA R_390_GLOB_DAT
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -1,5 +1,4 @@
GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 GLIBC_2.2 A
GLIBC_2.2 __libc_memalign F
GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 __libc_stack_end D 0x8
GLIBC_2.2 _dl_mcount F GLIBC_2.2 _dl_mcount F
GLIBC_2.2 _r_debug D 0x28 GLIBC_2.2 _r_debug D 0x28

View File

@ -1,5 +1,4 @@
GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 GLIBC_2.2 A
GLIBC_2.2 __libc_memalign F
GLIBC_2.2 __libc_stack_end D 0x4 GLIBC_2.2 __libc_stack_end D 0x4
GLIBC_2.2 _dl_mcount F GLIBC_2.2 _dl_mcount F
GLIBC_2.2 _r_debug D 0x14 GLIBC_2.2 _r_debug D 0x14

View File

@ -10,10 +10,8 @@ libc.so: _Unwind_Find_FDE
libc.so: _exit libc.so: _exit
libc.so: __errno_location libc.so: __errno_location
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.0 GLIBC_2.0 A GLIBC_2.0 GLIBC_2.0 A
GLIBC_2.0 __libc_memalign F
GLIBC_2.0 _r_debug D 0x14 GLIBC_2.0 _r_debug D 0x14
GLIBC_2.0 calloc F GLIBC_2.0 calloc F
GLIBC_2.0 free F GLIBC_2.0 free F

View File

@ -16,10 +16,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate # The main malloc is interposed into the dynamic linker, for
# aligned TLS storage. The other malloc family of functions are # allocations after the initial link (when dlopen is used).
# expected to allow user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.2 GLIBC_2.2 A GLIBC_2.2 GLIBC_2.2 A
GLIBC_2.2 __libc_memalign F
GLIBC_2.2 __libc_stack_end D 0x8 GLIBC_2.2 __libc_stack_end D 0x8
GLIBC_2.2 _dl_mcount F GLIBC_2.2 _dl_mcount F
GLIBC_2.2 _r_debug D 0x28 GLIBC_2.2 _r_debug D 0x28

View File

@ -18,10 +18,8 @@ libc.so: malloc
libc.so: memalign libc.so: memalign
libc.so: realloc libc.so: realloc
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate # The main malloc is interposed into the dynamic linker, for
# aligned TLS storage. The other malloc family of functions are # allocations after the initial link (when dlopen is used).
# expected to allow user symbol interposition.
ld.so: __libc_memalign
ld.so: malloc ld.so: malloc
ld.so: calloc ld.so: calloc
ld.so: realloc ld.so: realloc

View File

@ -1,5 +1,4 @@
GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 GLIBC_2.12 A
GLIBC_2.12 __libc_memalign F
GLIBC_2.12 __libc_stack_end D 0x4 GLIBC_2.12 __libc_stack_end D 0x4
GLIBC_2.12 __tls_get_addr F GLIBC_2.12 __tls_get_addr F
GLIBC_2.12 _dl_mcount F GLIBC_2.12 _dl_mcount F

View File

@ -1,5 +1,4 @@
GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 GLIBC_2.12 A
GLIBC_2.12 __libc_memalign F
GLIBC_2.12 __libc_stack_end D 0x8 GLIBC_2.12 __libc_stack_end D 0x8
GLIBC_2.12 __tls_get_addr F GLIBC_2.12 __tls_get_addr F
GLIBC_2.12 _dl_mcount F GLIBC_2.12 _dl_mcount F

View File

@ -1,5 +1,4 @@
GLIBC_2.12 GLIBC_2.12 A GLIBC_2.12 GLIBC_2.12 A
GLIBC_2.12 __libc_memalign F
GLIBC_2.12 __libc_stack_end D 0x4 GLIBC_2.12 __libc_stack_end D 0x4
GLIBC_2.12 __tls_get_addr F GLIBC_2.12 __tls_get_addr F
GLIBC_2.12 _dl_mcount F GLIBC_2.12 _dl_mcount F

View File

@ -1,5 +1,4 @@
GLIBC_2.2.5 GLIBC_2.2.5 A GLIBC_2.2.5 GLIBC_2.2.5 A
GLIBC_2.2.5 __libc_memalign F
GLIBC_2.2.5 __libc_stack_end D 0x8 GLIBC_2.2.5 __libc_stack_end D 0x8
GLIBC_2.2.5 _dl_mcount F GLIBC_2.2.5 _dl_mcount F
GLIBC_2.2.5 _r_debug D 0x28 GLIBC_2.2.5 _r_debug D 0x28

View File

@ -1,5 +1,4 @@
GLIBC_2.16 GLIBC_2.16 A GLIBC_2.16 GLIBC_2.16 A
GLIBC_2.16 __libc_memalign F
GLIBC_2.16 __libc_stack_end D 0x4 GLIBC_2.16 __libc_stack_end D 0x4
GLIBC_2.16 __tls_get_addr F GLIBC_2.16 __tls_get_addr F
GLIBC_2.16 _dl_mcount F GLIBC_2.16 _dl_mcount F

View File

@ -9,10 +9,8 @@ libc.so: malloc + RELA R_X86_64_GLOB_DAT
libc.so: memalign + RELA R_X86_64_GLOB_DAT libc.so: memalign + RELA R_X86_64_GLOB_DAT
libc.so: realloc + RELA R_X86_64_GLOB_DAT libc.so: realloc + RELA R_X86_64_GLOB_DAT
libm.so: matherr libm.so: matherr
# The dynamic loader uses __libc_memalign internally to allocate aligned # The main malloc is interposed into the dynamic linker, for
# TLS storage. The other malloc family of functions are expected to allow # allocations after the initial link (when dlopen is used).
# user symbol interposition.
ld.so: __libc_memalign + RELA R_X86_64_GLOB_DAT
ld.so: malloc + 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: calloc + RELA R_X86_64_GLOB_DAT
ld.so: realloc + RELA R_X86_64_GLOB_DAT ld.so: realloc + RELA R_X86_64_GLOB_DAT