diff options
Diffstat (limited to 'gcc/config/i386/djgpp.h')
-rw-r--r-- | gcc/config/i386/djgpp.h | 41 |
1 files changed, 26 insertions, 15 deletions
diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h index 91940b570ef..e116a8b94f5 100644 --- a/gcc/config/i386/djgpp.h +++ b/gcc/config/i386/djgpp.h @@ -112,11 +112,12 @@ Boston, MA 02111-1307, USA. */ (((NAME)[0] >= 'A') && ((NAME)[0] <= 'z') && ((NAME)[1] == ':'))) #undef CPP_PREDEFINES -#define CPP_PREDEFINES "-D__MSDOS__ -Asystem=msdos" +#define CPP_PREDEFINES "-D__MSDOS__ -D__GO32__ -Asystem=msdos" /* Include <sys/version.h> so __DJGPP__ and __DJGPP_MINOR__ are defined. */ #undef CPP_SPEC #define CPP_SPEC "-remap %(cpp_cpu) %{posix:-D_POSIX_SOURCE} \ + %{!ansi:%{!std=c*:%{!std=i*:-DMSDOS}}} %{!ansi:%{!std=c*:%{!std=i*:-DGO32}}} \ -imacros %s../include/sys/version.h" /* We need to override link_command_spec in gcc.c so support -Tdjgpp.djl. @@ -150,6 +151,11 @@ Boston, MA 02111-1307, USA. */ unless user explicitly requests it. */ #undef LOCAL_INCLUDE_DIR +/* Do not make only .exe if no executable file suffix was specified. */ +/* Let the linker handle that. */ +#undef NO_AUTO_EXE_SUFFIX +#define NO_AUTO_EXE_SUFFIX + #undef EXTRA_SECTIONS #define EXTRA_SECTIONS in_ctor, in_dtor @@ -183,7 +189,7 @@ dtor_section () \ #define ASM_OUTPUT_CONSTRUCTOR(FILE,NAME) \ do { \ ctor_section (); \ - fprintf (FILE, "%s\t", ASM_LONG); \ + fputs (ASM_LONG, FILE); \ assemble_name (FILE, NAME); \ fprintf (FILE, "\n"); \ } while (0) @@ -200,7 +206,7 @@ dtor_section () \ #define ASM_OUTPUT_DESTRUCTOR(FILE,NAME) \ do { \ dtor_section (); \ - fprintf (FILE, "%s\t", ASM_LONG); \ + fputs (ASM_LONG, FILE); \ assemble_name (FILE, NAME); \ fprintf (FILE, "\n"); \ } while (0) @@ -260,22 +266,27 @@ dtor_section () \ /* Used to be defined in xm-djgpp.h, but moved here for cross-compilers. */ #define LIBSTDCXX "-lstdcxx" -/* Add command line option -mbnu210 to indicate we can use binutil 2.10's features. */ +/* -mbnu210 is now ignored and obsolete. It was used to enable support for + weak symbols, and .gnu.linkonce support. */ #undef MASK_BNU210 #define MASK_BNU210 (0x40000000) #undef SUBTARGET_SWITCHES -#define SUBTARGET_SWITCHES \ - { "bnu210", -MASK_BNU210, "Enable weak symbol and enhanced C++ template support. Binutils 2.10 or higher required." }, \ - { "no-bnu210", MASK_BNU210, "Disable weak symbol and enhanced C++ template support." }, - -/* Weak symbols and .gnu.linkonce are only in Binutils-2.10 and later. - Default to using Binutils 2.10 features. */ -#undef SUPPORTS_WEAK -#define SUPPORTS_WEAK ((target_flags & MASK_BNU210) == 0) - -#undef SUPPORTS_ONE_ONLY -#define SUPPORTS_ONE_ONLY ((target_flags & MASK_BNU210) == 0) +#define SUBTARGET_SWITCHES \ + { "no-bnu210", -MASK_BNU210, "Ignored (obsolete)." }, \ + { "bnu210", MASK_BNU210, "Ignored (obsolete)." }, + +/* Warn that -mbnu210 is now obsolete. */ +#undef SUBTARGET_OVERRIDE_OPTIONS +#define SUBTARGET_OVERRIDE_OPTIONS \ +do \ + { \ + if (target_flags & MASK_BNU210) \ + { \ + warning ("-mbnu210 is ignored (option is obsolete)."); \ + } \ + } \ +while (0) /* Support for C++ templates. */ #undef MAKE_DECL_ONE_ONLY |