syslog: Improve fortify with clang
[glibc.git] / sysdeps / sparc / dl-lookupcfg.h
blob1240f01fb005a28cef5c49afdce1b44473afc4cc
1 /* Configuration of lookup functions. SPARC64 version.
2 Copyright (C) 2023-2024 Free Software Foundation, Inc.
3 This file is part of the GNU C Library.
5 The GNU C Library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Lesser General Public
7 License as published by the Free Software Foundation; either
8 version 2.1 of the License, or (at your option) any later version.
10 The GNU C Library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Lesser General Public License for more details.
15 You should have received a copy of the GNU Lesser General Public
16 License along with the GNU C Library; if not, see
17 <https://www.gnu.org/licenses/>. */
19 /* The type of the return value of fixup/profile_fixup. */
20 #define DL_FIXUP_VALUE_TYPE ElfW(Addr)
21 /* Construct a value of type DL_FIXUP_VALUE_TYPE from a code address
22 and a link map. */
23 #define DL_FIXUP_MAKE_VALUE(map, addr) (addr)
24 /* Extract the code address from a value of type DL_FIXUP_MAKE_VALUE.
26 #define DL_FIXUP_VALUE_CODE_ADDR(value) (value)
27 #define DL_FIXUP_VALUE_ADDR(value) (value)
28 #define DL_FIXUP_ADDR_VALUE(addr) (addr)
29 #define DL_FIXUP_BINDNOW_ADDR_VALUE(addr) (addr)
30 /* For bindnow, _dl_audit_symbind will be responsible to setup the final value
31 while for lazy binding _dl_fixup/_dl_profile_fixup will call the audit
32 callbacks and tail cail elf_machine_fixup_plt. */
33 #ifdef __arch64__
34 # define DL_SPARC_FIXUP(l, r, value, new_value) \
35 sparc64_fixup_plt (l, r, value, new_value, (r)->r_addend, 0)
36 #else
37 # define DL_SPARC_FIXUP(l, r, value, new_value) \
38 sparc_fixup_plt (r, value, new_value, 0, 1)
39 #endif
40 #define DL_FIXUP_BINDNOW_RELOC(l, reloc, value, new_value, st_value, lazy) \
41 ({ \
42 if (lazy) \
43 (*value) = st_value; \
44 else \
45 { \
46 const PLTREL *__r = (reloc); \
47 DL_SPARC_FIXUP (l, __r, value, new_value); \
48 } \