/* Operating system specific defines to be used when targeting GCC for hosting on Windows32, using GNU tools and the Windows32 API Library. This variant uses CRTDLL.DLL instead of MSVCRTDLL.DLL. Copyright (C) 1998-2022 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ #undef EXTRA_OS_CPP_BUILTINS #define EXTRA_OS_CPP_BUILTINS() \ do \ { \ builtin_define ("__CRTDLL__"); \ builtin_define ("__MINGW32__"); \ builtin_define ("_WIN32"); \ builtin_define_std ("WIN32"); \ builtin_define_std ("WINNT"); \ } \ while (0) #ifdef EXTRA_TARGET_RUST_OS_INFO # error "EXTRA_TARGET_RUST_OS_INFO already defined in crtdll.h (i386) - c++ undefines it and redefines it." #endif #define EXTRA_TARGET_RUST_OS_INFO() \ do { \ builtin_rust_info ("target_family", "windows"); \ builtin_rust_info ("target_os", "windows"); \ builtin_rust_info ("target_vendor", "pc"); \ /*TODO: is this the right target_env? it says gnu tools up there, but env may change.*/ \ builtin_rust_info ("target_env", "gnu"); \ } while (0) #undef LIBGCC_SPEC #define LIBGCC_SPEC \ "%{mthreads:-lmingwthrd} -lmingw32 -lgcc -lcoldname -libmingwex -lcrtdll" /* Specify a different entry point when linking a DLL */ #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{shared|mdll:dllcrt1%O%s} \ %{!shared:%{!mdll:crt1%O%s}} %{pg:gcrt1%O%s}"