mingw-w64.h revision 1.1
1/* Operating system specific defines to be used when targeting GCC for 2 hosting on Windows 32/64 via mingw-w64 runtime, using GNU tools and 3 the Windows API Library. 4 Copyright (C) 2009, 5 2009 Free Software Foundation, Inc. 6 7This file is part of GCC. 8 9GCC is free software; you can redistribute it and/or modify 10it under the terms of the GNU General Public License as published by 11the Free Software Foundation; either version 3, or (at your option) 12any later version. 13 14GCC is distributed in the hope that it will be useful, 15but WITHOUT ANY WARRANTY; without even the implied warranty of 16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17GNU General Public License for more details. 18 19You should have received a copy of the GNU General Public License 20along with GCC; see the file COPYING3. If not see 21<http://www.gnu.org/licenses/>. */ 22 23/* Enable -municode feature. */ 24 25#undef CPP_SPEC 26#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{mthreads:-D_MT} \ 27 %{municode:-DUNICODE}" 28 29#undef STARTFILE_SPEC 30#define STARTFILE_SPEC "%{shared|mdll:dllcrt2%O%s} \ 31 %{!shared:%{!mdll:%{!municode:crt2%O%s}}} \ 32 %{!shared:%{!mdll:%{municode:crt2u%O%s}}} \ 33 %{pg:gcrt2%O%s} \ 34 crtbegin.o%s" 35 36/* Enable multilib. */ 37 38#undef ASM_SPEC 39#define ASM_SPEC "%{v:-v} %{n} %{T} %{Ym,*} %{Yd,*} \ 40 %{Wa,*:%*} %{m32:--32} %{m64:--64}" 41 42#undef SPEC_32 43#undef SPEC_64 44#if TARGET_64BIT_DEFAULT 45#define SPEC_32 "m32" 46#define SPEC_64 "!m32" 47#else 48#define SPEC_32 "!m64" 49#define SPEC_64 "m64" 50#endif 51 52#undef SUB_LINK_ENTRY32 53#undef SUB_LINK_ENTRY64 54#define SUB_LINK_ENTRY32 "-e _DllMainCRTStartup@12" 55#if defined(USE_MINGW64_LEADING_UNDERSCORES) 56#define SUB_LINK_ENTRY64 "-e _DllMainCRTStartup" 57#else 58#define SUB_LINK_ENTRY64 "-e DllMainCRTStartup" 59#endif 60 61#undef SUB_LINK_SPEC 62#undef SUB_LINK_ENTRY 63#define SUB_LINK_SPEC "%{" SPEC_64 ":-m i386pep} %{" SPEC_32 ":-m i386pe}" 64#define SUB_LINK_ENTRY "%{" SPEC_64 ":" SUB_LINK_ENTRY64 "} %{" SPEC_32 ":" SUB_LINK_ENTRY32 "}" 65 66#undef MULTILIB_DEFAULTS 67#if TARGET_64BIT_DEFAULT 68#define MULTILIB_DEFAULTS { "m64" } 69#else 70#define MULTILIB_DEFAULTS { "m32" } 71#endif 72 73#undef LINK_SPEC 74#define LINK_SPEC SUB_LINK_SPEC " %{mwindows:--subsystem windows} \ 75 %{mconsole:--subsystem console} \ 76 %{shared: %{mdll: %eshared and mdll are not compatible}} \ 77 %{shared: --shared} %{mdll:--dll} \ 78 %{static:-Bstatic} %{!static:-Bdynamic} \ 79 %{shared|mdll: " SUB_LINK_ENTRY " --enable-auto-image-base} \ 80 %(shared_libgcc_undefs)" 81