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