Blame sysdeps/unix/sysv/linux/ia64/dl-sysdep.h

Packit 6c4009
/* System-specific settings for dynamic linker code.  IA-64 version.
Packit 6c4009
   Copyright (C) 2003-2018 Free Software Foundation, Inc.
Packit 6c4009
   This file is part of the GNU C Library.
Packit 6c4009
Packit 6c4009
   The GNU C Library is free software; you can redistribute it and/or
Packit 6c4009
   modify it under the terms of the GNU Lesser General Public
Packit 6c4009
   License as published by the Free Software Foundation; either
Packit 6c4009
   version 2.1 of the License, or (at your option) any later version.
Packit 6c4009
Packit 6c4009
   The GNU C Library is distributed in the hope that it will be useful,
Packit 6c4009
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 6c4009
   Lesser General Public License for more details.
Packit 6c4009
Packit 6c4009
   You should have received a copy of the GNU Lesser General Public
Packit 6c4009
   License along with the GNU C Library; if not, see
Packit 6c4009
   <http://www.gnu.org/licenses/>.  */
Packit 6c4009
Packit 6c4009
#ifndef _LINUX_IA64_DL_SYSDEP_H
Packit 6c4009
#define _LINUX_IA64_DL_SYSDEP_H	1
Packit 6c4009
Packit 6c4009
#include_next <dl-sysdep.h>
Packit 6c4009
Packit 6c4009
/* Traditionally system calls have been made using break 0x100000.  A
Packit 6c4009
   second method was introduced which, if possible, will use the EPC
Packit 6c4009
   instruction.  To signal the presence and where to find the code the
Packit 6c4009
   kernel passes an AT_SYSINFO_EHDR pointer in the auxiliary vector to
Packit 6c4009
   the application.  */
Packit 6c4009
#define NEED_DL_SYSINFO	1
Packit 6c4009
#define USE_DL_SYSINFO	1
Packit 6c4009
Packit 6c4009
#ifndef __ASSEMBLER__
Packit 6c4009
/* Don't declare this as a function---we want it's entry-point, not
Packit 6c4009
   it's function descriptor... */
Packit 6c4009
extern int _dl_sysinfo_break attribute_hidden;
Packit 6c4009
# define DL_SYSINFO_DEFAULT ((uintptr_t) &_dl_sysinfo_break)
Packit 6c4009
# define DL_SYSINFO_IMPLEMENTATION		\
Packit 6c4009
  asm (".text\n\t"				\
Packit 6c4009
       ".hidden _dl_sysinfo_break\n\t"		\
Packit 6c4009
       ".proc _dl_sysinfo_break\n\t"		\
Packit 6c4009
       "_dl_sysinfo_break:\n\t"			\
Packit 6c4009
       ".prologue\n\t"				\
Packit 6c4009
       ".altrp b6\n\t"				\
Packit 6c4009
       ".body\n\t"				\
Packit 6c4009
       "break 0x100000;\n\t"			\
Packit 6c4009
       "br.ret.sptk.many b6;\n\t"		\
Packit 6c4009
       ".endp _dl_sysinfo_break\n\t"		\
Packit 6c4009
       ".previous");
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
/* _dl_argv cannot be attribute_relro, because _dl_start_user
Packit 6c4009
   might write into it after _dl_start returns.  */
Packit 6c4009
#define DL_ARGV_NOT_RELRO 1
Packit 6c4009
Packit 6c4009
#endif	/* dl-sysdep.h */