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

📄 sysv4.h

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 H
📖 第 1 页 / 共 4 页
字号:
    %{shared:-Bshareable %{h*} %{soname*}} \    %{!shared: \      %{!static: \	%{rdynamic: -export-dynamic} \	%{!dynamic-linker: -dynamic-linker /usr/libexec/ld-elf.so.1}} \      %{static:-Bstatic}} \    %{symbolic:-Bsymbolic}"/* GNU/Linux support.  */#ifdef USE_GNULIBC_1#define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } \%{!mnewlib: -lc }"#else#define LIB_LINUX_SPEC "%{mnewlib: --start-group -llinux -lc --end-group } \%{!mnewlib: %{shared:-lc} %{!shared: %{pthread:-lpthread } \%{profile:-lc_p} %{!profile:-lc}}}"#endif#ifdef USE_GNULIBC_1#define	STARTFILE_LINUX_SPEC "\%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \%{mnewlib: ecrti.o%s} %{!mnewlib: crti.o%s} \%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"#else#define	STARTFILE_LINUX_SPEC "\%{!shared: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \%{mnewlib: ecrti.o%s} %{!mnewlib: crti.o%s} \%{static:crtbeginT.o%s} \%{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}"#endif#define	ENDFILE_LINUX_SPEC "%{!shared:crtend.o%s} %{shared:crtendS.o%s} \%{mnewlib: ecrtn.o%s} %{!mnewlib: crtn.o%s}"#define LINK_START_LINUX_SPEC ""#define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \  %{rdynamic:-export-dynamic} \  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"#if !defined(USE_GNULIBC_1) && defined(HAVE_LD_EH_FRAME_HDR)# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "#endif#ifdef USE_GNULIBC_1#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \%{!undef:							  \  %{!ansi:							  \    %{!std=*:-Dunix -D__unix -Dlinux -D__linux}	                  \    %{std=gnu*:-Dunix -D__unix -Dlinux -D__linux}}}		  \-Asystem=unix -Asystem=posix"#else#define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \%{!undef:							  \  %{!ansi:							  \    %{!std=*:-Dunix -D__unix -Dlinux -D__linux}			  \    %{std=gnu*:-Dunix -D__unix -Dlinux -D__linux}}}		  \-Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"#endif/* GNU/Hurd support.  */#define LIB_GNU_SPEC "%{mnewlib: --start-group -lgnu -lc --end-group } \%{!mnewlib: %{shared:-lc} %{!shared: %{pthread:-lpthread } \%{profile:-lc_p} %{!profile:-lc}}}"#define	STARTFILE_GNU_SPEC "\%{!shared: %{!static: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}}} \%{static: %{pg:gcrt0.o%s} %{!pg:%{p:gcrt0.o%s} %{!p:crt0.o%s}}} \%{mnewlib: ecrti.o%s} %{!mnewlib: crti.o%s} \%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"#define	ENDFILE_GNU_SPEC "%{!shared:crtend.o%s} %{shared:crtendS.o%s} \%{mnewlib: ecrtn.o%s} %{!mnewlib: crtn.o%s}"#define LINK_START_GNU_SPEC ""#define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \  %{rdynamic:-export-dynamic} \  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"#define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__	\%{!undef:					                \  %{!ansi: -Dunix -D__unix}}			                \-Asystem=gnu -Asystem=unix -Asystem=posix %{pthread:-D_REENTRANT}"/* NetBSD support.  */#define LIB_NETBSD_SPEC "\%{profile:-lgmon -lc_p} %{!profile:-lc}"#define	STARTFILE_NETBSD_SPEC "\ncrti.o%s crt0.o%s \%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}"#define ENDFILE_NETBSD_SPEC "\%{!shared:crtend.o%s} %{shared:crtendS.o%s} \ncrtn.o%s"#define LINK_START_NETBSD_SPEC "\"#define LINK_OS_NETBSD_SPEC "\%{!shared: %{!static: \  %{rdynamic:-export-dynamic} \  %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}}"#define CPP_OS_NETBSD_SPEC "\-D__powerpc__ -D__NetBSD__ -D__ELF__ -D__KPRINTF_ATTRIBUTE__"/* RTEMS support.  */  #define CPP_OS_RTEMS_SPEC "\%{!mcpu*:  %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\%{mcpu=403:  %{!Dppc*: %{!Dmpc*: -Dppc403}  } } \%{mcpu=505:  %{!Dppc*: %{!Dmpc*: -Dmpc505}  } } \%{mcpu=601:  %{!Dppc*: %{!Dmpc*: -Dppc601}  } } \%{mcpu=602:  %{!Dppc*: %{!Dmpc*: -Dppc602}  } } \%{mcpu=603:  %{!Dppc*: %{!Dmpc*: -Dppc603}  } } \%{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \%{mcpu=604:  %{!Dppc*: %{!Dmpc*: -Dmpc604}  } } \%{mcpu=750:  %{!Dppc*: %{!Dmpc*: -Dmpc750}  } } \%{mcpu=821:  %{!Dppc*: %{!Dmpc*: -Dmpc821}  } } \%{mcpu=860:  %{!Dppc*: %{!Dmpc*: -Dmpc860}  } }" /* VxWorks support.  *//* VxWorks does all the library stuff itself.  */#define LIB_VXWORKS_SPEC ""/* VxWorks provides the functionality of crt0.o and friends itself.  */#define	STARTFILE_VXWORKS_SPEC ""#define	ENDFILE_VXWORKS_SPEC ""/* Because it uses ld -r, vxworks has no start/end files, nor starting   address.  */#define LINK_START_VXWORKS_SPEC ""#define LINK_OS_VXWORKS_SPEC "-r"#define CPP_OS_VXWORKS_SPEC "\-DCPU_FAMILY=PPC \%{!mcpu*: \  %{mpowerpc*: -DCPU=PPC603} \  %{!mno-powerpc: -DCPU=PPC603}} \%{mcpu=powerpc: -DCPU=PPC603} \%{mcpu=401: -DCPU=PPC403} \%{mcpu=403: -DCPU=PPC403} \%{mcpu=405: -DCPU=PPC405} \%{mcpu=601: -DCPU=PPC601} \%{mcpu=602: -DCPU=PPC603} \%{mcpu=603: -DCPU=PPC603} \%{mcpu=603e: -DCPU=PPC603} \%{mcpu=ec603e: -DCPU=PPC603} \%{mcpu=604: -DCPU=PPC604} \%{mcpu=604e: -DCPU=PPC604} \%{mcpu=620: -DCPU=PPC604} \%{mcpu=740: -DCPU=PPC603} \%{mcpu=7450: -DCPU=PPC603} \%{mcpu=750: -DCPU=PPC603} \%{mcpu=801: -DCPU=PPC603} \%{mcpu=821: -DCPU=PPC603} \%{mcpu=823: -DCPU=PPC603} \%{mcpu=860: -DCPU=PPC603}"/* WindISS support.  */#define LIB_WINDISS_SPEC "--start-group -li -lcfp -lwindiss -lram -limpl -limpfp --end-group"#define CPP_OS_WINDISS_SPEC "\-D__rtasim \-D__EABI__ \-D__ppc \%{!msoft-float: -D__hardfp} \"#define STARTFILE_WINDISS_SPEC "crt0.o%s crtbegin.o%s"#define ENDFILE_WINDISS_SPEC "crtend.o%s"#define LINK_START_WINDISS_SPEC ""#define LINK_OS_WINDISS_SPEC ""/* Define any extra SPECS that the compiler needs to generate.  *//* Override rs6000.h definition.  */#undef	SUBTARGET_EXTRA_SPECS#define	SUBTARGET_EXTRA_SPECS						\  { "cpp_sysv",			CPP_SYSV_SPEC },			\  { "crtsavres_default",        CRTSAVRES_DEFAULT_SPEC },              \  { "lib_ads",			LIB_ADS_SPEC },				\  { "lib_yellowknife",		LIB_YELLOWKNIFE_SPEC },			\  { "lib_mvme",			LIB_MVME_SPEC },			\  { "lib_sim",			LIB_SIM_SPEC },				\  { "lib_freebsd",		LIB_FREEBSD_SPEC },			\  { "lib_gnu",			LIB_GNU_SPEC },				\  { "lib_linux",		LIB_LINUX_SPEC },			\  { "lib_netbsd",		LIB_NETBSD_SPEC },			\  { "lib_vxworks",		LIB_VXWORKS_SPEC },			\  { "lib_windiss",              LIB_WINDISS_SPEC },                     \  { "lib_default",		LIB_DEFAULT_SPEC },			\  { "startfile_ads",		STARTFILE_ADS_SPEC },			\  { "startfile_yellowknife",	STARTFILE_YELLOWKNIFE_SPEC },		\  { "startfile_mvme",		STARTFILE_MVME_SPEC },			\  { "startfile_sim",		STARTFILE_SIM_SPEC },			\  { "startfile_freebsd",	STARTFILE_FREEBSD_SPEC },		\  { "startfile_gnu",		STARTFILE_GNU_SPEC },			\  { "startfile_linux",		STARTFILE_LINUX_SPEC },			\  { "startfile_netbsd",		STARTFILE_NETBSD_SPEC },		\  { "startfile_vxworks",	STARTFILE_VXWORKS_SPEC },		\  { "startfile_windiss",        STARTFILE_WINDISS_SPEC },               \  { "startfile_default",	STARTFILE_DEFAULT_SPEC },		\  { "endfile_ads",		ENDFILE_ADS_SPEC },			\  { "endfile_yellowknife",	ENDFILE_YELLOWKNIFE_SPEC },		\  { "endfile_mvme",		ENDFILE_MVME_SPEC },			\  { "endfile_sim",		ENDFILE_SIM_SPEC },			\  { "endfile_freebsd",		ENDFILE_FREEBSD_SPEC },			\  { "endfile_gnu",		ENDFILE_GNU_SPEC },			\  { "endfile_linux",		ENDFILE_LINUX_SPEC },			\  { "endfile_netbsd",		ENDFILE_NETBSD_SPEC },			\  { "endfile_vxworks",		ENDFILE_VXWORKS_SPEC },			\  { "endfile_windiss",          ENDFILE_WINDISS_SPEC },                 \  { "endfile_default",		ENDFILE_DEFAULT_SPEC },			\  { "link_path",		LINK_PATH_SPEC },			\  { "link_shlib",		LINK_SHLIB_SPEC },			\  { "link_target",		LINK_TARGET_SPEC },			\  { "link_start",		LINK_START_SPEC },			\  { "link_start_ads",		LINK_START_ADS_SPEC },			\  { "link_start_yellowknife",	LINK_START_YELLOWKNIFE_SPEC },		\  { "link_start_mvme",		LINK_START_MVME_SPEC },			\  { "link_start_sim",		LINK_START_SIM_SPEC },			\  { "link_start_freebsd",	LINK_START_FREEBSD_SPEC },		\  { "link_start_gnu",		LINK_START_GNU_SPEC },			\  { "link_start_linux",		LINK_START_LINUX_SPEC },		\  { "link_start_netbsd",	LINK_START_NETBSD_SPEC },		\  { "link_start_vxworks",	LINK_START_VXWORKS_SPEC },		\  { "link_start_windiss",	LINK_START_WINDISS_SPEC },		\  { "link_start_default",	LINK_START_DEFAULT_SPEC },		\  { "link_os",			LINK_OS_SPEC },				\  { "link_os_ads",		LINK_OS_ADS_SPEC },			\  { "link_os_yellowknife",	LINK_OS_YELLOWKNIFE_SPEC },		\  { "link_os_mvme",		LINK_OS_MVME_SPEC },			\  { "link_os_sim",		LINK_OS_SIM_SPEC },			\  { "link_os_freebsd",		LINK_OS_FREEBSD_SPEC },			\  { "link_os_linux",		LINK_OS_LINUX_SPEC },			\  { "link_os_gnu",		LINK_OS_GNU_SPEC },			\  { "link_os_netbsd",		LINK_OS_NETBSD_SPEC },			\  { "link_os_vxworks",		LINK_OS_VXWORKS_SPEC },			\  { "link_os_windiss",		LINK_OS_WINDISS_SPEC },			\  { "link_os_default",		LINK_OS_DEFAULT_SPEC },			\  { "cc1_endian_big",		CC1_ENDIAN_BIG_SPEC },			\  { "cc1_endian_little",	CC1_ENDIAN_LITTLE_SPEC },		\  { "cc1_endian_default",	CC1_ENDIAN_DEFAULT_SPEC },		\  { "cpp_os_ads",		CPP_OS_ADS_SPEC },			\  { "cpp_os_yellowknife",	CPP_OS_YELLOWKNIFE_SPEC },		\  { "cpp_os_mvme",		CPP_OS_MVME_SPEC },			\  { "cpp_os_sim",		CPP_OS_SIM_SPEC },			\  { "cpp_os_freebsd",		CPP_OS_FREEBSD_SPEC },			\  { "cpp_os_gnu",		CPP_OS_GNU_SPEC },			\  { "cpp_os_linux",		CPP_OS_LINUX_SPEC },			\  { "cpp_os_netbsd",		CPP_OS_NETBSD_SPEC },			\  { "cpp_os_rtems",		CPP_OS_RTEMS_SPEC },			\  { "cpp_os_vxworks",		CPP_OS_VXWORKS_SPEC },			\  { "cpp_os_windiss",           CPP_OS_WINDISS_SPEC },                  \  { "cpp_os_default",		CPP_OS_DEFAULT_SPEC },/* Define this macro as a C expression for the initializer of an   array of string to tell the driver program which options are   defaults for this target and thus do not need to be handled   specially when using `MULTILIB_OPTIONS'.   Do not define this macro if `MULTILIB_OPTIONS' is not defined in   the target makefile fragment or if none of the options listed in   `MULTILIB_OPTIONS' are set by default.  *Note Target Fragment::.  */#define	MULTILIB_DEFAULTS { "mbig", "mcall-sysv" }/* Define this macro if the code for function profiling should come   before the function prologue.  Normally, the profiling code comes   after.  */#define PROFILE_BEFORE_PROLOGUE 1/* Function name to call to do profiling.  */#define RS6000_MCOUNT "_mcount"/* Define this macro (to a value of 1) if you want to support the   Win32 style pragmas #pragma pack(push,<n>)' and #pragma   pack(pop)'.  The pack(push,<n>) pragma specifies the maximum   alignment (in bytes) of fields within a structure, in much the   same way as the __aligned__' and __packed__' __attribute__'s   do.  A pack value of zero resets the behavior to the default.   Successive invocations of this pragma cause the previous values to   be stacked, so that invocations of #pragma pack(pop)' will return   to the previous value.  */#define HANDLE_PRAGMA_PACK_PUSH_POP 1/* Define library calls for quad FP operations.  These are all part of the   PowerPC 32bit ABI.  */#define ADDTF3_LIBCALL "_q_add"#define DIVTF3_LIBCALL "_q_div"#define EXTENDDFTF2_LIBCALL "_q_dtoq"#define EQTF2_LIBCALL "_q_feq"#define GETF2_LIBCALL "_q_fge"#define GTTF2_LIBCALL "_q_fgt"#define LETF2_LIBCALL "_q_fle"#define LTTF2_LIBCALL "_q_flt"#define NETF2_LIBCALL "_q_fne"#define FLOATSITF2_LIBCALL "_q_itoq"#define MULTF3_LIBCALL "_q_mul"#define NEGTF2_LIBCALL "_q_neg"#define TRUNCTFDF2_LIBCALL "_q_qtod"#define FIX_TRUNCTFSI2_LIBCALL "_q_qtoi"#define TRUNCTFSF2_LIBCALL "_q_qtos"#define FIXUNS_TRUNCTFSI2_LIBCALL "_q_qtou"#define SQRTTF_LIBCALL "_q_sqrt"#define EXTENDSFTF2_LIBCALL "_q_stoq"#define SUBTF3_LIBCALL "_q_sub"#define FLOATUNSSITF2_LIBCALL "_q_utoq"#define INIT_TARGET_OPTABS						\  do {									\    if (TARGET_HARD_FLOAT)						\      {									\	add_optab->handlers[(int) TFmode].libfunc			\	  = init_one_libfunc (ADDTF3_LIBCALL);				\	sub_optab->handlers[(int) TFmode].libfunc			\	  = init_one_libfunc (SUBTF3_LIBCALL);				\	neg_optab->handlers[(int) TFmode].libfunc			\	  = init_one_libfunc (NEGTF2_LIBCALL);				\	smul_optab->handlers[(int) TFmode].libfunc			\	  = init_one_libfunc (MULTF3_LIBCALL);				\	sdiv_optab->handlers[(int) TFmode].libfunc			\	  = init_one_libfunc (DIVTF3_LIBCALL);				\	eqtf2_libfunc = init_one_libfunc (EQTF2_LIBCALL);		\	netf2_libfunc = init_one_libfunc (NETF2_LIBCALL);		\	gttf2_libfunc = init_one_libfunc (GTTF2_LIBCALL);		\	getf2_libfunc = init_one_libfunc (GETF2_LIBCALL);		\	lttf2_libfunc = init_one_libfunc (LTTF2_LIBCALL);		\	letf2_libfunc = init_one_libfunc (LETF2_LIBCALL);		\	trunctfsf2_libfunc = init_one_libfunc (TRUNCTFSF2_LIBCALL);	\	trunctfdf2_libfunc = init_one_libfunc (TRUNCTFDF2_LIBCALL);	\	extendsftf2_libfunc = init_one_libfunc (EXTENDSFTF2_LIBCALL);	\	extenddftf2_libfunc = init_one_libfunc (EXTENDDFTF2_LIBCALL);	\	floatsitf_libfunc = init_one_libfunc (FLOATSITF2_LIBCALL);	\	fixtfsi_libfunc = init_one_libfunc (FIX_TRUNCTFSI2_LIBCALL);	\	fixunstfsi_libfunc						\	  = init_one_libfunc (FIXUNS_TRUNCTFSI2_LIBCALL);		\	if (TARGET_PPC_GPOPT || TARGET_POWER2) 				\	  sqrt_optab->handlers[(int) TFmode].libfunc			\	    = init_one_libfunc (SQRTTF_LIBCALL);			\      }									\  } while (0)/* Select a format to encode pointers in exception handling data.  CODE   is 0 for data, 1 for code labels, 2 for function pointers.  GLOBAL is   true if the symbol may be affected by dynamic relocations.  */#define ASM_PREFERRED_EH_DATA_FORMAT(CODE,GLOBAL)			     \  ((flag_pic || TARGET_RELOCATABLE)					     \   ? (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) \   : DW_EH_PE_absptr)#define TARGET_ASM_EXCEPTION_SECTION readonly_data_section#define DOUBLE_INT_ASM_OP "\t.quad\t"/* Generate entries in .fixup for relocatable addresses.  */#define RELOCATABLE_NEEDS_FIXUP

⌨️ 快捷键说明

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