1 /* System-specific settings for dynamic linker code. IA-64 version. 2 Copyright (C) 2003-2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 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. 9 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. 14 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/>. */ 18 19 #ifndef _LINUX_IA64_DL_SYSDEP_H 20 #define _LINUX_IA64_DL_SYSDEP_H 1 21 22 #include_next <dl-sysdep.h> 23 24 /* Traditionally system calls have been made using break 0x100000. A 25 second method was introduced which, if possible, will use the EPC 26 instruction. To signal the presence and where to find the code the 27 kernel passes an AT_SYSINFO_EHDR pointer in the auxiliary vector to 28 the application. */ 29 #define NEED_DL_SYSINFO 1 30 #define USE_DL_SYSINFO 1 31 32 #ifndef __ASSEMBLER__ 33 /* Don't declare this as a function---we want it's entry-point, not 34 it's function descriptor... */ 35 extern int _dl_sysinfo_break attribute_hidden; 36 # define DL_SYSINFO_DEFAULT ((uintptr_t) &_dl_sysinfo_break) 37 # define DL_SYSINFO_IMPLEMENTATION \ 38 asm (".text\n\t" \ 39 ".hidden _dl_sysinfo_break\n\t" \ 40 ".proc _dl_sysinfo_break\n\t" \ 41 "_dl_sysinfo_break:\n\t" \ 42 ".prologue\n\t" \ 43 ".altrp b6\n\t" \ 44 ".body\n\t" \ 45 "break 0x100000;\n\t" \ 46 "br.ret.sptk.many b6;\n\t" \ 47 ".endp _dl_sysinfo_break\n\t" \ 48 ".previous"); 49 #endif 50 51 /* _dl_argv cannot be attribute_relro, because _dl_start_user 52 might write into it after _dl_start returns. */ 53 #define DL_ARGV_NOT_RELRO 1 54 55 #endif /* dl-sysdep.h */ 56