110d565efSmrg /* Definitions for Intel 386 running Linux-based GNU systems with ELF format.
2*ec02198aSmrg    Copyright (C) 2012-2020 Free Software Foundation, Inc.
310d565efSmrg    Contributed by Ilya Enkovich.
410d565efSmrg 
510d565efSmrg This file is part of GCC.
610d565efSmrg 
710d565efSmrg GCC is free software; you can redistribute it and/or modify
810d565efSmrg it under the terms of the GNU General Public License as published by
910d565efSmrg the Free Software Foundation; either version 3, or (at your option)
1010d565efSmrg any later version.
1110d565efSmrg 
1210d565efSmrg GCC is distributed in the hope that it will be useful,
1310d565efSmrg but WITHOUT ANY WARRANTY; without even the implied warranty of
1410d565efSmrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1510d565efSmrg GNU General Public License for more details.
1610d565efSmrg 
1710d565efSmrg You should have received a copy of the GNU General Public License
1810d565efSmrg along with GCC; see the file COPYING3.  If not see
1910d565efSmrg <http://www.gnu.org/licenses/>.  */
2010d565efSmrg 
2110d565efSmrg #undef TARGET_OS_CPP_BUILTINS
2210d565efSmrg #define TARGET_OS_CPP_BUILTINS()               \
2310d565efSmrg   do                                           \
2410d565efSmrg     {                                          \
2510d565efSmrg       GNU_USER_TARGET_OS_CPP_BUILTINS();       \
2610d565efSmrg       ANDROID_TARGET_OS_CPP_BUILTINS();	       \
2710d565efSmrg     }                                          \
2810d565efSmrg   while (0)
2910d565efSmrg 
300fc04c29Smrg #define EXTRA_TARGET_D_OS_VERSIONS()		\
310fc04c29Smrg   ANDROID_TARGET_D_OS_VERSIONS();
320fc04c29Smrg 
330fc04c29Smrg #define GNU_USER_TARGET_D_CRITSEC_SIZE		\
340fc04c29Smrg   (TARGET_64BIT ? (POINTER_SIZE == 64 ? 40 : 32) : 24)
350fc04c29Smrg 
3610d565efSmrg #undef CC1_SPEC
3710d565efSmrg #define CC1_SPEC \
3810d565efSmrg   LINUX_OR_ANDROID_CC (GNU_USER_TARGET_CC1_SPEC, \
3910d565efSmrg 		       GNU_USER_TARGET_CC1_SPEC " " ANDROID_CC1_SPEC)
4010d565efSmrg 
4110d565efSmrg #undef	LINK_SPEC
4210d565efSmrg #define LINK_SPEC \
4310d565efSmrg   LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LINK_SPEC, \
4410d565efSmrg 		       GNU_USER_TARGET_LINK_SPEC " " ANDROID_LINK_SPEC)
4510d565efSmrg 
4610d565efSmrg #undef  LIB_SPEC
4710d565efSmrg #define LIB_SPEC \
4810d565efSmrg   LINUX_OR_ANDROID_LD (GNU_USER_TARGET_LIB_SPEC, \
4910d565efSmrg 		    GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC " " ANDROID_LIB_SPEC)
5010d565efSmrg 
5110d565efSmrg #undef  STARTFILE_SPEC
5210d565efSmrg #define STARTFILE_SPEC \
5310d565efSmrg   LINUX_OR_ANDROID_LD (GNU_USER_TARGET_STARTFILE_SPEC, \
5410d565efSmrg 		       ANDROID_STARTFILE_SPEC)
5510d565efSmrg 
5610d565efSmrg #undef  ENDFILE_SPEC
5710d565efSmrg #define ENDFILE_SPEC \
5810d565efSmrg   LINUX_OR_ANDROID_LD (GNU_USER_TARGET_MATHFILE_SPEC " " \
5910d565efSmrg 		       GNU_USER_TARGET_ENDFILE_SPEC,	 \
6010d565efSmrg 		       GNU_USER_TARGET_MATHFILE_SPEC " " \
6110d565efSmrg 		       ANDROID_ENDFILE_SPEC)
6210d565efSmrg 
6310d565efSmrg #ifdef HAVE_LD_PUSHPOPSTATE_SUPPORT
6410d565efSmrg #define MPX_LD_AS_NEEDED_GUARD_PUSH "--push-state --no-as-needed"
6510d565efSmrg #define MPX_LD_AS_NEEDED_GUARD_POP "--pop-state"
6610d565efSmrg #else
6710d565efSmrg #define MPX_LD_AS_NEEDED_GUARD_PUSH ""
6810d565efSmrg #define MPX_LD_AS_NEEDED_GUARD_POP ""
6910d565efSmrg #endif
7010d565efSmrg 
71c7a68eb7Smrg extern void file_end_indicate_exec_stack_and_cet (void);
72c7a68eb7Smrg 
73c7a68eb7Smrg #undef TARGET_ASM_FILE_END
74c7a68eb7Smrg #define TARGET_ASM_FILE_END file_end_indicate_exec_stack_and_cet
75