about summary refs log tree commit diff
path: root/elf/tst-nodeps1-mod.c
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2023-11-27 11:28:13 +0100
committerFlorian Weimer <fweimer@redhat.com>2023-11-27 11:28:13 +0100
commit78ca44da0160a0b442f0ca1f253e3360f044b2ec (patch)
tree248cff1b3dc9e22595ad4d9871598bf6bd389c74 /elf/tst-nodeps1-mod.c
parenta74c2e1cbc8673dd7e97aae2f2705392e2ccc3f6 (diff)
downloadglibc-78ca44da0160a0b442f0ca1f253e3360f044b2ec.tar.gz
glibc-78ca44da0160a0b442f0ca1f253e3360f044b2ec.tar.xz
glibc-78ca44da0160a0b442f0ca1f253e3360f044b2ec.zip
elf: Relocate libc.so early during startup and dlmopen (bug 31083)
This makes it more likely that objects without dependencies can
use IFUNC resolvers in libc.so.

Reviewed-by: Carlos O'Donell <carlos@redhat.com>
Diffstat (limited to 'elf/tst-nodeps1-mod.c')
-rw-r--r--elf/tst-nodeps1-mod.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/elf/tst-nodeps1-mod.c b/elf/tst-nodeps1-mod.c
new file mode 100644
index 0000000000..45c8e3c631
--- /dev/null
+++ b/elf/tst-nodeps1-mod.c
@@ -0,0 +1,25 @@
+/* Test module with no libc.so dependency and string function references.
+   Copyright (C) 2023 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#include <string.h>
+
+/* Some references to libc symbols which are likely to have IFUNC
+   resolvers.  If they do not, this module does not exercise bug 31083.  */
+void *memcpy_pointer = memcpy;
+void *memmove_pointer = memmove;
+void *memset_pointer = memset;