diff --git a/gcc/config/i386/djgpp.h b/gcc/config/i386/djgpp.h index f8b9031..f3033f7 100644 --- a/gcc/config/i386/djgpp.h +++ b/gcc/config/i386/djgpp.h @@ -17,12 +17,27 @@ You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see . */ +#define DBX_DEBUGGING_INFO 1 +#define SDB_DEBUGGING_INFO 1 + /* Support generation of DWARF2 debugging info. */ #define DWARF2_DEBUGGING_INFO 1 +/* Use DWARF2 debugging info by default: comment out following */ +/* 2 lines to default to COFF debugging info */ +#undef PREFERRED_DEBUGGING_TYPE +#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG + /* Don't assume anything about the header files. */ #define NO_IMPLICIT_EXTERN_C +/* If defined, a C expression whose value is a string containing the + assembler operation to identify the following data as + uninitialized global data. If not defined, and neither + `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined, + uninitialized global data will be output in the data section if + `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be + used. */ #undef BSS_SECTION_ASM_OP #define BSS_SECTION_ASM_OP "\t.section\t.bss" @@ -30,6 +45,10 @@ along with GCC; see the file COPYING3. If not see #undef DATA_SECTION_ASM_OP #define DATA_SECTION_ASM_OP "\t.section .data" +/* Define the name of the .ident op. */ +#undef TARGET_ASM_OUTPUT_IDENT +#define TARGET_ASM_OUTPUT_IDENT default_asm_output_ident_directive + /* Enable alias attribute support. */ #ifndef SET_ASM_OP #define SET_ASM_OP "\t.set\t" @@ -39,56 +58,26 @@ along with GCC; see the file COPYING3. If not see #undef TEXT_SECTION_ASM_OP #define TEXT_SECTION_ASM_OP "\t.section .text" -/* Define standard DJGPP installation paths. */ -/* We override default /usr or /usr/local part with /dev/env/DJDIR which */ -/* points to actual DJGPP installation directory. */ - -/* Search for as.exe and ld.exe in DJGPP's binary directory. */ -#undef MD_EXEC_PREFIX -#define MD_EXEC_PREFIX "/dev/env/DJDIR/bin/" - -/* Standard DJGPP library and startup files */ -#undef MD_STARTFILE_PREFIX -#define MD_STARTFILE_PREFIX "/dev/env/DJDIR/lib/" - -/* Correctly handle absolute filename detection in cp/xref.c */ -#define FILE_NAME_ABSOLUTE_P(NAME) \ - (((NAME)[0] == '/') || ((NAME)[0] == '\\') || \ - (((NAME)[0] >= 'A') && ((NAME)[0] <= 'z') && ((NAME)[1] == ':'))) - #define TARGET_OS_CPP_BUILTINS() \ do \ { \ + if (!flag_iso) \ + builtin_define_with_int_value ("DJGPP",2); \ + builtin_define_with_int_value ("__DJGPP",2); \ + builtin_define_with_int_value ("__DJGPP__",2); \ builtin_define_std ("MSDOS"); \ builtin_define_std ("GO32"); \ + builtin_define_std ("unix"); \ builtin_assert ("system=msdos"); \ } \ while (0) /* Include so __DJGPP__ and __DJGPP_MINOR__ are defined. */ #undef CPP_SPEC -#define CPP_SPEC "-remap %{posix:-D_POSIX_SOURCE} \ - -imacros %s../include/sys/version.h" - -/* We need to override link_command_spec in gcc.c so support -Tdjgpp.djl. - This cannot be done in LINK_SPECS as that LINK_SPECS is processed - before library search directories are known by the linker. - This avoids problems when specs file is not available. An alternate way, - suggested by Robert Hoehne, is to use SUBTARGET_EXTRA_SPECS instead. -*/ - -#undef LINK_COMMAND_SPEC -#define LINK_COMMAND_SPEC \ -"%{!fsyntax-only: \ -%{!c:%{!M:%{!MM:%{!E:%{!S:%(linker) %l " LINK_COMPRESS_DEBUG_SPEC \ -"%X %{o*} %{e*} %{N} %{n} \ -\t%{r} %{s} %{t} %{u*} %{z} %{Z}\ -\t%{!nostdlib:%{!nostartfiles:%S}}\ -\t%{static:} %{L*} %D %o\ -\t%{!nostdlib:%{!nodefaultlibs:%G %L %G}}\ -\t%{!nostdlib:%{!nostartfiles:%E}}\ -\t-Tdjgpp.djl %{T*}}}}}}}\n\ -%{!c:%{!M:%{!MM:%{!E:%{!S:stubify %{v} %{o*:%*} %{!o*:a.out} }}}}}" +#define CPP_SPEC "-remap %{posix:-D_POSIX_SOURCE}" + +#undef POST_LINK_SPEC +#define POST_LINK_SPEC "stubify %{v} %{o*:%*} %{!o*:a.out}" /* Always just link in 'libc.a'. */ #undef LIB_SPEC @@ -98,12 +87,8 @@ along with GCC; see the file COPYING3. If not see #undef STARTFILE_SPEC #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:crt0.o%s}" -/* Make sure that gcc will not look for .h files in /usr/local/include - unless user explicitly requests it. */ -#undef LOCAL_INCLUDE_DIR - /* Switch into a generic section. */ -#define TARGET_ASM_NAMED_SECTION default_coff_asm_named_section +#define TARGET_ASM_NAMED_SECTION i386_djgpp_asm_named_section /* This is how to output an assembler line that says to advance the location counter @@ -129,7 +114,7 @@ along with GCC; see the file COPYING3. If not see while (0) #endif -/* This is how to tell assembler that a symbol is weak */ +/* This is how to tell assembler that a symbol is weak */ #undef ASM_WEAKEN_LABEL #define ASM_WEAKEN_LABEL(FILE,NAME) \ do { fputs ("\t.weak\t", FILE); assemble_name (FILE, NAME); \ @@ -159,23 +144,38 @@ along with GCC; see the file COPYING3. If not see #undef PTRDIFF_TYPE #define PTRDIFF_TYPE "int" -/* Used to be defined in xm-djgpp.h, but moved here for cross-compilers. */ -#define LIBSTDCXX "stdcxx" - -/* Warn that -mbnu210 is now obsolete. */ -#undef SUBTARGET_OVERRIDE_OPTIONS -#define SUBTARGET_OVERRIDE_OPTIONS \ -do \ - { \ - if (TARGET_BNU210) \ - { \ - warning (0, "-mbnu210 is ignored (option is obsolete)"); \ - } \ - } \ -while (0) - /* Support for C++ templates. */ #undef MAKE_DECL_ONE_ONLY #define MAKE_DECL_ONE_ONLY(DECL) (DECL_WEAK (DECL) = 1) -#define IX86_MAYBE_NO_LIBGCC_TFMODE +#undef DBX_REGISTER_NUMBER +#define DBX_REGISTER_NUMBER(n) svr4_dbx_register_map[n] + +/* Default to pcc-struct-return. */ +#define DEFAULT_PCC_STRUCT_RETURN 1 + +/* Ignore (with warning) -fPIC for DJGPP */ +#undef SUBTARGET_OVERRIDE_OPTIONS +#define SUBTARGET_OVERRIDE_OPTIONS \ + do { \ + if (flag_pic) \ + { \ + fnotice(stdout, "-f%s ignored (not supported for DJGPP)\n", \ + (flag_pic > 1) ? "PIC" : "pic"); \ + flag_pic = 0; \ + } \ + \ + /* Don't emit DWARF3/4 unless specifically selected. */ \ + /* DWARF3/4 currently does not work for DJGPP. */ \ + if (!global_options_set.x_dwarf_version) \ + dwarf_version = 2; \ + \ + } \ + while (0) + +/* Function protypes for gcc/i486/djgpp.c */ + +void +i386_djgpp_asm_named_section(const char *name, unsigned int flags, + tree decl); +