(root)/
gcc-13.2.0/
gcc/
config/
i386/
gnu.h
       1  /* Configuration for an i386 running GNU with ELF as the target machine.  */
       2  
       3  /*
       4  Copyright (C) 1994-2023 Free Software Foundation, Inc.
       5  
       6  This file is part of GCC.
       7  
       8  GCC is free software: you can redistribute it and/or modify
       9  it under the terms of the GNU General Public License as published by
      10  the Free Software Foundation, either version 3 of the License, or
      11  (at your option) any later version.
      12  
      13  GCC is distributed in the hope that it will be useful,
      14  but WITHOUT ANY WARRANTY; without even the implied warranty of
      15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      16  GNU General Public License for more details.
      17  
      18  You should have received a copy of the GNU General Public License
      19  along with GCC.  If not, see <http://www.gnu.org/licenses/>.
      20  */
      21  
      22  #define GNU_USER_LINK_EMULATION "elf_i386"
      23  
      24  #undef GNU_USER_DYNAMIC_LINKER
      25  #define GNU_USER_DYNAMIC_LINKER "/lib/ld.so"
      26  
      27  #undef	STARTFILE_SPEC
      28  #if defined HAVE_LD_PIE
      29  #define STARTFILE_SPEC \
      30    "%{!shared: %{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
      31     crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
      32  #else
      33  #define STARTFILE_SPEC \
      34    "%{!shared: %{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};static:crt0.o%s;:crt1.o%s}} \
      35     crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
      36  #endif
      37  
      38  #ifdef TARGET_LIBC_PROVIDES_SSP
      39  
      40  /* i386 glibc provides __stack_chk_guard in %gs:0x14.  */
      41  #define TARGET_THREAD_SSP_OFFSET        0x14
      42  
      43  /* We only build the -fsplit-stack support in libgcc if the
      44     assembler has full support for the CFI directives.  Also
      45     we only support -fsplit-stack on glibc targets.  */
      46  #if (DEFAULT_LIBC == LIBC_GLIBC) && HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
      47  #define TARGET_CAN_SPLIT_STACK
      48  #endif
      49  /* We steal the last transactional memory word.  */
      50  #define TARGET_THREAD_SPLIT_STACK_OFFSET 0x30
      51  #endif