about summary refs log tree commit diff
path: root/sysdeps/unix/sysv/linux/mips
diff options
context:
space:
mode:
authorSiddhesh Poyarekar <siddhesh@sourceware.org>2021-07-22 18:38:10 +0530
committerSiddhesh Poyarekar <siddhesh@sourceware.org>2021-07-22 18:38:10 +0530
commit0552fd2c7d4e8a570cb4fe4dfe65e96f6d24b0cd (patch)
treebaf150b3e1b728c6c13b95116241a61bff5f21ab /sysdeps/unix/sysv/linux/mips
parentb5bd5bfe88f496463ec9fab680a8edf64d7c2a42 (diff)
downloadglibc-0552fd2c7d4e8a570cb4fe4dfe65e96f6d24b0cd.tar.gz
glibc-0552fd2c7d4e8a570cb4fe4dfe65e96f6d24b0cd.tar.xz
glibc-0552fd2c7d4e8a570cb4fe4dfe65e96f6d24b0cd.zip
Move malloc_{g,s}et_state to libc_malloc_debug
These deprecated functions are only safe to call from
__malloc_initialize_hook and as a result, are not useful in the
general case.  Move the implementations to libc_malloc_debug so that
existing binaries that need it will now have to preload the debug DSO
to work correctly.

This also allows simplification of the core malloc implementation by
dropping all the undumping support code that was added to make
malloc_set_state work.

One known breakage is that of ancient emacs binaries that depend on
this.  They will now crash when running with this libc.  With
LD_BIND_NOW=1, it will terminate immediately because of not being able
to find malloc_set_state but with lazy binding it will crash in
unpredictable ways.  It will need a preloaded libc_malloc_debug.so so
that its initialization hook is executed to allow its malloc
implementation to work properly.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Tested-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips')
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist2
-rw-r--r--sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist2
8 files changed, 8 insertions, 8 deletions
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index c72c2a7101..2ff15825ec 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -771,8 +771,6 @@ GLIBC_2.0 lseek F
 GLIBC_2.0 madvise F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
-GLIBC_2.0 malloc_get_state F
-GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist
index 6b3c5bfd0b..55ef952885 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc_malloc_debug.abilist
@@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
 GLIBC_2.0 free F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
+GLIBC_2.0 malloc_get_state F
+GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
index 6725735b59..b58f60783a 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
@@ -771,8 +771,6 @@ GLIBC_2.0 lseek F
 GLIBC_2.0 madvise F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
-GLIBC_2.0 malloc_get_state F
-GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist
index 6b3c5bfd0b..55ef952885 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc_malloc_debug.abilist
@@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
 GLIBC_2.0 free F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
+GLIBC_2.0 malloc_get_state F
+GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 5c2e228628..ae933424bf 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -771,8 +771,6 @@ GLIBC_2.0 lseek F
 GLIBC_2.0 madvise F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
-GLIBC_2.0 malloc_get_state F
-GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist
index 6b3c5bfd0b..55ef952885 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc_malloc_debug.abilist
@@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
 GLIBC_2.0 free F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
+GLIBC_2.0 malloc_get_state F
+GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 35372f6c1a..c68f7e3c6c 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -769,8 +769,6 @@ GLIBC_2.0 lseek F
 GLIBC_2.0 madvise F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
-GLIBC_2.0 malloc_get_state F
-GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist
index bdf3541c24..15b3293b03 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc_malloc_debug.abilist
@@ -6,6 +6,8 @@ GLIBC_2.0 calloc F
 GLIBC_2.0 free F
 GLIBC_2.0 mallinfo F
 GLIBC_2.0 malloc F
+GLIBC_2.0 malloc_get_state F
+GLIBC_2.0 malloc_set_state F
 GLIBC_2.0 malloc_stats F
 GLIBC_2.0 malloc_trim F
 GLIBC_2.0 malloc_usable_size F