lynx.h revision 132718
1132718Skan/* Target independent definitions for LynxOS using gas and gnu ld. 2132718Skan Copyright (C) 1993, 1994, 1995, 1996, 1999, 2000, 2002, 2003 3117395Skan Free Software Foundation, Inc. 418334Speter 5132718SkanThis file is part of GCC. 618334Speter 7132718SkanGCC is free software; you can redistribute it and/or modify 818334Speterit under the terms of the GNU General Public License as published by 918334Speterthe Free Software Foundation; either version 2, or (at your option) 1018334Speterany later version. 1118334Speter 12132718SkanGCC is distributed in the hope that it will be useful, 1318334Speterbut WITHOUT ANY WARRANTY; without even the implied warranty of 1418334SpeterMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1518334SpeterGNU General Public License for more details. 1618334Speter 1718334SpeterYou should have received a copy of the GNU General Public License 18132718Skanalong with GCC; see the file COPYING. If not, write to 1918334Speterthe Free Software Foundation, 59 Temple Place - Suite 330, 2018334SpeterBoston, MA 02111-1307, USA. */ 2118334Speter 22132718Skan/* LynxOS is a multi-platform Unix, similar to SVR3, but not identical. */ 2318334Speter 24117395Skan/* Define various macros, depending on the combination of flags. */ 2518334Speter 2618334Speter#undef CPP_SPEC 2718334Speter#define CPP_SPEC "%{mthreads:-D_MULTITHREADED} \ 2818334Speter %{mposix:-D_POSIX_SOURCE} \ 2918334Speter %{msystem-v:-I/usr/include_v}" 3018334Speter 31117395Skan/* No asm spec needed, since using GNU assembler always. */ 3218334Speter 33117395Skan/* No linker spec needed, since using GNU linker always. */ 3418334Speter 3518334Speter#undef LIB_SPEC 3618334Speter#define LIB_SPEC "%{mthreads:-L/lib/thread/} \ 3718334Speter %{msystem-v:-lc_v} \ 3818334Speter %{!msystem-v:%{mposix:-lc_p} -lc -lm}" 3918334Speter 40117395Skan/* Set the appropriate names for the Lynx startfiles. */ 4118334Speter 4218334Speter#undef STARTFILE_SPEC 4318334Speter#define STARTFILE_SPEC "%{p:%{mthreads:thread/pinit1.o%s}%{!mthreads:pinit1.o%s}}%{!p:%{msystem-v:vinit1.o%s -e_start}%{!msystem-v:%{mthreads:thread/init1.o%s}%{!mthreads:init1.o%s}}}" 4418334Speter 4518334Speter#undef ENDFILE_SPEC 4618334Speter#define ENDFILE_SPEC "%{p:_etext.o%s}%{!p:initn.o%s}" 4718334Speter 48117395Skan/* Override the svr3 versions. */ 4918334Speter 5018334Speter#undef WCHAR_TYPE 5118334Speter#define WCHAR_TYPE "int" 5218334Speter 5318334Speter#undef PTRDIFF_TYPE 5418334Speter#define PTRDIFF_TYPE "long int" 5518334Speter 5618334Speter/* We want to output DBX (stabs) debugging information normally. */ 5718334Speter 58117395Skan#define DBX_DEBUGGING_INFO 1 5918334Speter#undef PREFERRED_DEBUGGING_TYPE 6018334Speter#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG 6118334Speter 6218334Speter/* It is convenient to be able to generate standard coff debugging 63117395Skan if requested via -gcoff. */ 6418334Speter 65117395Skan#define SDB_DEBUGGING_INFO 1 6618334Speter 67117395Skan/* Be function-relative for block and source line stab directives. */ 6818334Speter 6918334Speter#define DBX_BLOCKS_FUNCTION_RELATIVE 1 7018334Speter 7118334Speter/* but, to make this work, functions must appear prior to line info */ 7218334Speter 7318334Speter#define DBX_FUNCTION_FIRST 7418334Speter 7518334Speter/* Generate a blank trailing N_SO to mark the end of the .o file, since 7618334Speter we can't depend upon the linker to mark .o file boundaries with 7718334Speter embedded stabs. */ 7818334Speter 7918334Speter#define DBX_OUTPUT_MAIN_SOURCE_FILE_END(FILE, FILENAME) \ 8018334Speter fprintf (FILE, \ 8118334Speter "\t.text\n\t.stabs \"\",%d,0,0,Letext\nLetext:\n", N_SO) 8218334Speter 8318334Speter#undef ASM_OUTPUT_SOURCE_LINE 84132718Skan#define ASM_OUTPUT_SOURCE_LINE(file, line, counter) \ 85132718Skan { fprintf (file, ".stabn 68,0,%d,.LM%d-", \ 86132718Skan line, counter); \ 8718334Speter assemble_name (file, \ 8818334Speter XSTR (XEXP (DECL_RTL (current_function_decl), 0), 0)); \ 89132718Skan fprintf (file, "\n.LM%d:\n", counter); } 9018334Speter 9118334Speter/* Handle #pragma pack and sometimes #pragma weak. */ 9218334Speter 93117395Skan#define HANDLE_SYSV_PRAGMA 1 9418334Speter 95117395Skan/* Some additional command-line options. */ 9618334Speter 9718334Speter#define TARGET_THREADS (target_flags & MASK_THREADS) 9818334Speter#define MASK_THREADS 0x40000000 9918334Speter 10018334Speter#define TARGET_POSIX (target_flags & MASK_POSIX) 10118334Speter#define MASK_POSIX 0x20000000 10218334Speter 10318334Speter#define TARGET_SYSTEM_V (target_flags & MASK_SYSTEM_V) 10418334Speter#define MASK_SYSTEM_V 0x10000000 10518334Speter 10618334Speter#undef SUBTARGET_SWITCHES 10718334Speter#define SUBTARGET_SWITCHES \ 10818334Speter {"threads", MASK_THREADS}, \ 10918334Speter {"posix", MASK_POSIX}, \ 11018334Speter {"system-v", MASK_SYSTEM_V}, 11118334Speter 11218334Speter#undef SUBTARGET_OVERRIDE_OPTIONS 11318334Speter#define SUBTARGET_OVERRIDE_OPTIONS \ 11418334Speterdo { \ 11518334Speter if (TARGET_SYSTEM_V && profile_flag) \ 11618334Speter warning ("-msystem-v and -p are incompatible"); \ 11718334Speter if (TARGET_SYSTEM_V && TARGET_THREADS) \ 11818334Speter warning ("-msystem-v and -mthreads are incompatible"); \ 11918334Speter} while (0) 12018334Speter 12118334Speter/* Since init.o et al put all sorts of stuff into the init section, 122117395Skan we can't use the standard init section support in crtbegin.o. */ 12318334Speter 12418334Speter#undef INIT_SECTION_ASM_OP 12518334Speter 12618334Speter#undef EXTRA_SECTIONS 127117395Skan#define EXTRA_SECTIONS in_fini 12818334Speter 12918334Speter#undef EXTRA_SECTION_FUNCTIONS 13018334Speter#define EXTRA_SECTION_FUNCTIONS \ 13118334Speter FINI_SECTION_FUNCTION 13218334Speter 13318334Speter#undef CTORS_SECTION_ASM_OP 13490075Sobrien#define CTORS_SECTION_ASM_OP "\t.section\t.ctors" 13518334Speter#undef DTORS_SECTION_ASM_OP 13690075Sobrien#define DTORS_SECTION_ASM_OP "\t.section\t.dtors" 13718334Speter 13818334Speter#undef DO_GLOBAL_CTORS_BODY 13918334Speter#undef DO_GLOBAL_DTORS_BODY 14018334Speter 141117395Skan/* LynxOS doesn't have mcount. */ 14218334Speter#undef FUNCTION_PROFILER 14318334Speter#define FUNCTION_PROFILER(file, profile_label_no) 144