⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gcconfig.h

📁 this gcc-g++-3.3.1.tar.gz is a source file of gcc, you can learn more about gcc through this codes f
💻 H
📖 第 1 页 / 共 4 页
字号:
/*  * Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers * Copyright (c) 1991-1994 by Xerox Corporation.  All rights reserved. * Copyright (c) 1996 by Silicon Graphics.  All rights reserved. * Copyright (c) 2000 by Hewlett-Packard Company.  All rights reserved. * * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK. * * Permission is hereby granted to use or copy this program * for any purpose,  provided the above notices are retained on all copies. * Permission to modify the code and to distribute modified code is granted, * provided the above notices are retained, and a notice that the code was * modified is included with the above copyright notice. */ #ifndef GCCONFIG_H# define GCCONFIG_H/* Machine dependent parameters.  Some tuning parameters can be found	*//* near the top of gc_private.h.					*//* Machine specific parts contributed by various people.  See README file. *//* First a unified test for Linux: */# if defined(linux) || defined(__linux__)#    define LINUX# endif/* And one for NetBSD: */# if defined(__NetBSD__)#    define NETBSD# endif/* And one for OpenBSD: */# if defined(__OpenBSD__)#    define OPENBSD# endif/* And one for FreeBSD: */# if defined(__FreeBSD__)#    define FREEBSD# endif/* Determine the machine type: */# if defined(__arm__) || defined(__thumb__)#    define ARM32#    if !defined(LINUX)#      define NOSYS#      define mach_type_known#    endif# endif# if defined(sun) && defined(mc68000)#    define M68K#    define SUNOS4#    define mach_type_known# endif# if defined(hp9000s300)#    define M68K#    define HP#    define mach_type_known# endif# if defined(OPENBSD) && defined(m68k)#    define M68K#    define mach_type_known# endif# if defined(OPENBSD) && defined(__sparc__)#    define SPARC#    define mach_type_known# endif# if defined(NETBSD) && defined(m68k)#    define M68K#    define mach_type_known# endif# if defined(NETBSD) && defined(__powerpc__)#    define POWERPC#    define mach_type_known# endif# if defined(NETBSD) && defined(__arm32__)#    define ARM32#    define mach_type_known# endif# if defined(vax)#    define VAX#    ifdef ultrix#	define ULTRIX#    else#	define BSD#    endif#    define mach_type_known# endif# if defined(mips) || defined(__mips) || defined(_mips)#    define MIPS#    if defined(nec_ews) || defined(_nec_ews)#      define EWS4800#    endif#    if !defined(LINUX) && !defined(EWS4800) && !defined(NETBSD)#      if defined(ultrix) || defined(__ultrix)#	 define ULTRIX#      else#	 if defined(_SYSTYPE_SVR4) || defined(SYSTYPE_SVR4) \	    || defined(__SYSTYPE_SVR4__)#	   define IRIX5   /* or IRIX 6.X */#	 else#	   define RISCOS  /* or IRIX 4.X */#	 endif#      endif#    endif /* !LINUX */#    define mach_type_known# endif# if defined(sequent) && (defined(i386) || defined(__i386__))#    define I386#    define SEQUENT#    define mach_type_known# endif# if defined(sun) && (defined(i386) || defined(__i386__))#    define I386#    define SUNOS5#    define mach_type_known# endif# if (defined(__OS2__) || defined(__EMX__)) && defined(__32BIT__)#    define I386#    define OS2#    define mach_type_known# endif# if defined(ibm032)#   define RT#   define mach_type_known# endif# if defined(sun) && (defined(sparc) || defined(__sparc))#   define SPARC    /* Test for SunOS 5.x */#     include <errno.h>#     ifdef ECHRNG#       define SUNOS5#     else#	define SUNOS4#     endif#   define mach_type_known# endif# if defined(sparc) && defined(unix) && !defined(sun) && !defined(linux) \     && !defined(__OpenBSD__) && !(__NetBSD__)#   define SPARC#   define DRSNX#   define mach_type_known# endif# if defined(_IBMR2)#   define RS6000#   define mach_type_known# endif# if defined(__NetBSD__) && defined(__sparc__)#   define SPARC#   define mach_type_known# endif# if defined(_M_XENIX) && defined(_M_SYSV) && defined(_M_I386)	/* The above test may need refinement	*/#   define I386#   if defined(_SCO_ELF)#     define SCO_ELF#   else#     define SCO#   endif#   define mach_type_known# endif# if defined(_AUX_SOURCE)#   define M68K#   define SYSV#   define mach_type_known# endif# if defined(_PA_RISC1_0) || defined(_PA_RISC1_1) || defined(_PA_RISC2_0) \     || defined(hppa) || defined(__hppa__)#   define HP_PA#   ifndef LINUX#     define HPUX#   endif#   define mach_type_known# endif# if defined(__ia64) && defined(_HPUX_SOURCE)#   define IA64#   define HPUX#   define mach_type_known# endif# if defined(__BEOS__) && defined(_X86_)#    define I386#    define BEOS#    define mach_type_known# endif# if defined(LINUX) && (defined(i386) || defined(__i386__))#    define I386#    define mach_type_known# endif# if defined(LINUX) && defined(__x86_64__)#    define X86_64#    define mach_type_known# endif# if defined(LINUX) && (defined(__ia64__) || defined(__ia64))#    define IA64#    define mach_type_known# endif# if defined(LINUX) && (defined(powerpc) || defined(__powerpc__))#    define POWERPC#    define mach_type_known# endif# if defined(LINUX) && defined(__mc68000__)#    define M68K#    define mach_type_known# endif# if defined(LINUX) && (defined(sparc) || defined(__sparc__))#    define SPARC#    define mach_type_known# endif# if defined(LINUX) && defined(__arm__)#    define ARM32#    define mach_type_known# endif# if defined(LINUX) && defined(__sh__)#    define SH#    define mach_type_known# endif# if defined(__alpha) || defined(__alpha__)#   define ALPHA#   if !defined(LINUX) && !defined(NETBSD) && !defined(OPENBSD) && !defined(FREEBSD)#     define OSF1	/* a.k.a Digital Unix */#   endif#   define mach_type_known# endif# if defined(_AMIGA) && !defined(AMIGA)#   define AMIGA# endif# ifdef AMIGA #   define M68K#   define mach_type_known# endif# if defined(THINK_C) || defined(__MWERKS__) && !defined(__powerc)#   define M68K#   define MACOS#   define mach_type_known# endif# if defined(__MWERKS__) && defined(__powerc)#   define POWERPC#   define MACOS#   define mach_type_known# endif# if defined(macosx) || \     defined(__APPLE__) && defined(__MACH__) && defined(__ppc__)#    define MACOSX#    define POWERPC#    define mach_type_known# endif# if defined(__APPLE__) && defined(__MACH__) && defined(__i386__)#    define MACOSX#    define I386     --> Not really supported, but at least we recognize it.# endif# if defined(NeXT) && defined(mc68000)#   define M68K#   define NEXT#   define mach_type_known# endif# if defined(NeXT) && (defined(i386) || defined(__i386__))#   define I386#   define NEXT#   define mach_type_known# endif# if defined(__OpenBSD__) && (defined(i386) || defined(__i386__))#   define I386#   define OPENBSD#   define mach_type_known# endif# if defined(FREEBSD) && (defined(i386) || defined(__i386__))#   define I386#   define mach_type_known# endif# if defined(__NetBSD__) && (defined(i386) || defined(__i386__))#   define I386#   define mach_type_known# endif# if defined(bsdi) && (defined(i386) || defined(__i386__))#    define I386#    define BSDI#    define mach_type_known# endif# if !defined(mach_type_known) && defined(__386BSD__)#   define I386#   define THREE86BSD#   define mach_type_known# endif# if defined(_CX_UX) && defined(_M88K)#   define M88K#   define CX_UX#   define mach_type_known# endif# if defined(DGUX)#   define M88K    /* DGUX defined */#   define mach_type_known# endif# if defined(_WIN32_WCE)    /* SH3, SH4, MIPS already defined for corresponding architectures */#   if defined(SH3) || defined(SH4)#     define SH#   endif#   if defined(x86)#     define I386#   endif#   if defined(ARM)#     define ARM32#   endif#   define MSWINCE#   define mach_type_known# else#   if (defined(_MSDOS) || defined(_MSC_VER)) && (_M_IX86 >= 300) \        || defined(_WIN32) && !defined(__CYGWIN32__) && !defined(__CYGWIN__)#     define I386#     define MSWIN32	/* or Win32s */#     define mach_type_known#   endif# endif# if defined(__DJGPP__)#   define I386#   ifndef DJGPP#     define DJGPP  /* MSDOS running the DJGPP port of GCC */#   endif#   define mach_type_known# endif# if defined(__CYGWIN32__) || defined(__CYGWIN__)#   define I386#   define CYGWIN32#   define mach_type_known# endif# if defined(__MINGW32__)#   define I386#   define MSWIN32#   define mach_type_known# endif# if defined(__BORLANDC__)#   define I386#   define MSWIN32#   define mach_type_known# endif# if defined(_UTS) && !defined(mach_type_known)#   define S370#   define UTS4#   define mach_type_known# endif# if defined(__pj__)#   define PJ#   define mach_type_known# endif# if defined(__embedded__) && defined(PPC)#   define POWERPC#   define NOSYS#   define mach_type_known# endif/* Ivan Demakov */# if defined(__WATCOMC__) && defined(__386__)#   define I386#   if !defined(OS2) && !defined(MSWIN32) && !defined(DOS4GW)#     if defined(__OS2__)#       define OS2#     else#       if defined(__WINDOWS_386__) || defined(__NT__)#         define MSWIN32#       else#         define DOS4GW#       endif#     endif#   endif#   define mach_type_known# endif# if defined(__s390__) && defined(LINUX)#    define S390#    define mach_type_known# endif# if defined(__GNU__)#   if defined(__i386__)/* The Debian Hurd running on generic PC */  #     define  HURD#     define  I386#     define  mach_type_known#    endif # endif/* Feel free to add more clauses here *//* Or manually define the machine type here.  A machine type is 	*//* characterized by the architecture.  Some				*//* machine types are further subdivided by OS.				*//* the macros ULTRIX, RISCOS, and BSD to distinguish.			*//* Note that SGI IRIX is treated identically to RISCOS.			*//* SYSV on an M68K actually means A/UX.					*//* The distinction in these cases is usually the stack starting address */# ifndef mach_type_known	--> unknown machine type# endif		    /* Mapping is: M68K       ==> Motorola 680X0	*/		    /*		   (SUNOS4,HP,NEXT, and SYSV (A/UX),	*/		    /*		   MACOS and AMIGA variants)		*/		    /*             I386       ==> Intel 386	 	*/		    /*		    (SEQUENT, OS2, SCO, LINUX, NETBSD,	*/		    /*		     FREEBSD, THREE86BSD, MSWIN32,	*/		    /* 		     BSDI,SUNOS5, NEXT, other variants)	*/                    /*             NS32K      ==> Encore Multimax 	*/                    /*             MIPS       ==> R2000 or R3000	*/                    /*			(RISCOS, ULTRIX variants)	*/                    /*		   VAX	      ==> DEC VAX		*/                    /*			(BSD, ULTRIX variants)		*/                    /*		   RS6000     ==> IBM RS/6000 AIX3.X	*/                    /*		   RT	      ==> IBM PC/RT		*/                    /*		   HP_PA      ==> HP9000/700 & /800	*/                    /*				  HP/UX, LINUX		*/		    /*		   SPARC      ==> SPARC	v7/v8/v9	*/		    /*			(SUNOS4, SUNOS5, LINUX,		*/		    /*			 DRSNX variants)		*/		    /* 		   ALPHA      ==> DEC Alpha 		*/		    /*			(OSF1 and LINUX variants)	*/		    /* 		   M88K       ==> Motorola 88XX0        */		    /* 		        (CX_UX and DGUX)		*/		    /* 		   S370	      ==> 370-like machine	*/		    /* 			running Amdahl UTS4		*/		    /*		   S390       ==> 390-like machine      */		    /*			running LINUX			*/		    /* 		   ARM32      ==> Intel StrongARM	*/		    /* 		   IA64	      ==> Intel IPF		*/		    /*				  (e.g. Itanium)	*/		    /*			(LINUX and HPUX)	        */		    /* 		   IA64_32    ==> IA64 w/32 bit ABI	*/		    /* 			(HPUX)				*/		    /*		   SH	      ==> Hitachi SuperH	*/		    /* 			(LINUX & MSWINCE)		*/		    /* 		   X86_64     ==> AMD x86-64		*//* * For each architecture and OS, the following need to be defined: * * CPP_WORD_SZ is a simple integer constant representing the word size. * in bits.  We assume byte addressibility, where a byte has 8 bits. * We also assume CPP_WORD_SZ is either 32 or 64. * (We care about the length of pointers, not hardware * bus widths.  Thus a 64 bit processor with a C compiler that uses * 32 bit pointers should use CPP_WORD_SZ of 32, not 64. Default is 32.) * * MACH_TYPE is a string representation of the machine type. * OS_TYPE is analogous for the OS. * * ALIGNMENT is the largest N, such that * all pointer are guaranteed to be aligned on N byte boundaries. * defining it to be 1 will always work, but perform poorly. * * DATASTART is the beginning of the data segment. * On UNIX systems, the collector will scan the area between DATASTART * and DATAEND for root pointers. * * DATAEND, if not `end' where `end' is defined as ``extern int end[];''. * RTH suggests gaining access to linker script synth'd values with * this idiom instead of `&end' where `end' is defined as ``extern int end;'' . * Otherwise, ``GCC will assume these are in .sdata/.sbss'' and it will, e.g., * cause failures on alpha*-*-* with ``-msmall-data or -fpic'' or mips-*-* * without any special options. * * ALIGN_DOUBLE of GC_malloc should return blocks aligned to twice * the pointer size. * * STACKBOTTOM is the cool end of the stack, which is usually the * highest address in the stack. * Under PCR or OS/2, we have other ways of finding thread stacks. * For each machine, the following should: * 1) define STACK_GROWS_UP if the stack grows toward higher addresses, and * 2) define exactly one of *	STACKBOTTOM (should be defined to be an expression) *	HEURISTIC1 *	HEURISTIC2 * If either of the last two macros are defined, then STACKBOTTOM is computed * during collector startup using one of the following two heuristics: * HEURISTIC1:  Take an address inside GC_init's frame, and round it up to *		the next multiple of STACK_GRAN. * HEURISTIC2:  Take an address inside GC_init's frame, increment it repeatedly *		in small steps (decrement if STACK_GROWS_UP), and read the value *		at each location.  Remember the value when the first

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -