📄 config.h
字号:
#define MP_MINCORE_SUPPORT 0#endif /* SYSTEM */#endif /* HAVE_CONFIG_H && HAVE_MINCORE */#endif /* MP_MINCORE_SUPPORT *//* Indicates if the system supports watch areas. If not, then the OFLOWWATCH * option will have no effect. */#ifndef MP_WATCH_SUPPORT#if SYSTEM == SYSTEM_IRIX || SYSTEM == SYSTEM_SOLARIS#define MP_WATCH_SUPPORT 1#else /* SYSTEM */#define MP_WATCH_SUPPORT 0#endif /* SYSTEM */#endif /* MP_WATCH_SUPPORT *//* Indicates if the library is being built with thread-safe support. This is * normally set in the makefile. */#ifndef MP_THREADS_SUPPORT#define MP_THREADS_SUPPORT 0#endif /* MP_THREADS_SUPPORT *//* The system-specific preprocessor macro that needs to be defined in order to * compile thread-safe code. */#if MP_THREADS_SUPPORT#if TARGET == TARGET_UNIX#if SYSTEM == SYSTEM_AIX#ifndef _REENTRANT#define _REENTRANT 1#endif /* _REENTRANT */#ifndef _THREAD_SAFE#define _THREAD_SAFE 1#endif /* _THREAD_SAFE */#elif SYSTEM == SYSTEM_DGUX#ifndef _POSIX4A_DRAFT6_SOURCE#define _POSIX4A_DRAFT6_SOURCE 1#endif /* _POSIX4A_DRAFT6_SOURCE */#elif SYSTEM == SYSTEM_DYNIX#ifndef _SEQUENT_THREADS#define _SEQUENT_THREADS 1#endif /* _SEQUENT_THREADS */#elif SYSTEM == SYSTEM_IRIX#ifndef _SGI_REENTRANT_FUNCTIONS#define _SGI_REENTRANT_FUNCTIONS 1#endif /* _SGI_REENTRANT_FUNCTIONS */#elif SYSTEM == SYSTEM_LYNXOS#ifndef _MULTITHREADED#define _MULTITHREADED 1#endif /* _MULTITHREADED */#ifndef __POSIX4_D9__#define __POSIX4_D9__ 1#endif /* __POSIX4_D9__ */#else /* SYSTEM */#ifndef _REENTRANT#define _REENTRANT 1#endif /* _REENTRANT */#endif /* SYSTEM */#elif TARGET == TARGET_WINDOWS#ifndef _MT#define _MT 1#endif /* _MT */#endif /* TARGET */#endif /* MP_THREADS_SUPPORT *//* Indicates if the system supports obtaining more information from within * signal handlers. If not, then the illegal memory access signal handler will * not be able to determine where the faulty address was. */#ifndef MP_SIGINFO_SUPPORT#if SYSTEM == SYSTEM_DGUX || SYSTEM == SYSTEM_DRSNX || \ SYSTEM == SYSTEM_DYNIX || SYSTEM == SYSTEM_HPUX || \ SYSTEM == SYSTEM_SINIX || SYSTEM == SYSTEM_SOLARIS || \ SYSTEM == SYSTEM_TRU64 || SYSTEM == SYSTEM_UNIXWARE#define MP_SIGINFO_SUPPORT 1#else /* SYSTEM */#define MP_SIGINFO_SUPPORT 0#endif /* SYSTEM */#endif /* MP_SIGINFO_SUPPORT *//* Indicates if the system supports the /proc filesystem. If this is the case * then it may be possible to obtain more information about the running process * as well as controlling certain aspects of it. */#ifndef MP_PROCFS_SUPPORT#if SYSTEM == SYSTEM_DRSNX || SYSTEM == SYSTEM_FREEBSD || \ SYSTEM == SYSTEM_IRIX || SYSTEM == SYSTEM_LINUX || \ SYSTEM == SYSTEM_NETBSD || SYSTEM == SYSTEM_OPENBSD || \ SYSTEM == SYSTEM_SOLARIS || SYSTEM == SYSTEM_TRU64 || \ SYSTEM == SYSTEM_UNIXWARE#define MP_PROCFS_SUPPORT 1#else /* SYSTEM */#define MP_PROCFS_SUPPORT 0#endif /* SYSTEM */#endif /* MP_PROCFS_SUPPORT *//* The full path to the directory representing the mount point of the /proc * filesystem. This isn't fixed on a particular system, but we have to assume * that it's somewhere by default. */#if MP_PROCFS_SUPPORT#ifndef MP_PROCFS_DIRNAME#define MP_PROCFS_DIRNAME "/proc"#endif /* MP_PROCFS_DIRNAME */#endif /* MP_PROCFS_SUPPORT *//* The filename of the command line file within /proc that allows a process to * examine the arguments it was invoked with. */#if MP_PROCFS_SUPPORT#ifndef MP_PROCFS_CMDNAME#if SYSTEM == SYSTEM_FREEBSD || SYSTEM == SYSTEM_LINUX || \ SYSTEM == SYSTEM_NETBSD || SYSTEM == SYSTEM_OPENBSD#define MP_PROCFS_CMDNAME MP_PROCFS_DIRNAME "/%lu/cmdline"#endif /* SYSTEM */#endif /* MP_PROCFS_CMDNAME */#endif /* MP_PROCFS_SUPPORT *//* The filename of the executable file within /proc that allows a process to * examine the command it was invoked with. */#if MP_PROCFS_SUPPORT#ifndef MP_PROCFS_EXENAME#if SYSTEM == SYSTEM_FREEBSD || SYSTEM == SYSTEM_NETBSD || \ SYSTEM == SYSTEM_OPENBSD#define MP_PROCFS_EXENAME MP_PROCFS_DIRNAME "/%lu/file"#elif SYSTEM == SYSTEM_LINUX#define MP_PROCFS_EXENAME MP_PROCFS_DIRNAME "/%lu/exe"#elif SYSTEM == SYSTEM_SOLARIS || SYSTEM == SYSTEM_UNIXWARE#define MP_PROCFS_EXENAME MP_PROCFS_DIRNAME "/%lu/object/a.out"#endif /* SYSTEM */#endif /* MP_PROCFS_EXENAME */#endif /* MP_PROCFS_SUPPORT *//* The filename of the control file within /proc that allows a process to * manipulate itself by writing commands to it. */#if MP_PROCFS_SUPPORT && MP_WATCH_SUPPORT#ifndef MP_PROCFS_CTLNAME#if SYSTEM == SYSTEM_IRIX#define MP_PROCFS_CTLNAME MP_PROCFS_DIRNAME "/%05lu"#else /* SYSTEM */#define MP_PROCFS_CTLNAME MP_PROCFS_DIRNAME "/%lu/ctl"#endif /* SYSTEM */#endif /* MP_PROCFS_CTLNAME */#endif /* MP_PROCFS_SUPPORT && MP_WATCH_SUPPORT *//* Indicates if the compiler supports the __builtin_frame_address() and * __builtin_return_address() macros, and if they should be used instead of * traversing the call stack directly. Note that this method only allows a * finite number of call stack traversals per function. */#ifndef MP_BUILTINSTACK_SUPPORT#if TARGET == TARGET_AMIGA && defined(__GNUC__)#define MP_BUILTINSTACK_SUPPORT 1#else /* TARGET && __GNUC__ */#define MP_BUILTINSTACK_SUPPORT 0#endif /* TARGET && __GNUC__ */#endif /* MP_BUILTINSTACK_SUPPORT *//* The maximum number of call stack traversals per function if builtin * frame address and return address support is being used. This number must * be supported by the required number of macro functions in stack.c. */#if MP_BUILTINSTACK_SUPPORT#ifndef MP_MAXSTACK#if TARGET == TARGET_AMIGA && defined(__GNUC__)#define MP_MAXSTACK 3#else /* TARGET && __GNUC__ */#define MP_MAXSTACK 8#endif /* TARGET && __GNUC__ */#endif /* MP_MAXSTACK */#endif /* MP_BUILTINSTACK_SUPPORT *//* Indicates if the operating system provides support routines for traversing * call stacks in an external library. This is currently only available for * HP/UX, IRIX, Tru64 and Windows, but the IRIX unwind() library routine calls * malloc() and free() so the non-library method of call stack traversal is * used instead as it is much faster. Note that MP_BUILTINSTACK_SUPPORT takes * precedence. */#ifndef MP_LIBRARYSTACK_SUPPORT#if !MP_BUILTINSTACK_SUPPORT#if (TARGET == TARGET_UNIX && (SYSTEM == SYSTEM_HPUX || \ SYSTEM == SYSTEM_TRU64)) || (TARGET == TARGET_WINDOWS && \ !defined(__GNUC__))#define MP_LIBRARYSTACK_SUPPORT 1#else /* TARGET && SYSTEM */#define MP_LIBRARYSTACK_SUPPORT 0#endif /* TARGET && SYSTEM */#else /* MP_BUILTINSTACK_SUPPORT */#define MP_LIBRARYSTACK_SUPPORT 0#endif /* MP_BUILTINSTACK_SUPPORT */#endif /* MP_LIBRARYSTACK_SUPPORT *//* Indicates if support for full stack tracebacks is available. This * information can then be used to decide if we should compare two call stacks * for the purpose of determining when memory allocations made by the alloca() * family of functions go out of scope. Otherwise we have to use a less * accurate system which takes the addresses of local variables. */#ifndef MP_FULLSTACK#if MP_BUILTINSTACK_SUPPORT#define MP_FULLSTACK 0#elif MP_LIBRARYSTACK_SUPPORT || (TARGET == TARGET_UNIX && \ (ARCH == ARCH_IX86 || ARCH == ARCH_M68K || ARCH == ARCH_M88K || \ ARCH == ARCH_MIPS || ARCH == ARCH_POWER || ARCH == ARCH_POWERPC || \ ARCH == ARCH_SPARC)) || ((TARGET == TARGET_WINDOWS || \ TARGET == TARGET_NETWARE) && ARCH == ARCH_IX86)#define MP_FULLSTACK 1#else /* MP_BUILTINSTACK_SUPPORT && MP_LIBRARYSTACK_SUPPORT && ... */#define MP_FULLSTACK 0#endif /* MP_BUILTINSTACK_SUPPORT && MP_LIBRARYSTACK_SUPPORT && ... */#endif /* MP_FULLSTACK *//* Indicates if the system dynamic linker supports preloading a set of shared * libraries specified in an environment variable. */#ifndef MP_PRELOAD_SUPPORT#if SYSTEM == SYSTEM_DGUX || SYSTEM == SYSTEM_DYNIX || \ SYSTEM == SYSTEM_FREEBSD || SYSTEM == SYSTEM_IRIX || \ SYSTEM == SYSTEM_LINUX || SYSTEM == SYSTEM_NETBSD || \ SYSTEM == SYSTEM_OPENBSD || SYSTEM == SYSTEM_SOLARIS || \ SYSTEM == SYSTEM_TRU64#define MP_PRELOAD_SUPPORT 1#else /* SYSTEM */#define MP_PRELOAD_SUPPORT 0#endif /* SYSTEM */#endif /* MP_PRELOAD_SUPPORT *//* The name of the environment variable which is used to specify a list of * shared libraries to preload, and the string which is used to delimit the * name of every library specified in that environment variable. */#if MP_PRELOAD_SUPPORT#ifndef MP_PRELOAD_NAME#if SYSTEM == SYSTEM_IRIX || SYSTEM == SYSTEM_TRU64#define MP_PRELOAD_NAME "_RLD_LIST"#else /* SYSTEM */#define MP_PRELOAD_NAME "LD_PRELOAD"#endif /* SYSTEM */#endif /* MP_PRELOAD_NAME */#ifndef MP_PRELOAD_SEP#if SYSTEM == SYSTEM_IRIX || SYSTEM == SYSTEM_TRU64#define MP_PRELOAD_SEP ":"#else /* SYSTEM */#define MP_PRELOAD_SEP " "#endif /* SYSTEM */#endif /* MP_PRELOAD_SEP */#endif /* MP_PRELOAD_SUPPORT *//* The macro function which will be used to calculate the filenames for each * of the shared libraries that must be preloaded. */#if MP_PRELOAD_SUPPORT#ifndef MP_LIBNAME#if SYSTEM == SYSTEM_HPUX#define MP_LIBNAME(l) "lib" #l ".sl"#else /* SYSTEM */#define MP_LIBNAME(l) "lib" #l ".so"#endif /* SYSTEM */#endif /* MP_LIBNAME */#endif /* MP_PRELOAD_SUPPORT *//* The filenames of all the different categories of libraries that must be * included in the lists of shared libraries to preload. */#if MP_PRELOAD_SUPPORT#ifndef MP_MPATROL_LIBS#define MP_MPATROL_LIBS MP_LIBNAME(mpatrol)#endif /* MP_MPATROL_LIBS */#ifndef MP_MPATROLMT_LIBS#define MP_MPATROLMT_LIBS MP_LIBNAME(mpatrolmt)#endif /* MP_MPATROLMT_LIBS */#ifndef MP_SYMBOL_LIBS#if FORMAT == FORMAT_COFF || FORMAT == FORMAT_XCOFF#define MP_SYMBOL_LIBS , MP_LIBNAME(ld)#elif FORMAT == FORMAT_ELF32 || FORMAT == FORMAT_ELF64#define MP_SYMBOL_LIBS , MP_LIBNAME(elf)#elif FORMAT == FORMAT_BFD#define MP_SYMBOL_LIBS , MP_LIBNAME(bfd), MP_LIBNAME(iberty)#elif FORMAT == FORMAT_PE#define MP_SYMBOL_LIBS , MP_LIBNAME(imagehlp)#else /* FORMAT */#define MP_SYMBOL_LIBS#endif /* FORMAT */#endif /* MP_SYMBOL_LIBS */#ifndef MP_THREADS_LIBS#if SYSTEM == SYSTEM_AIX#define MP_THREADS_LIBS , MP_LIBNAME(pthreads)#elif SYSTEM == SYSTEM_DGUX#define MP_THREADS_LIBS , MP_LIBNAME(thread)#elif SYSTEM == SYSTEM_LINUX || SYSTEM == SYSTEM_SOLARIS || \ SYSTEM == SYSTEM_TRU64 || SYSTEM == SYSTEM_UNIXWARE#define MP_THREADS_LIBS , MP_LIBNAME(pthread)#else /* SYSTEM */#define MP_THREADS_LIBS#endif /* SYSTEM */#endif /* MP_THREADS_LIBS */#ifndef MP_SYSTEM_LIBS#if SYSTEM == SYSTEM_HPUX#if MP_LIBRARYSTACK_SUPPORT#define MP_SYSTEM_LIBS , MP_LIBNAME(cl)#else /* MP_LIBRARYSTACK_SUPPORT */#define MP_SYSTEM_LIBS#endif /* MP_LIBRARYSTACK_SUPPORT */#elif SYSTEM == SYSTEM_IRIX || SYSTEM == SYSTEM_TRU64#if MP_LIBRARYSTACK_SUPPORT#define MP_SYSTEM_LIBS , MP_LIBNAME(exc), "DEFAULT"#else /* MP_LIBRARYSTACK_SUPPORT */#define MP_SYSTEM_LIBS , "DEFAULT"#endif /* MP_LIBRARYSTACK_SUPPORT */#else /* SYSTEM */#define MP_SYSTEM_LIBS#endif /* SYSTEM */#endif /* MP_SYSTEM_LIBS */#endif /* MP_PRELOAD_SUPPORT *//* The final lists of normal and thread-safe shared libraries to preload. * These must all exist in the shared library path used by the dynamic linker, * otherwise full paths to the libraries must be explicitly given. */#if MP_PRELOAD_SUPPORT#ifndef MP_PRELOAD_LIBS#define MP_PRELOAD_LIBS MP_MPATROL_LIBS MP_SYMBOL_LIBS MP_SYSTEM_LIBS
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -