SET_RELHOOK: merge i386 and x86_64, and move to sysdeps/mach/hurd/x86
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 1 Feb 2022 18:32:19 +0000 (18:32 +0000)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Tue, 1 Feb 2022 20:08:25 +0000 (20:08 +0000)
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.

sysdeps/generic/set-hooks-arch.h
sysdeps/mach/hurd/x86/set-hooks-arch.h [moved from sysdeps/i386/set-hooks-arch.h with 94% similarity]
sysdeps/x86_64/set-hooks-arch.h [deleted file]

index 9101646..f04e11a 100644 (file)
@@ -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) ...
similarity index 94%
rename from sysdeps/i386/set-hooks-arch.h
rename to sysdeps/mach/hurd/x86/set-hooks-arch.h
index bbc7bef..863aa76 100644 (file)
@@ -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 (file)
index 789e46f..0000000
+++ /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 */