aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2022-02-01 18:32:19 +0000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2022-02-01 20:08:25 +0000
commit355bc7f736fb4cbc81979a7fce674858173f34cf (patch)
treee0a161e62a0d8b3c064a76bc1a9dd172119aa215
parentce9a68c57c260c8417afc93972849ac9ad243ec4 (diff)
downloadglibc-355bc7f736fb4cbc81979a7fce674858173f34cf.tar
glibc-355bc7f736fb4cbc81979a7fce674858173f34cf.tar.gz
glibc-355bc7f736fb4cbc81979a7fce674858173f34cf.tar.bz2
glibc-355bc7f736fb4cbc81979a7fce674858173f34cf.zip
SET_RELHOOK: merge i386 and x86_64, and move to sysdeps/mach/hurd/x86
It is not Hurd-specific, but H.J. Lu wants it there. Also, dc.a can be used to avoid hardcoding .long vs .quad and thus use the same implementation for i386 and x86_64.
-rw-r--r--sysdeps/generic/set-hooks-arch.h2
-rw-r--r--sysdeps/mach/hurd/x86/set-hooks-arch.h (renamed from sysdeps/i386/set-hooks-arch.h)4
-rw-r--r--sysdeps/x86_64/set-hooks-arch.h28
3 files changed, 3 insertions, 31 deletions
diff --git a/sysdeps/generic/set-hooks-arch.h b/sysdeps/generic/set-hooks-arch.h
index 9101646d70..f04e11abfb 100644
--- a/sysdeps/generic/set-hooks-arch.h
+++ b/sysdeps/generic/set-hooks-arch.h
@@ -21,7 +21,7 @@
#define _SET_HOOKS_ARCH_H
/* Define SET_RELHOOK to a variant of text_set_element that records a relative
- offset rather than an absolute address. See sysdeps/i386/set-hooks-arch.h
+ offset rather than an absolute address. See sysdeps/mach/hurd/x86/set-hooks-arch.h
for an example.
#define SET_RELHOOK(NAME, HOOK) ...
diff --git a/sysdeps/i386/set-hooks-arch.h b/sysdeps/mach/hurd/x86/set-hooks-arch.h
index bbc7bef451..863aa76a0c 100644
--- a/sysdeps/i386/set-hooks-arch.h
+++ b/sysdeps/mach/hurd/x86/set-hooks-arch.h
@@ -1,5 +1,5 @@
/* Machine-dependent macros for using symbol sets for running lists of
- functions. i386 version.
+ functions. x86 version.
Copyright (C) 2021-2022 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -22,7 +22,7 @@
#define SET_RELHOOK(NAME, HOOK) \
asm(".section " #NAME",\"aR\"\n" \
- ".long "#HOOK" - .\n" \
+ ".dc.a "#HOOK" - .\n" \
".section .text");
#endif /* set_hooks_arch.h */
diff --git a/sysdeps/x86_64/set-hooks-arch.h b/sysdeps/x86_64/set-hooks-arch.h
deleted file mode 100644
index 789e46f1ad..0000000000
--- a/sysdeps/x86_64/set-hooks-arch.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Machine-dependent macros for using symbol sets for running lists of
- functions. x86-64 version.
- Copyright (C) 2021-2022 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/>. */
-
-#ifndef _SET_HOOKS_ARCH_H
-#define _SET_HOOKS_ARCH_H
-
-#define SET_RELHOOK(NAME, HOOK) \
- asm(".section " #NAME",\"aR\"\n" \
- ".quad "#HOOK" - .\n" \
- ".section .text");
-
-#endif /* set_hooks_arch.h */