X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=gcc%2Fconfig%2Fnextstep.h;h=76e1a3505a6ef0da2f20b6af0541495ee6cecbb6;hp=6e2e986713ea590fefb0d70f10171e8e2fc2bad1;hb=cfc95f868f2f76dd7c965692ab57dd4a4b01fee9;hpb=dcd3999499960f669bbc8410c93a44b023e1fd10 diff --git a/gcc/config/nextstep.h b/gcc/config/nextstep.h index 6e2e986713e..76e1a3505a6 100644 --- a/gcc/config/nextstep.h +++ b/gcc/config/nextstep.h @@ -1,6 +1,7 @@ -/* nextstep.h -- operating system specific defines to be used when - targeting GCC for NeXTSTEP. - Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc. +/* Operating system specific defines to be used when targeting GCC + for NeXTSTEP. + Copyright (C) 1989, 1990, 1991, 1992, 1993, 1996, 1997, + 1999 Free Software Foundation, Inc. This file is part of GNU CC. @@ -27,26 +28,43 @@ Boston, MA 02111-1307, USA. */ #undef INCLUDE_DEFAULTS #define INCLUDE_DEFAULTS \ { \ - { GPLUSPLUS_INCLUDE_DIR, 1, 1 }, \ - { LOCAL_INCLUDE_DIR, 0, 1 }, \ - { TOOL_INCLUDE_DIR, 0, 1 }, \ - { GCC_INCLUDE_DIR, 0, 0 }, \ + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \ + { LOCAL_INCLUDE_DIR, 0, 0, 1 }, \ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1 }, \ + { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \ /* These are for fixincludes-fixed ansi/bsd headers \ which wouldn't be found otherwise. \ (The use of string catenation here is OK since \ NeXT's native compiler is derived from GCC.) */ \ - { GCC_INCLUDE_DIR "/ansi", 0, 0 }, \ - { GCC_INCLUDE_DIR "/bsd", 0, 0 }, \ - { "/NextDeveloper/Headers", 0, 0 }, \ - { "/NextDeveloper/Headers/ansi", 0, 0 }, \ - { "/NextDeveloper/Headers/bsd", 0, 0 }, \ - { "/LocalDeveloper/Headers", 0, 0 }, \ - { "/LocalDeveloper/Headers/ansi", 0, 0 }, \ - { "/LocalDeveloper/Headers/bsd", 0, 0 }, \ - { "/NextDeveloper/2.0CompatibleHeaders", 0, 0 }, \ - { STANDARD_INCLUDE_DIR, 0, 0 }, \ - { "/usr/include/bsd", 0, 0 }, \ - { 0, 0, 0 } \ + { GCC_INCLUDE_DIR "/ansi", 0, 0, 0 }, \ + { GCC_INCLUDE_DIR "/bsd", 0, 0, 0 }, \ + { "/NextDeveloper/Headers", 0, 0, 0 }, \ + { "/NextDeveloper/Headers/ansi", 0, 0, 0 }, \ + { "/NextDeveloper/Headers/bsd", 0, 0, 0 }, \ + { "/LocalDeveloper/Headers", 0, 0, 0 }, \ + { "/LocalDeveloper/Headers/ansi", 0, 0, 0 }, \ + { "/LocalDeveloper/Headers/bsd", 0, 0, 0 }, \ + { "/NextDeveloper/2.0CompatibleHeaders", 0, 0, 0 }, \ + { STANDARD_INCLUDE_DIR, 0, 0, 0 }, \ + { "/usr/include/bsd", 0, 0, 0 }, \ + { 0, 0, 0, 0 } \ + } +#else /* CROSS_COMPILE */ +#undef INCLUDE_DEFAULTS +#define INCLUDE_DEFAULTS \ + { \ + { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1 }, \ + { GPLUSPLUS_INCLUDE_DIR, 0, 1, 1 }, \ + { LOCAL_INCLUDE_DIR, 0, 0, 1 }, \ + { GCC_INCLUDE_DIR, "GCC", 0, 0 }, \ + { GCC_INCLUDE_DIR "/ansi", 0, 0, 0 }, \ + { GCC_INCLUDE_DIR "/bsd", 0, 0, 0 }, \ + { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1 }, \ + { TOOL_INCLUDE_DIR "/ansi", 0, 0, 0 }, \ + { TOOL_INCLUDE_DIR "/bsd", 0, 0, 0 }, \ + { STANDARD_INCLUDE_DIR, 0, 0, 0 }, \ + { "/usr/include/bsd", 0, 0, 0 }, \ + { 0, 0, 0, 0 } \ } #endif /* CROSS_COMPILE */ @@ -64,10 +82,6 @@ Boston, MA 02111-1307, USA. */ #define NEXT_OBJC_RUNTIME -/* We have atexit. */ - -#define HAVE_ATEXIT - /* Enable recent gcc to compile under the old gcc in Next release 1.0. */ #define __inline inline @@ -150,12 +164,12 @@ Boston, MA 02111-1307, USA. */ %{!p:-lcrt0.o}}}\ %{posix*:%{pg:-lgposixcrt0.o}%{!pg: \ %{p:%e-p profiling is no longer supported. Use -pg instead.} \ - %{!p:-lposixcrt0.o}}}" + %{!p:-lposixcrt0.o}}} \ + -lcrtbegin.o" -/* Why not? */ - -#undef DOLLARS_IN_IDENTIFIERS -#define DOLLARS_IN_IDENTIFIERS 2 +#undef ENDFILE_SPEC +#define ENDFILE_SPEC \ + "-lcrtend.o" /* Allow #sscs (but don't do anything). */ @@ -191,11 +205,9 @@ Boston, MA 02111-1307, USA. */ "\t.text\n\t.stabs \"%s\",%d,0,0,Letext\nLetext:\n", \ "" , N_SO) -/* Don't use .gcc_compiled symbols to communicate with GDB; - They interfere with numerically sorted symbol lists. */ +/* Define our object format type for crtstuff.c */ +#define OBJECT_FORMAT_MACHO -#undef ASM_IDENTIFY_GCC -#define ASM_IDENTIFY_GCC(asm_out_file) #undef INIT_SECTION_ASM_OP #define INIT_SECTION_ASM_OP #undef INVOKE__main @@ -220,6 +232,8 @@ Boston, MA 02111-1307, USA. */ fprintf (FILE, ".reference .destructors_used\n"); \ } while (0) +#define EH_FRAME_SECTION_ASM_OP "\t.section __TEXT,__eh_frame,regular" + /* Don't output a .file directive. That is only used by the assembler for error reporting. */ #undef ASM_FILE_START @@ -228,7 +242,6 @@ Boston, MA 02111-1307, USA. */ #undef ASM_FILE_END #define ASM_FILE_END(FILE) \ do { \ - extern char *language_string; \ if (strcmp (language_string, "GNU C++") == 0) \ { \ constructor_section (); \ @@ -240,7 +253,8 @@ Boston, MA 02111-1307, USA. */ /* How to parse #pragma's */ #undef HANDLE_PRAGMA -#define HANDLE_PRAGMA(finput) handle_pragma (finput, &get_directive_line) +#define HANDLE_PRAGMA(GETC, UNGETC, NAME) handle_pragma (GETC, UNGETC, NAME) +extern int handle_pragma PARAMS ((int(*)(void), void (*)(int), const char *)); /* Give methods pretty symbol names on NeXT. */ @@ -254,6 +268,11 @@ Boston, MA 02111-1307, USA. */ (CLASS_NAME), (SEL_NAME)); \ } while (0) +/* The prefix to add to user-visible assembler symbols. */ + +#undef USER_LABEL_PREFIX +#define USER_LABEL_PREFIX "_" + /* Wrap new method names in quotes so the assembler doesn't gag. Make Objective-C internal symbols local. */ @@ -263,15 +282,15 @@ Boston, MA 02111-1307, USA. */ else if (!strncmp (NAME, "_OBJC_", 6)) fprintf (FILE, "L%s", NAME); \ else if (!strncmp (NAME, ".objc_class_name_", 17)) \ fprintf (FILE, "%s", NAME); \ - else fprintf (FILE, "_%s", NAME); } while (0) + else asm_fprintf (FILE, "%U%s", NAME); } while (0) #undef ALIGN_ASM_OP -#define ALIGN_ASM_OP ".align" +#define ALIGN_ASM_OP "\t.align\t" #undef ASM_OUTPUT_ALIGN #define ASM_OUTPUT_ALIGN(FILE,LOG) \ if ((LOG) != 0) \ - fprintf (FILE, "\t%s %d\n", ALIGN_ASM_OP, (LOG)) + fprintf (FILE, "%s%d\n", ALIGN_ASM_OP, (LOG)) /* Ensure correct alignment of bss data. */ @@ -296,11 +315,10 @@ Boston, MA 02111-1307, USA. */ #undef SECTION_FUNCTION #define SECTION_FUNCTION(FUNCTION, SECTION, DIRECTIVE, WAS_TEXT, OBJC) \ +extern void FUNCTION PARAMS ((void)); \ void \ FUNCTION () \ { \ - extern void text_section (); \ - extern void objc_section_init (); \ extern int flag_no_mach_text_sections; \ \ if (WAS_TEXT && flag_no_mach_text_sections) \ @@ -330,6 +348,7 @@ FUNCTION () \ #undef EXTRA_SECTION_FUNCTIONS #define EXTRA_SECTION_FUNCTIONS \ +extern void objc_section_init PARAMS ((void)); \ SECTION_FUNCTION (const_section, \ in_const, \ ".const", 1, 0) \ @@ -565,3 +584,9 @@ objc_section_init () \ const_section (); \ } \ while (0) + +#ifdef ASM_COMMENT_START +# undef ASM_COMMENT_START +#endif + +#define ASM_COMMENT_START ";#"