[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [LIBGCC/LIBGCOV PATCH v2] Port libgcov library to add PGO (Profile-Guided Optimization) support to Unikraft.
On Mon, Nov 23, 2020 at 12:58 AM Alice Suiu <alicesuiu17@xxxxxxxxx> wrote: > În sâm., 21 nov. 2020 la 17:57, Razvan Deaconescu > <razvan.deaconescu@xxxxxxxxx> a scris: >> Hi, Alice. >> >> I tested this, together with the other patches for PGO and it works. >> >> Are all header files generated? I saw the gcov-io.h file in the gcc >> sources, not gcov-iov.h. > > > Hi Razvan, > > Thanks a lot for the review. > > Yeah, all the header files are generated including the gcov-iov.h file. > >> I recommend you add a README.md file that states the order in which >> libraries are included in the Makefile, as this matters. Felipe did >> something similar for libicu: >> --- >> icu for Unikraft >> =========== >> >> This is the port of icu as a Unikraft external library; it depends on >> the following libraries that need to be added to `Makefile` in this >> order: >> >> * `pthreads`, e.g. `pthread-embedded` >> * CXX standard library, e.g. `libunwind`, `compiler-rt`, `libcxxabi`, >> `libcxx` >> * `libc`, e.g. `newlib` >> --- > > I will add a README.md file and check out your comments. Please also add, as part of the README.md, the way header files are generated. Razvan >> On Sun, May 24, 2020 at 6:10 PM Alice Suiu <alicesuiu17@xxxxxxxxx> wrote: >> > This port also adds generated headers which are located in include/ >> > directory. >> > These headers were generated using configuration scripts from GCC sources. >> > Several libraries (newlib, pthread-embedded, compiler-rt, libunwind, >> > libcxx and libcxxabi) >> > were needed in order to configure libgcov in Unikraft. >> > >> > Signed-off-by: Alice Suiu <alicesuiu17@xxxxxxxxx> >> > --- >> > Config.uk | 11 + >> > Makefile.uk | 22 + >> > libgcov/include/auto-host.h | 2419 ++++++++++++++++++++++++++++++++ >> > libgcov/include/auto-target.h | 80 ++ >> > libgcov/include/gcov-iov.h | 4 + >> > libgcov/include/gthr-default.h | 889 ++++++++++++ >> > libgcov/include/libgcc_tm.h | 6 + >> > libgcov/include/tconfig.h | 10 + >> > libgcov/include/tm.h | 52 + >> > 9 files changed, 3493 insertions(+) >> > create mode 100644 libgcov/include/auto-host.h >> > create mode 100644 libgcov/include/auto-target.h >> > create mode 100644 libgcov/include/gcov-iov.h >> > create mode 100644 libgcov/include/gthr-default.h >> > create mode 100644 libgcov/include/libgcc_tm.h >> > create mode 100644 libgcov/include/tconfig.h >> > create mode 100644 libgcov/include/tm.h >> > >> > diff --git a/Config.uk b/Config.uk >> > index 5aaca7c..111bdb2 100644 >> > --- a/Config.uk >> > +++ b/Config.uk >> > @@ -26,4 +26,15 @@ config LIBFFI >> > if LIBFFI >> > endif >> > >> > +config LIBGCOV >> > + bool "libgcov - A Profiling Library" >> > + default n >> > + select LIBPTHREAD_EMBEDDED >> > + select LIBCOMPILER_RT >> > + select LIBCXX >> > + select LIBCXXABI >> > + select LIBUNWIND >> > +if LIBGCOV >> > +endif >> > + >> > endif >> > diff --git a/Makefile.uk b/Makefile.uk >> > index d5901e2..435b098 100644 >> > --- a/Makefile.uk >> > +++ b/Makefile.uk >> > @@ -42,6 +42,7 @@ >> > $(eval $(call addlib_s,libgcc,$(CONFIG_LIBGCC))) >> > $(eval $(call addlib_s,libbacktrace,$(CONFIG_LIBBACKTRACE))) >> > $(eval $(call addlib_s,libffi,$(CONFIG_LIBFFI))) >> > +$(eval $(call addlib_s,libgcov,$(CONFIG_LIBGCOV))) >> > >> > >> > ################################################################################ >> > # Original sources >> > @@ -70,6 +71,9 @@ CXXINCLUDES-$(CONFIG_LIBBACKTRACE) += >> > -I$(LIBGCC_BASE)/libbacktrace/include >> > CINCLUDES-$(CONFIG_LIBFFI) += -I$(LIBGCC_BASE)/libffi/include >> > CXXINCLUDES-$(CONFIG_LIBFFI) += -I$(LIBGCC_BASE)/libffi/include >> > >> > +CINCLUDES-$(CONFIG_LIBGCOV) += -I$(LIBGCC_BASE)/libgcov/include >> > +CXXINCLUDES-$(CONFIG_LIBGCOV) += -I$(LIBGCC_BASE)/libgcov/include >> > + >> > >> > ################################################################################ >> > # libbacktrace code >> > >> > ################################################################################ >> > @@ -119,3 +123,21 @@ LIBFFI_SRCS-y += $(LIBFFI_EXTRACTED)/src/raw_api.c >> > LIBFFI_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBFFI_EXTRACTED)/src/x86/ffi64.c >> > LIBFFI_SRCS-$(CONFIG_ARCH_X86_64) += $(LIBFFI_EXTRACTED)/src/x86/unix64.S >> > >> > +################################################################################ >> > +# libgcov code >> > +################################################################################ >> > +LIBGCOV_CINCLUDES-y = -I$(LIBGCC_BASE)/libgcov/include >> > -I$(LIBGCC_EXTRACTED)/include \ >> > + -I$(LIBGCC_EXTRACTED)/gcc -I$(LIBGCC_EXTRACTED)/libgcc >> > + >> >> There should be a comment here telling about the -DL_gcov_... symbols >> and why they are defined / added like this. >> >> > +LIBGCOV_CFLAGS-y += -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector \ >> > + -DHAVE_CC_TLS -DL_gcov_merge_add -DL_gcov_merge_single >> > -DL_gcov_merge_ior -DL_gcov_merge_time_profile -DL_gcov_merge_icall_topn \ >> > + -DL_gcov_interval_profiler -DL_gcov_interval_profiler_atomic >> > -DL_gcov_pow2_profiler -DL_gcov_pow2_profiler_atomic \ >> > + -DL_gcov_one_value_profiler -DL_gcov_one_value_profiler_atomic >> > -DL_gcov_average_profiler -DL_gcov_average_profiler_atomic \ >> > + -DL_gcov_ior_profiler -DL_gcov_ior_profiler_atomic >> > -DL_gcov_indirect_call_profiler_v2 -DL_gcov_time_profiler \ >> > + -DL_gcov_indirect_call_topn_profiler -DL_gcov_dump -DL_gcov_flush >> > -DL_gcov_fork -DL_gcov_execl -DL_gcov_execlp -DL_gcov_execle \ >> >> There is an extra blank and backspace at the end of the line that is >> not required. >> >> > + -DL_gcov_execv -DL_gcov_execvp -DL_gcov_execve -DL_gcov_reset >> > -DL_gcov \ >> > + >> > +LIBGCOV_SRCS-y += $(LIBGCC_EXTRACTED)/libgcc/libgcov-merge.c >> > +LIBGCOV_SRCS-y += $(LIBGCC_EXTRACTED)/libgcc/libgcov-profiler.c >> > +LIBGCOV_SRCS-y += $(LIBGCC_EXTRACTED)/libgcc/libgcov-interface.c >> > +LIBGCOV_SRCS-y += $(LIBGCC_EXTRACTED)/libgcc/libgcov-driver.c >> > diff --git a/libgcov/include/auto-host.h b/libgcov/include/auto-host.h >> > new file mode 100644 >> > index 0000000..9b81bf2 >> > --- /dev/null >> > +++ b/libgcov/include/auto-host.h >> > @@ -0,0 +1,2419 @@ >> > +/* auto-host.h. Generated from config.in by configure. */ >> > +/* config.in. Generated from configure.ac by autoheader. */ >> > + >> > +/* Define if this compiler should be built as the offload target >> > compiler. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ACCEL_COMPILER */ >> > +#endif >> > + >> > + >> > +/* Define if building universal (internal helper macro) */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef AC_APPLE_UNIVERSAL_BUILD */ >> > +#endif >> > + >> > + >> > +/* Define to the assembler option to enable compressed debug sections. */ >> > +#ifndef USED_FOR_TARGET >> > +#define AS_COMPRESS_DEBUG_OPTION "" >> > +#endif >> > + >> > + >> > +/* Define to the assembler option to disable compressed debug sections. */ >> > +#ifndef USED_FOR_TARGET >> > +#define AS_NO_COMPRESS_DEBUG_OPTION "" >> > +#endif >> > + >> > + >> > +/* Define as the number of bits in a byte, if `limits.h' doesn't. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef CHAR_BIT */ >> > +#endif >> > + >> > + >> > +/* Define to 0/1 if you want more run-time sanity checks. This one gets a >> > grab >> > + bag of miscellaneous but relatively cheap checks. */ >> > +#ifndef USED_FOR_TARGET >> > +#define CHECKING_P 0 >> > +#endif >> > + >> > + >> > +/* Define 0/1 to force the choice for exception handling model. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef CONFIG_SJLJ_EXCEPTIONS */ >> > +#endif >> > + >> > + >> > +/* Define to enable the use of a default assembler. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef DEFAULT_ASSEMBLER */ >> > +#endif >> > + >> > + >> > +/* Define to enable the use of a default linker. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef DEFAULT_LINKER */ >> > +#endif >> > + >> > + >> > +/* Define if you want to use __cxa_atexit, rather than atexit, to >> > register C++ >> > + destructors for local statics and global objects. This is essential for >> > + fully standards-compliant handling of destructors, but requires >> > + __cxa_atexit in libc. */ >> > +#ifndef USED_FOR_TARGET >> > +#define DEFAULT_USE_CXA_ATEXIT 2 >> > +#endif >> > + >> > + >> > +/* The default for -fdiagnostics-color option */ >> > +#ifndef USED_FOR_TARGET >> > +#define DIAGNOSTICS_COLOR_DEFAULT DIAGNOSTICS_COLOR_AUTO >> > +#endif >> > + >> > + >> > +/* Define if you want assertions enabled. This is a cheap check. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_ASSERT_CHECKING 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 to specify that we are using the BID decimal floating point >> > + format instead of DPD */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_DECIMAL_BID_FORMAT 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 to enable decimal float extension to C. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_DECIMAL_FLOAT 1 >> > +#endif >> > + >> > + >> > +/* Define if your target supports default PIE and it is enabled. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_DEFAULT_PIE */ >> > +#endif >> > + >> > + >> > +/* Define if your target supports default stack protector and it is >> > enabled. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_DEFAULT_SSP */ >> > +#endif >> > + >> > + >> > +/* Define if you want more run-time sanity checks for dataflow. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_DF_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define to 0/1 if you want extra run-time checking that might affect >> > code >> > + generation. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_EXTRA_CHECKING 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 to enable fixed-point arithmetic extension to C. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_FIXED_POINT 0 >> > +#endif >> > + >> > + >> > +/* Define if you want fold checked that it never destructs its argument. >> > This >> > + is quite expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_FOLD_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define if you want the garbage collector to operate in maximally >> > paranoid >> > + mode, validating the entire heap and collecting garbage at every >> > + opportunity. This is extremely expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_GC_ALWAYS_COLLECT */ >> > +#endif >> > + >> > + >> > +/* Define if you want the garbage collector to do object poisoning and >> > other >> > + memory allocation checks. This is quite expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_GC_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define if you want operations on GIMPLE (the basic data structure of >> > the >> > + high-level optimizers) to be checked for dynamic type safety at >> > runtime. >> > + This is moderately expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_GIMPLE_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define this to enable support for generating HSAIL. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_HSA */ >> > +#endif >> > + >> > + >> > +/* Define if gcc should always pass --build-id to linker. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_LD_BUILDID */ >> > +#endif >> > + >> > + >> > +/* Define to 1 to enable libquadmath support */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_LIBQUADMATH_SUPPORT 1 >> > +#endif >> > + >> > + >> > +/* Define to enable LTO support. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_LTO */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if translation of program messages to the user's native >> > + language is requested. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_NLS */ >> > +#endif >> > + >> > + >> > +/* Define this to enable support for offloading. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_OFFLOADING 0 >> > +#endif >> > + >> > + >> > +/* Define to enable plugin support. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_PLUGIN 1 >> > +#endif >> > + >> > + >> > +/* Define if you want all operations on RTL (the basic data structure of >> > the >> > + optimizer and back end) to be checked for dynamic type safety at >> > runtime. >> > + This is quite expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_RTL_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define if you want RTL flag accesses to be checked against the RTL >> > codes >> > + that are supported for each access macro. This is relatively cheap. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_RTL_FLAG_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define if you want runtime assertions enabled. This is a cheap check. >> > */ >> > +#define ENABLE_RUNTIME_CHECKING 1 >> > + >> > +/* Define if you want all operations on trees (the basic data structure >> > of the >> > + front ends) to be checked for dynamic type safety at runtime. This is >> > + moderately expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_TREE_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define if you want all gimple types to be verified after gimplifiation. >> > + This is cheap. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_TYPES_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define to get calls to the valgrind runtime enabled. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_VALGRIND_ANNOTATIONS */ >> > +#endif >> > + >> > + >> > +/* Define if you want to run subprograms and generated programs through >> > + valgrind (a memory checker). This is extremely expensive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_VALGRIND_CHECKING */ >> > +#endif >> > + >> > + >> > +/* Define 0/1 if vtable verification feature is enabled. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ENABLE_VTABLE_VERIFY 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if installation paths should be looked up in the Windows >> > + Registry. Ignored on non-Windows hosts. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ENABLE_WIN32_REGISTRY */ >> > +#endif >> > + >> > + >> > +/* Define to the name of a file containing a list of extra machine modes >> > for >> > + this architecture. */ >> > +#ifndef USED_FOR_TARGET >> > +#define EXTRA_MODES_FILE "config/i386/i386-modes.def" >> > +#endif >> > + >> > + >> > +/* Define to enable detailed memory allocation stats gathering. */ >> > +#ifndef USED_FOR_TARGET >> > +#define GATHER_STATISTICS 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if `TIOCGWINSZ' requires <sys/ioctl.h>. */ >> > +#ifndef USED_FOR_TARGET >> > +#define GWINSZ_IN_SYS_IOCTL 1 >> > +#endif >> > + >> > + >> > +/* mcontext_t fields start with __ */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAS_MCONTEXT_T_UNDERSCORES */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports architecture modifiers. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_ARCHITECTURE_MODIFIERS */ >> > +#endif >> > + >> > + >> > +/* Define if your avr assembler supports --mlink-relax option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_AVR_MLINK_RELAX_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define if your avr assembler supports -mrmw option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_AVR_MRMW_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports cmpb. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_CMPB */ >> > +#endif >> > + >> > + >> > +/* Define to the level of your assembler's compressed debug section >> > support. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_COMPRESS_DEBUG no >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the DCI/ICI instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DCI */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the --debug-prefix-map option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DEBUG_PREFIX_MAP */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports DFP instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DFP */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .module. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DOT_MODULE */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports DSPR1 mult. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DSPR1_MULT */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .dtprelword. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DTPRELWORD */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports dwarf2 .file/.loc directives, and >> > + preserves file table indices exactly as given. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_DWARF2_DEBUG_LINE */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the R_PPC64_ENTRY relocation. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_ENTRY_MARKERS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports explicit relocations. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_EXPLICIT_RELOCS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports FMAF, HPC, and VIS 3.0 instructions. >> > */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_FMAF_HPC_VIS3 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports fprnd. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_FPRND */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the --gdwarf2 option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_GDWARF2_DEBUG_FLAG */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .gnu_attribute. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_GNU_ATTRIBUTE */ >> > +#endif >> > + >> > + >> > +/* Define true if the assembler supports '.long foo@GOTOFF'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_GOTOFF_IN_DATA 0 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the --gstabs option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_GSTABS_DEBUG_FLAG */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the Sun syntax for cmov. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_CMOV_SUN_SYNTAX */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the subtraction of symbols in >> > different >> > + sections. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_DIFF_SECT_DELTA */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the ffreep mnemonic. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_FFREEP */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler uses fildq and fistq mnemonics. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_FILDQ */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler uses filds and fists mnemonics. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_FILDS */ >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your assembler and linker support @GOT. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_IX86_GOT32X 0 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports HLE prefixes. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_HLE */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports interunit movq mnemonic. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_IX86_INTERUNIT_MOVQ 0 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the .quad directive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_QUAD */ >> > +#endif >> > + >> > + >> > +/* Define if the assembler supports 'rep <insn>, lock <insn>'. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_REP_LOCK_PREFIX */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the sahf mnemonic in 64bit mode. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_SAHF */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the swap suffix. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_SWAP */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler and linker support @tlsgdplt. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_TLSGDPLT */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if your assembler and linker support @tlsldm. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_IX86_TLSLDM 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if your assembler and linker support @tlsldmplt. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_IX86_TLSLDMPLT 0 >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your assembler and linker support calling >> > ___tls_get_addr via >> > + GOT. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_IX86_TLS_GET_ADDR_GOT 0 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the 'ud2' mnemonic. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_IX86_UD2 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the lituse_jsrdirect relocation. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_JSRDIRECT_RELOCS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .sleb128 and .uleb128. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_AS_LEB128 0 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports LEON instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_LEON */ >> > +#endif >> > + >> > + >> > +/* Define if the assembler won't complain about a line such as # 0 "" 2. >> > */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_LINE_ZERO */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports ltoffx and ldxmov relocations. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_LTOFFX_LDXMOV_RELOCS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports LWSYNC instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_LWSYNC */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the -mabi option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_MABI_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .machine and .machinemode. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_MACHINE_MACHINEMODE */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports mfcr field. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_MFCRF */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports mffgpr and mftgpr. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_MFPGPR */ >> > +#endif >> > + >> > + >> > +/* Define if your Mac OS X assembler supports the -mmacos-version-min >> > option. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_MMACOSX_VERSION_MIN_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define if the assembler understands -mnan=. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_NAN */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the -no-mul-bug-abort option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_NO_MUL_BUG_ABORT_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define if the assembler understands -mno-shared. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_NO_SHARED */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports offsetable %lo(). */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_OFFSETABLE_LO10 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports popcntb field. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_POPCNTB */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports POPCNTD instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_POPCNTD */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports POWER8 instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_POWER8 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports POWER9 instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_POWER9 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .ref */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_REF */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .register. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_REGISTER_PSEUDO_OP */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports R_PPC_REL16 relocs. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_REL16 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports -relax option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_RELAX_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports relocs needed by -fpic. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SMALL_PIC_RELOCS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports SPARC4 instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SPARC4 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports SPARC5 and VIS 4.0 instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SPARC5_VIS4 */ >> > +#endif >> > + >> > +/* Define if your assembler supports SPARC6 instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SPARC6 */ >> > +#endif >> > + >> > +/* Define if your assembler and linker support GOTDATA_OP relocs. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SPARC_GOTDATA_OP */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler and linker support unaligned PC relative >> > relocs. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SPARC_UA_PCREL */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler and linker support unaligned PC relative >> > relocs >> > + against hidden symbols. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_SPARC_UA_PCREL_HIDDEN */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .stabs. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_STABS_DIRECTIVE */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler and linker support thread-local storage. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_TLS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports arg info for __tls_get_addr. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_TLS_MARKERS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports VSX instructions. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_VSX */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports -xbrace_comment option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_AS_XBRACE_COMMENT_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `atoq' function. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_ATOQ */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `clearerr_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_CLEARERR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `clock' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_CLOCK 1 >> > +#endif >> > + >> > + >> > +/* Define if <time.h> defines clock_t. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_CLOCK_T 1 >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your assembler and linker support COMDAT groups. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_COMDAT_GROUP 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'abort', otherwise define to >> > 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_ABORT 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'asprintf', otherwise define >> > to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_ASPRINTF 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'atof', otherwise define to >> > 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_ATOF 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'atol', otherwise define to >> > 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_ATOL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'atoll', otherwise define to >> > 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_ATOLL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the declaration of `basename(const char*)', >> > and to >> > + 0 if you don't. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_BASENAME 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'calloc', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_CALLOC 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'clearerr_unlocked', >> > otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_CLEARERR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'clock', otherwise define to >> > 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_CLOCK 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'errno', otherwise define to >> > 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_ERRNO 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'feof_unlocked', otherwise >> > define >> > + to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FEOF_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'ferror_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FERROR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fflush_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FFLUSH_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'ffs', otherwise define to >> > 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FFS 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fgetc_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FGETC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fgets_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FGETS_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fileno_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FILENO_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fprintf_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FPRINTF_UNLOCKED 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fputc_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FPUTC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fputs_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FPUTS_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fread_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FREAD_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'free', otherwise define to >> > 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FREE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'fwrite_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_FWRITE_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getchar_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETCHAR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getcwd', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETCWD 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getc_unlocked', otherwise >> > define >> > + to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getenv', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETENV 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getopt', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETOPT 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getpagesize', otherwise >> > define >> > + to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETPAGESIZE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getrlimit', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETRLIMIT 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getrusage', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETRUSAGE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'getwd', otherwise define to >> > 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_GETWD 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'ldgetname', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_LDGETNAME 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'madvise', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_MADVISE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'malloc', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_MALLOC 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'putchar_unlocked', otherwise >> > + define to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_PUTCHAR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'putc_unlocked', otherwise >> > define >> > + to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_PUTC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'realloc', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_REALLOC 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'sbrk', otherwise define to >> > 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_SBRK 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'setenv', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_SETENV 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'setrlimit', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_SETRLIMIT 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'sigaltstack', otherwise >> > define >> > + to 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_SIGALTSTACK 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'snprintf', otherwise define >> > to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_SNPRINTF 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'stpcpy', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STPCPY 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strnlen', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRNLEN 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strsignal', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRSIGNAL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the declaration of `strstr(const char*,const >> > + char*)', and to 0 if you don't. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRSTR 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strtol', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRTOL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strtoll', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRTOLL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strtoul', otherwise define >> > to 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRTOUL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strtoull', otherwise define >> > to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRTOULL 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'strverscmp', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_STRVERSCMP 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'times', otherwise define to >> > 0. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_TIMES 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'unsetenv', otherwise define >> > to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_UNSETENV 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'vasprintf', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_VASPRINTF 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if we found a declaration for 'vsnprintf', otherwise >> > define to >> > + 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DECL_VSNPRINTF 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <direct.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_DIRECT_H */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <dlfcn.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_DLFCN_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <ext/hash_map> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_EXT_HASH_MAP 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <fcntl.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FCNTL_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `feof_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FEOF_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `ferror_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FERROR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fflush_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FFLUSH_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fgetc_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FGETC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fgets_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FGETS_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fileno_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FILENO_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fork' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FORK 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fprintf_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_FPRINTF_UNLOCKED */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fputc_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FPUTC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fputs_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FPUTS_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fread_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FREAD_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <ftw.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FTW_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `fwrite_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_FWRITE_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports specifying the alignment of objects >> > + allocated using the GAS .comm command. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_ALIGNED_COMM */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .balign and .p2align. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_BALIGN_AND_P2ALIGN */ >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your assembler supports CFI directives. */ >> > +#define HAVE_GAS_CFI_DIRECTIVE 0 >> > + >> > +/* Define 0/1 if your assembler supports .cfi_personality. */ >> > +#define HAVE_GAS_CFI_PERSONALITY_DIRECTIVE 0 >> > + >> > +/* Define 0/1 if your assembler supports .cfi_sections. */ >> > +#define HAVE_GAS_CFI_SECTIONS_DIRECTIVE 0 >> > + >> > +/* Define if your assembler supports the .loc discriminator >> > sub-directive. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_DISCRIMINATOR */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports @gnu_unique_object. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_GNU_UNIQUE_OBJECT */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler and linker support .hidden. */ >> > +/* #undef HAVE_GAS_HIDDEN */ >> > + >> > +/* Define if your assembler supports .lcomm with an alignment field. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_LCOMM_WITH_ALIGNMENT */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .literal16. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_LITERAL16 */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports specifying the maximum number of >> > bytes to >> > + skip when using the GAS .p2align command. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_MAX_SKIP_P2ALIGN */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports the .set micromips directive */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_MICROMIPS */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .nsubspa comdat option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_NSUBSPA_COMDAT */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler and linker support 32-bit section relative >> > relocs >> > + via '.secrel32 label'. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_PE_SECREL32_RELOC */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports specifying the section flag e. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GAS_SECTION_EXCLUDE 0 >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your assembler supports marking sections with SHF_MERGE >> > flag. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GAS_SHF_MERGE 0 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .subsection and .subsection -1 starts >> > + emitting at the beginning of your section. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_SUBSECTION_ORDERING */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .weak. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_WEAK */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports .weakref. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GAS_WEAKREF */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `getchar_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GETCHAR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `getc_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GETC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `getrlimit' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GETRLIMIT 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `getrusage' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GETRUSAGE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `gettimeofday' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GETTIMEOFDAY 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if using GNU as. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GNU_AS 1 >> > +#endif >> > + >> > + >> > +/* Define if your system supports gnu indirect functions. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GNU_INDIRECT_FUNCTION 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if using GNU ld. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_GNU_LD 1 >> > +#endif >> > + >> > + >> > +/* Define if the gold linker supports split stack and is available as a >> > + non-default */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_GOLD_NON_DEFAULT_SPLIT_STACK */ >> > +#endif >> > + >> > + >> > +/* Define if you have the iconv() function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_ICONV 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <iconv.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_ICONV_H 1 >> > +#endif >> > + >> > + >> > +/* Define 0/1 if .init_array/.fini_array sections are available and >> > working. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_INITFINI_ARRAY_SUPPORT 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `intmax_t'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_INTMAX_T 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `intptr_t'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_INTPTR_T 1 >> > +#endif >> > + >> > + >> > +/* Define if you have a working <inttypes.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_INTTYPES_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `kill' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_KILL 1 >> > +#endif >> > + >> > + >> > +/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LANGINFO_CODESET 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <langinfo.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LANGINFO_H 1 >> > +#endif >> > + >> > + >> > +/* Define if your <locale.h> file defines LC_MESSAGES. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LC_MESSAGES 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <ldfcn.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LDFCN_H */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports --as-needed/--no-as-needed or equivalent >> > + options. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_AS_NEEDED */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports -z bndplt */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_BNDPLT_SUPPORT */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports --build-id. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_BUILDID */ >> > +#endif >> > + >> > + >> > +/* Define if the linker supports clearing hardware capabilities via >> > mapfile. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_CLEARCAP */ >> > +#endif >> > + >> > + >> > +/* Define to the level of your linker's compressed debug section support. >> > */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LD_COMPRESS_DEBUG 0 >> > +#endif >> > + >> > + >> > +/* Define if your linker supports --demangle option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_DEMANGLE */ >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your linker supports CIE v3 in .eh_frame. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LD_EH_FRAME_CIEV3 0 >> > +#endif >> > + >> > + >> > +/* Define if your linker supports .eh_frame_hdr. */ >> > +/* #undef HAVE_LD_EH_FRAME_HDR */ >> > + >> > +/* Define if your linker supports garbage collection of sections in >> > presence >> > + of EH frames. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_EH_GC_SECTIONS */ >> > +#endif >> > + >> > + >> > +/* Define if your linker has buggy garbage collection of sections support >> > when >> > + .text.startup.foo like sections are used. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_EH_GC_SECTIONS_BUG */ >> > +#endif >> > + >> > + >> > +/* Define if your PowerPC64 linker supports a large TOC. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_LARGE_TOC */ >> > +#endif >> > + >> > + >> > +/* Define if your PowerPC64 linker only needs function descriptor syms. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_NO_DOT_SYMS */ >> > +#endif >> > + >> > + >> > +/* Define if your linker can relax absolute .eh_frame personality pointers >> > + into PC-relative form. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_PERSONALITY_RELAXATION */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports PIE option. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_PIE */ >> > +#endif >> > + >> > + >> > +/* Define 0/1 if your linker supports -pie option with copy reloc. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LD_PIE_COPYRELOC 0 >> > +#endif >> > + >> > + >> > +/* Define if your PowerPC linker has .gnu.attributes long double support. >> > */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_PPC_GNU_ATTR_LONG_DOUBLE */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports --push-state/--pop-state */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_PUSHPOPSTATE_SUPPORT */ >> > +#endif >> > + >> > + >> > +/* Define if your linker links a mix of read-only and read-write sections >> > into >> > + a read-write section. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_RO_RW_SECTION_MIXING */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports the *_sol2 emulations. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_SOL2_EMULATION */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports -Bstatic/-Bdynamic or equivalent >> > options. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_STATIC_DYNAMIC */ >> > +#endif >> > + >> > + >> > +/* Define if your linker supports --sysroot. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_LD_SYSROOT */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <limits.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LIMITS_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <locale.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LOCALE_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `long long'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LONG_LONG 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `long long int'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LONG_LONG_INT 1 >> > +#endif >> > + >> > + >> > +/* Define to the level of your linker's plugin support. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_LTO_PLUGIN 0 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `madvise' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MADVISE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <malloc.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MALLOC_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `mbstowcs' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MBSTOWCS 1 >> > +#endif >> > + >> > + >> > +/* Define if valgrind's memcheck.h header is installed. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_MEMCHECK_H */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <memory.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MEMORY_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `mmap' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MMAP 1 >> > +#endif >> > + >> > + >> > +/* Define if mmap with MAP_ANON(YMOUS) works. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MMAP_ANON 1 >> > +#endif >> > + >> > + >> > +/* Define if mmap of /dev/zero works. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MMAP_DEV_ZERO 1 >> > +#endif >> > + >> > + >> > +/* Define if read-only mmap of a plain file works. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_MMAP_FILE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `nl_langinfo' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_NL_LANGINFO 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `popen' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_POPEN 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `putchar_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_PUTCHAR_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `putc_unlocked' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_PUTC_UNLOCKED 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `setlocale' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SETLOCALE 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `setrlimit' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SETRLIMIT 1 >> > +#endif >> > + >> > + >> > +/* Define if the system-provided CRTs are present on Solaris. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_SOLARIS_CRTS */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <stddef.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STDDEF_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <stdint.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STDINT_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <stdlib.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STDLIB_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <strings.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STRINGS_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <string.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STRING_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `strsignal' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STRSIGNAL 1 >> > +#endif >> > + >> > + >> > +/* Define if <sys/times.h> defines struct tms. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_STRUCT_TMS 1 >> > +#endif >> > + >> > + >> > +/* Define if <utility> defines std::swap. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SWAP_IN_UTILITY 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `sysconf' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYSCONF 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/file.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_FILE_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/mman.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_MMAN_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/param.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_PARAM_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/resource.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_RESOURCE_H 1 >> > +#endif >> > + >> > + >> > +/* Define if your target C library provides sys/sdt.h */ >> > +/* #undef HAVE_SYS_SDT_H */ >> > + >> > +/* Define to 1 if you have the <sys/stat.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_STAT_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/times.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_TIMES_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/time.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_TIME_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <sys/types.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_TYPES_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_SYS_WAIT_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `times' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_TIMES 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <time.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_TIME_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <tr1/unordered_map> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_TR1_UNORDERED_MAP 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `uintmax_t'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_UINTMAX_T 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `uintptr_t'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_UINTPTR_T 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <unistd.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_UNISTD_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <unordered_map> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_UNORDERED_MAP 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if the system has the type `unsigned long long int'. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_UNSIGNED_LONG_LONG_INT 1 >> > +#endif >> > + >> > + >> > +/* Define if valgrind's valgrind/memcheck.h header is installed. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_VALGRIND_MEMCHECK_H */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `vfork' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_VFORK 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <vfork.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_VFORK_H */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the <wchar.h> header file. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_WCHAR_H 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the `wcswidth' function. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_WCSWIDTH 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if `fork' works. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_WORKING_FORK 1 >> > +#endif >> > + >> > + >> > +/* Define this macro if mbstowcs does not crash when its first argument is >> > + NULL. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_WORKING_MBSTOWCS 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if `vfork' works. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HAVE_WORKING_VFORK 1 >> > +#endif >> > + >> > + >> > +/* Define if your assembler supports AIX debug frame section label >> > reference. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_XCOFF_DWARF_EXTRAS */ >> > +#endif >> > + >> > + >> > +/* Define if isl is in use. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef HAVE_isl */ >> > +#endif >> > + >> > + >> > +/* Define if F_SETLKW supported by fcntl. */ >> > +#ifndef USED_FOR_TARGET >> > +#define HOST_HAS_F_SETLKW 1 >> > +#endif >> > + >> > + >> > +/* Define as const if the declaration of iconv() needs const. */ >> > +#ifndef USED_FOR_TARGET >> > +#define ICONV_CONST >> > +#endif >> > + >> > + >> > +/* Define if int64_t uses long as underlying type. */ >> > +#ifndef USED_FOR_TARGET >> > +#define INT64_T_IS_LONG 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if ld64 supports '-export_dynamic'. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LD64_HAS_EXPORT_DYNAMIC */ >> > +#endif >> > + >> > + >> > +/* Define to ld64 version. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LD64_VERSION */ >> > +#endif >> > + >> > + >> > +/* Define to the linker option to ignore unused dependencies. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LD_AS_NEEDED_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define to the linker option to enable compressed debug sections. */ >> > +#ifndef USED_FOR_TARGET >> > +#define LD_COMPRESS_DEBUG_OPTION "" >> > +#endif >> > + >> > + >> > +/* Define to the linker option to enable use of shared objects. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LD_DYNAMIC_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define to the linker option to keep unused dependencies. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LD_NO_AS_NEEDED_OPTION */ >> > +#endif >> > + >> > + >> > +/* Define to the linker option to disable use of shared objects. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LD_STATIC_OPTION */ >> > +#endif >> > + >> > + >> > +/* The linker hash style */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef LINKER_HASH_STYLE */ >> > +#endif >> > + >> > + >> > +/* Define to the name of the LTO plugin DSO that must be passed to the >> > + linker's -plugin=LIB option. */ >> > +#ifndef USED_FOR_TARGET >> > +#define LTOPLUGINSONAME "liblto_plugin.so" >> > +#endif >> > + >> > + >> > +/* Define to the sub-directory in which libtool stores uninstalled >> > libraries. >> > + */ >> > +#ifndef USED_FOR_TARGET >> > +#define LT_OBJDIR ".libs/" >> > +#endif >> > + >> > + >> > +/* Define if host mkdir takes a single argument. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef MKDIR_TAKES_ONE_ARG */ >> > +#endif >> > + >> > + >> > +/* Define to offload targets, separated by commas. */ >> > +#ifndef USED_FOR_TARGET >> > +#define OFFLOAD_TARGETS "" >> > +#endif >> > + >> > + >> > +/* Define to the address where bug reports for this package should be >> > sent. */ >> > +#ifndef USED_FOR_TARGET >> > +#define PACKAGE_BUGREPORT "" >> > +#endif >> > + >> > + >> > +/* Define to the full name of this package. */ >> > +#ifndef USED_FOR_TARGET >> > +#define PACKAGE_NAME "" >> > +#endif >> > + >> > + >> > +/* Define to the full name and version of this package. */ >> > +#ifndef USED_FOR_TARGET >> > +#define PACKAGE_STRING "" >> > +#endif >> > + >> > + >> > +/* Define to the one symbol short name of this package. */ >> > +#ifndef USED_FOR_TARGET >> > +#define PACKAGE_TARNAME "" >> > +#endif >> > + >> > + >> > +/* Define to the home page for this package. */ >> > +#ifndef USED_FOR_TARGET >> > +#define PACKAGE_URL "" >> > +#endif >> > + >> > + >> > +/* Define to the version of this package. */ >> > +#ifndef USED_FOR_TARGET >> > +#define PACKAGE_VERSION "" >> > +#endif >> > + >> > + >> > +/* Specify plugin linker */ >> > +#ifndef USED_FOR_TARGET >> > +#define PLUGIN_LD_SUFFIX "" >> > +#endif >> > + >> > + >> > +/* Define to .TOC. alignment forced by your linker. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef POWERPC64_TOC_POINTER_ALIGNMENT */ >> > +#endif >> > + >> > + >> > +/* Define to PREFIX/include if cpp should also search that directory. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef PREFIX_INCLUDE_DIR */ >> > +#endif >> > + >> > + >> > +/* The size of `int', as computed by sizeof. */ >> > +#ifndef USED_FOR_TARGET >> > +#define SIZEOF_INT 4 >> > +#endif >> > + >> > + >> > +/* The size of `long', as computed by sizeof. */ >> > +#ifndef USED_FOR_TARGET >> > +#define SIZEOF_LONG 8 >> > +#endif >> > + >> > + >> > +/* The size of `long long', as computed by sizeof. */ >> > +#ifndef USED_FOR_TARGET >> > +#define SIZEOF_LONG_LONG 8 >> > +#endif >> > + >> > + >> > +/* The size of `short', as computed by sizeof. */ >> > +#ifndef USED_FOR_TARGET >> > +#define SIZEOF_SHORT 2 >> > +#endif >> > + >> > + >> > +/* The size of `void *', as computed by sizeof. */ >> > +#ifndef USED_FOR_TARGET >> > +#define SIZEOF_VOID_P 8 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you have the ANSI C header files. */ >> > +#ifndef USED_FOR_TARGET >> > +#define STDC_HEADERS 1 >> > +#endif >> > + >> > + >> > +/* Define if you can safely include both <string.h> and <strings.h>. */ >> > +#ifndef USED_FOR_TARGET >> > +#define STRING_WITH_STRINGS 1 >> > +#endif >> > + >> > + >> > +/* Define if TFmode long double should be the default */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef TARGET_DEFAULT_LONG_DOUBLE_128 */ >> > +#endif >> > + >> > + >> > +/* Define if your target C library provides the `dl_iterate_phdr' >> > function. */ >> > +/* #undef TARGET_DL_ITERATE_PHDR */ >> > + >> > +/* GNU C Library major version number used on the target, or 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define TARGET_GLIBC_MAJOR 2 >> > +#endif >> > + >> > + >> > +/* GNU C Library minor version number used on the target, or 0. */ >> > +#ifndef USED_FOR_TARGET >> > +#define TARGET_GLIBC_MINOR 27 >> > +#endif >> > + >> > + >> > +/* Define if your target C Library provides the AT_HWCAP value in the TCB >> > */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef TARGET_LIBC_PROVIDES_HWCAP_IN_TCB */ >> > +#endif >> > + >> > + >> > +/* Define if your target C library provides stack protector support */ >> > +#ifndef USED_FOR_TARGET >> > +#define TARGET_LIBC_PROVIDES_SSP 1 >> > +#endif >> > + >> > + >> > +/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. >> > */ >> > +#ifndef USED_FOR_TARGET >> > +#define TIME_WITH_SYS_TIME 1 >> > +#endif >> > + >> > + >> > +/* Define to the flag used to mark TLS sections if the default (`T') >> > doesn't >> > + work. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef TLS_SECTION_ASM_FLAG */ >> > +#endif >> > + >> > + >> > +/* Define if your assembler mis-optimizes .eh_frame data. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef USE_AS_TRADITIONAL_FORMAT */ >> > +#endif >> > + >> > + >> > +/* Define if you want to generate code by default that assumes that the >> > Cygwin >> > + DLL exports wrappers to support libstdc++ function replacement. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef USE_CYGWIN_LIBSTDCXX_WRAPPERS */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if the 'long long' type is wider than 'long' but still >> > + efficiently supported by the host hardware. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef USE_LONG_LONG_FOR_WIDEST_FAST_INT */ >> > +#endif >> > + >> > + >> > +/* Define if we should use leading underscore on 64 bit mingw targets */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef USE_MINGW64_LEADING_UNDERSCORES */ >> > +#endif >> > + >> > + >> > +/* Enable extensions on AIX 3, Interix. */ >> > +#ifndef _ALL_SOURCE >> > +# define _ALL_SOURCE 1 >> > +#endif >> > +/* Enable GNU extensions on systems that have them. */ >> > +#ifndef _GNU_SOURCE >> > +# define _GNU_SOURCE 1 >> > +#endif >> > +/* Enable threading extensions on Solaris. */ >> > +#ifndef _POSIX_PTHREAD_SEMANTICS >> > +# define _POSIX_PTHREAD_SEMANTICS 1 >> > +#endif >> > +/* Enable extensions on HP NonStop. */ >> > +#ifndef _TANDEM_SOURCE >> > +# define _TANDEM_SOURCE 1 >> > +#endif >> > +/* Enable general extensions on Solaris. */ >> > +#ifndef __EXTENSIONS__ >> > +# define __EXTENSIONS__ 1 >> > +#endif >> > + >> > + >> > +/* Define to be the last component of the Windows registry key under >> > which to >> > + look for installation paths. The full key used will be >> > + HKEY_LOCAL_MACHINE/SOFTWARE/Free Software >> > Foundation/{WIN32_REGISTRY_KEY}. >> > + The default is the GCC version number. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef WIN32_REGISTRY_KEY */ >> > +#endif >> > + >> > + >> > +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the >> > most >> > + significant byte first (like Motorola and SPARC, unlike Intel). */ >> > +#if defined AC_APPLE_UNIVERSAL_BUILD >> > +# if defined __BIG_ENDIAN__ >> > +# define WORDS_BIGENDIAN 1 >> > +# endif >> > +#else >> > +# ifndef WORDS_BIGENDIAN >> > +/* # undef WORDS_BIGENDIAN */ >> > +# endif >> > +#endif >> > + >> > +/* Number of bits in a file offset, on hosts where this is settable. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _FILE_OFFSET_BITS */ >> > +#endif >> > + >> > + >> > +/* Define for large files, on AIX-style hosts. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _LARGE_FILES */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if on MINIX. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _MINIX */ >> > +#endif >> > + >> > + >> > +/* Define to 2 if the system does not provide POSIX.1 features except with >> > + this defined. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _POSIX_1_SOURCE */ >> > +#endif >> > + >> > + >> > +/* Define to 1 if you need to in order for `stat' and other things to >> > work. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _POSIX_SOURCE */ >> > +#endif >> > + >> > + >> > +/* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>, >> > + <pthread.h>, or <semaphore.h> is not used. If the typedef were >> > allowed, the >> > + #define below would cause a syntax error. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _UINT32_T */ >> > +#endif >> > + >> > + >> > +/* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, >> > + <pthread.h>, or <semaphore.h> is not used. If the typedef were >> > allowed, the >> > + #define below would cause a syntax error. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _UINT64_T */ >> > +#endif >> > + >> > + >> > +/* Define for Solaris 2.5.1 so the uint8_t typedef from <sys/synch.h>, >> > + <pthread.h>, or <semaphore.h> is not used. If the typedef were >> > allowed, the >> > + #define below would cause a syntax error. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef _UINT8_T */ >> > +#endif >> > + >> > + >> > +/* Define to `char *' if <sys/types.h> does not define. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef caddr_t */ >> > +#endif >> > + >> > + >> > +/* Define to `__inline__' or `__inline' if that's what the C compiler >> > + calls it, or to nothing if 'inline' is not supported under any name. >> > */ >> > +#ifndef __cplusplus >> > +/* #undef inline */ >> > +#endif >> > + >> > +/* Define to the type of a signed integer type of width exactly 16 bits if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef int16_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of a signed integer type of width exactly 32 bits if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef int32_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of a signed integer type of width exactly 64 bits if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef int64_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of a signed integer type of width exactly 8 bits if >> > such >> > + a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef int8_t */ >> > +#endif >> > + >> > + >> > +/* Define to the widest signed integer type if <stdint.h> and >> > <inttypes.h> do >> > + not define. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef intmax_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of a signed integer type wide enough to hold a >> > pointer, >> > + if such a type exists, and if the system does not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef intptr_t */ >> > +#endif >> > + >> > + >> > +/* Define to `int' if <sys/types.h> does not define. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef pid_t */ >> > +#endif >> > + >> > + >> > +/* Define to `long' if <sys/resource.h> doesn't define. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef rlim_t */ >> > +#endif >> > + >> > + >> > +/* Define to `int' if <sys/types.h> does not define. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef ssize_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of an unsigned integer type of width exactly 16 >> > bits if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef uint16_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of an unsigned integer type of width exactly 32 >> > bits if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef uint32_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of an unsigned integer type of width exactly 64 >> > bits if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef uint64_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of an unsigned integer type of width exactly 8 bits >> > if >> > + such a type exists and the standard includes do not define it. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef uint8_t */ >> > +#endif >> > + >> > + >> > +/* Define to the widest unsigned integer type if <stdint.h> and >> > <inttypes.h> >> > + do not define. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef uintmax_t */ >> > +#endif >> > + >> > + >> > +/* Define to the type of an unsigned integer type wide enough to hold a >> > + pointer, if such a type exists, and if the system does not define it. >> > */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef uintptr_t */ >> > +#endif >> > + >> > + >> > +/* Define as `fork' if `vfork' does not work. */ >> > +#ifndef USED_FOR_TARGET >> > +/* #undef vfork */ >> > +#endif >> > + >> > diff --git a/libgcov/include/auto-target.h b/libgcov/include/auto-target.h >> > new file mode 100644 >> > index 0000000..1ab0d1b >> > --- /dev/null >> > +++ b/libgcov/include/auto-target.h >> > @@ -0,0 +1,80 @@ >> > +/* auto-target.h. Generated from config.in by configure. */ >> > +/* config.in. Generated from configure.ac by autoheader. */ >> > + >> > +/* Define to 1 if the target assembler supports thread-local storage. */ >> > +/* #undef HAVE_CC_TLS */ >> > + >> > +/* Define to 1 if you have the <ftw.h> header file. */ >> > +#define HAVE_FTW_H 1 >> > + >> > +/* Define if _Unwind_GetIPInfo is available. */ >> > +#define HAVE_GETIPINFO 1 >> > + >> > +/* Define if the compiler supports init priority. */ >> > +#define HAVE_INIT_PRIORITY 1 >> > + >> > +/* Define to 1 if you have the <inttypes.h> header file. */ >> > +#define HAVE_INTTYPES_H 1 >> > + >> > +/* Define to 1 if you have the <memory.h> header file. */ >> > +#define HAVE_MEMORY_H 1 >> > + >> > +/* Define if the system-provided CRTs are present on Solaris. */ >> > +/* #undef HAVE_SOLARIS_CRTS */ >> > + >> > +/* Define to 1 if you have the <stdint.h> header file. */ >> > +#define HAVE_STDINT_H 1 >> > + >> > +/* Define to 1 if you have the <stdlib.h> header file. */ >> > +#define HAVE_STDLIB_H 1 >> > + >> > +/* Define to 1 if you have the <strings.h> header file. */ >> > +#define HAVE_STRINGS_H 1 >> > + >> > +/* Define to 1 if you have the <string.h> header file. */ >> > +#define HAVE_STRING_H 1 >> > + >> > +/* Define to 1 if you have the <sys/stat.h> header file. */ >> > +#define HAVE_SYS_STAT_H 1 >> > + >> > +/* Define to 1 if you have the <sys/types.h> header file. */ >> > +#define HAVE_SYS_TYPES_H 1 >> > + >> > +/* Define to 1 if you have the <unistd.h> header file. */ >> > +#define HAVE_UNISTD_H 1 >> > + >> > +/* Define to the address where bug reports for this package should be >> > sent. */ >> > +#define PACKAGE_BUGREPORT "" >> > + >> > +/* Define to the full name of this package. */ >> > +#define PACKAGE_NAME "GNU C Runtime Library" >> > + >> > +/* Define to the full name and version of this package. */ >> > +#define PACKAGE_STRING "GNU C Runtime Library 1.0" >> > + >> > +/* Define to the one symbol short name of this package. */ >> > +#define PACKAGE_TARNAME "libgcc" >> > + >> > +/* Define to the home page for this package. */ >> > +#define PACKAGE_URL "http://www.gnu.org/software/libgcc/" >> > + >> > +/* Define to the version of this package. */ >> > +#define PACKAGE_VERSION "1.0" >> > + >> > +/* The size of `double', as computed by sizeof. */ >> > +#define SIZEOF_DOUBLE 8 >> > + >> > +/* The size of `long double', as computed by sizeof. */ >> > +#define SIZEOF_LONG_DOUBLE 16 >> > + >> > +/* Define to 1 if you have the ANSI C header files. */ >> > +#define STDC_HEADERS 1 >> > + >> > +/* Define to 1 if the target use emutls for thread-local storage. */ >> > +/* #undef USE_EMUTLS */ >> > + >> > +/* Number of bits in a file offset, on hosts where this is settable. */ >> > +/* #undef _FILE_OFFSET_BITS */ >> > + >> > +/* Define for large files, on AIX-style hosts. */ >> > +/* #undef _LARGE_FILES */ >> > diff --git a/libgcov/include/gcov-iov.h b/libgcov/include/gcov-iov.h >> > new file mode 100644 >> > index 0000000..4f4f2f5 >> > --- /dev/null >> > +++ b/libgcov/include/gcov-iov.h >> > @@ -0,0 +1,4 @@ >> > +/* Generated automatically by the program `build/gcov-iov' >> > + from `7.5.0 (7 5) and (*)'. */ >> > + >> > +#define GCOV_VERSION ((gcov_unsigned_t)0x4137352a) /* A75* */ >> > diff --git a/libgcov/include/gthr-default.h >> > b/libgcov/include/gthr-default.h >> > new file mode 100644 >> > index 0000000..a54a32e >> > --- /dev/null >> > +++ b/libgcov/include/gthr-default.h >> > @@ -0,0 +1,889 @@ >> > +/* Threads compatibility routines for libgcc2 and libobjc. */ >> > +/* Compile this one with gcc. */ >> > +/* Copyright (C) 1997-2017 Free Software Foundation, Inc. >> > + >> > +This file is part of GCC. >> > + >> > +GCC is free software; you can redistribute it and/or modify it under >> > +the terms of the GNU General Public License as published by the Free >> > +Software Foundation; either version 3, or (at your option) any later >> > +version. >> > + >> > +GCC is distributed in the hope that it will be useful, but WITHOUT ANY >> > +WARRANTY; without even the implied warranty of MERCHANTABILITY or >> > +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License >> > +for more details. >> > + >> > +Under Section 7 of GPL version 3, you are granted additional >> > +permissions described in the GCC Runtime Library Exception, version >> > +3.1, as published by the Free Software Foundation. >> > + >> > +You should have received a copy of the GNU General Public License and >> > +a copy of the GCC Runtime Library Exception along with this program; >> > +see the files COPYING3 and COPYING.RUNTIME respectively. If not, see >> > +<http://www.gnu.org/licenses/>. */ >> > + >> > +#ifndef GCC_GTHR_POSIX_H >> > +#define GCC_GTHR_POSIX_H >> > + >> > +/* POSIX threads specific definitions. >> > + Easy, since the interface is just one-to-one mapping. */ >> > + >> > +#define __GTHREADS 1 >> > +#define __GTHREADS_CXX0X 1 >> > + >> > +#include <pthread.h> >> > + >> > +#if ((defined(_LIBOBJC) || defined(_LIBOBJC_WEAK)) \ >> > + || !defined(_GTHREAD_USE_MUTEX_TIMEDLOCK)) >> > +# include <unistd.h> >> > +# if defined(_POSIX_TIMEOUTS) && _POSIX_TIMEOUTS >= 0 >> > +# define _GTHREAD_USE_MUTEX_TIMEDLOCK 1 >> > +# else >> > +# define _GTHREAD_USE_MUTEX_TIMEDLOCK 0 >> > +# endif >> > +#endif >> > + >> > +typedef pthread_t __gthread_t; >> > +typedef pthread_key_t __gthread_key_t; >> > +typedef pthread_once_t __gthread_once_t; >> > +typedef pthread_mutex_t __gthread_mutex_t; >> > +typedef pthread_mutex_t __gthread_recursive_mutex_t; >> > +typedef pthread_cond_t __gthread_cond_t; >> > +typedef struct timespec __gthread_time_t; >> > + >> > +/* POSIX like conditional variables are supported. Please look at >> > comments >> > + in gthr.h for details. */ >> > +#define __GTHREAD_HAS_COND 1 >> > + >> > +#define __GTHREAD_MUTEX_INIT PTHREAD_MUTEX_INITIALIZER >> > +#define __GTHREAD_MUTEX_INIT_FUNCTION __gthread_mutex_init_function >> > +#define __GTHREAD_ONCE_INIT PTHREAD_ONCE_INIT >> > +#if defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER) >> > +#define __GTHREAD_RECURSIVE_MUTEX_INIT PTHREAD_RECURSIVE_MUTEX_INITIALIZER >> > +#elif defined(PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) >> > +#define __GTHREAD_RECURSIVE_MUTEX_INIT >> > PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP >> > +#else >> > +#define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION >> > __gthread_recursive_mutex_init_function >> > +#endif >> > +#define __GTHREAD_COND_INIT PTHREAD_COND_INITIALIZER >> > +#define __GTHREAD_TIME_INIT {0,0} >> > + >> > +#ifdef _GTHREAD_USE_MUTEX_INIT_FUNC >> > +# undef __GTHREAD_MUTEX_INIT >> > +#endif >> > +#ifdef _GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC >> > +# undef __GTHREAD_RECURSIVE_MUTEX_INIT >> > +# undef __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION >> > +# define __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION >> > __gthread_recursive_mutex_init_function >> > +#endif >> > +#ifdef _GTHREAD_USE_COND_INIT_FUNC >> > +# undef __GTHREAD_COND_INIT >> > +# define __GTHREAD_COND_INIT_FUNCTION __gthread_cond_init_function >> > +#endif >> > + >> > +#if SUPPORTS_WEAK && GTHREAD_USE_WEAK >> > +# ifndef __gthrw_pragma >> > +# define __gthrw_pragma(pragma) >> > +# endif >> > +# define __gthrw2(name,name2,type) \ >> > + static __typeof(type) name __attribute__ ((__weakref__(#name2))); \ >> > + __gthrw_pragma(weak type) >> > +# define __gthrw_(name) __gthrw_ ## name >> > +#else >> > +# define __gthrw2(name,name2,type) >> > +# define __gthrw_(name) name >> > +#endif >> > + >> > +/* Typically, __gthrw_foo is a weak reference to symbol foo. */ >> > +#define __gthrw(name) __gthrw2(__gthrw_ ## name,name,name) >> > + >> > +__gthrw(pthread_once) >> > +__gthrw(pthread_getspecific) >> > +__gthrw(pthread_setspecific) >> > + >> > +__gthrw(pthread_create) >> > +__gthrw(pthread_join) >> > +__gthrw(pthread_equal) >> > +__gthrw(pthread_self) >> > +__gthrw(pthread_detach) >> > +#ifndef __BIONIC__ >> > +__gthrw(pthread_cancel) >> > +#endif >> > +__gthrw(sched_yield) >> > + >> > +__gthrw(pthread_mutex_lock) >> > +__gthrw(pthread_mutex_trylock) >> > +#if _GTHREAD_USE_MUTEX_TIMEDLOCK >> > +__gthrw(pthread_mutex_timedlock) >> > +#endif >> > +__gthrw(pthread_mutex_unlock) >> > +__gthrw(pthread_mutex_init) >> > +__gthrw(pthread_mutex_destroy) >> > + >> > +__gthrw(pthread_cond_init) >> > +__gthrw(pthread_cond_broadcast) >> > +__gthrw(pthread_cond_signal) >> > +__gthrw(pthread_cond_wait) >> > +__gthrw(pthread_cond_timedwait) >> > +__gthrw(pthread_cond_destroy) >> > + >> > +__gthrw(pthread_key_create) >> > +__gthrw(pthread_key_delete) >> > +__gthrw(pthread_mutexattr_init) >> > +__gthrw(pthread_mutexattr_settype) >> > +__gthrw(pthread_mutexattr_destroy) >> > + >> > + >> > +#if defined(_LIBOBJC) || defined(_LIBOBJC_WEAK) >> > +/* Objective-C. */ >> > +__gthrw(pthread_exit) >> > +#ifdef _POSIX_PRIORITY_SCHEDULING >> > +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING >> > +__gthrw(sched_get_priority_max) >> > +__gthrw(sched_get_priority_min) >> > +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ >> > +#endif /* _POSIX_PRIORITY_SCHEDULING */ >> > +__gthrw(pthread_attr_destroy) >> > +__gthrw(pthread_attr_init) >> > +__gthrw(pthread_attr_setdetachstate) >> > +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING >> > +__gthrw(pthread_getschedparam) >> > +__gthrw(pthread_setschedparam) >> > +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ >> > +#endif /* _LIBOBJC || _LIBOBJC_WEAK */ >> > + >> > +#if SUPPORTS_WEAK && GTHREAD_USE_WEAK >> > + >> > +/* On Solaris 2.6 up to 9, the libc exposes a POSIX threads interface >> > even if >> > + -pthreads is not specified. The functions are dummies and most return >> > an >> > + error value. However pthread_once returns 0 without invoking the >> > routine >> > + it is passed so we cannot pretend that the interface is active if >> > -pthreads >> > + is not specified. On Solaris 2.5.1, the interface is not exposed at >> > all so >> > + we need to play the usual game with weak symbols. On Solaris 10 and >> > up, a >> > + working interface is always exposed. On FreeBSD 6 and later, libc also >> > + exposes a dummy POSIX threads interface, similar to what Solaris 2.6 up >> > + to 9 does. FreeBSD >= 700014 even provides a pthread_cancel stub in >> > libc, >> > + which means the alternate __gthread_active_p below cannot be used >> > there. */ >> > + >> > +#if defined(__FreeBSD__) || (defined(__sun) && defined(__svr4__)) >> > + >> > +static volatile int __gthread_active = -1; >> > + >> > +static void >> > +__gthread_trigger (void) >> > +{ >> > + __gthread_active = 1; >> > +} >> > + >> > +static inline int >> > +__gthread_active_p (void) >> > +{ >> > + static pthread_mutex_t __gthread_active_mutex = >> > PTHREAD_MUTEX_INITIALIZER; >> > + static pthread_once_t __gthread_active_once = PTHREAD_ONCE_INIT; >> > + >> > + /* Avoid reading __gthread_active twice on the main code path. */ >> > + int __gthread_active_latest_value = __gthread_active; >> > + >> > + /* This test is not protected to avoid taking a lock on the main code >> > + path so every update of __gthread_active in a threaded program must >> > + be atomic with regard to the result of the test. */ >> > + if (__builtin_expect (__gthread_active_latest_value < 0, 0)) >> > + { >> > + if (__gthrw_(pthread_once)) >> > + { >> > + /* If this really is a threaded program, then we must ensure that >> > + __gthread_active has been set to 1 before exiting this block. >> > */ >> > + __gthrw_(pthread_mutex_lock) (&__gthread_active_mutex); >> > + __gthrw_(pthread_once) (&__gthread_active_once, >> > __gthread_trigger); >> > + __gthrw_(pthread_mutex_unlock) (&__gthread_active_mutex); >> > + } >> > + >> > + /* Make sure we'll never enter this block again. */ >> > + if (__gthread_active < 0) >> > + __gthread_active = 0; >> > + >> > + __gthread_active_latest_value = __gthread_active; >> > + } >> > + >> > + return __gthread_active_latest_value != 0; >> > +} >> > + >> > +#else /* neither FreeBSD nor Solaris */ >> > + >> > +/* For a program to be multi-threaded the only thing that it certainly >> > must >> > + be using is pthread_create. However, there may be other libraries that >> > + intercept pthread_create with their own definitions to wrap pthreads >> > + functionality for some purpose. In those cases, pthread_create being >> > + defined might not necessarily mean that libpthread is actually linked >> > + in. >> > + >> > + For the GNU C library, we can use a known internal name. This is >> > always >> > + available in the ABI, but no other library would define it. That is >> > + ideal, since any public pthread function might be intercepted just as >> > + pthread_create might be. __pthread_key_create is an "internal" >> > + implementation symbol, but it is part of the public exported ABI. >> > Also, >> > + it's among the symbols that the static libpthread.a always links in >> > + whenever pthread_create is used, so there is no danger of a false >> > + negative result in any statically-linked, multi-threaded program. >> > + >> > + For others, we choose pthread_cancel as a function that seems unlikely >> > + to be redefined by an interceptor library. The bionic (Android) C >> > + library does not provide pthread_cancel, so we do use pthread_create >> > + there (and interceptor libraries lose). */ >> > + >> > +#ifdef __GLIBC__ >> > +__gthrw2(__gthrw_(__pthread_key_create), >> > + __pthread_key_create, >> > + pthread_key_create) >> > +# define GTHR_ACTIVE_PROXY __gthrw_(__pthread_key_create) >> > +#elif defined (__BIONIC__) >> > +# define GTHR_ACTIVE_PROXY __gthrw_(pthread_create) >> > +#else >> > +# define GTHR_ACTIVE_PROXY __gthrw_(pthread_cancel) >> > +#endif >> > + >> > +static inline int >> > +__gthread_active_p (void) >> > +{ >> > + static void *const __gthread_active_ptr >> > + = __extension__ (void *) >HR_ACTIVE_PROXY; >> > + return __gthread_active_ptr != 0; >> > +} >> > + >> > +#endif /* FreeBSD or Solaris */ >> > + >> > +#else /* not SUPPORTS_WEAK */ >> > + >> > +/* Similar to Solaris, HP-UX 11 for PA-RISC provides stubs for pthread >> > + calls in shared flavors of the HP-UX C library. Most of the stubs >> > + have no functionality. The details are described in the "libc >> > cumulative >> > + patch" for each subversion of HP-UX 11. There are two special >> > interfaces >> > + provided for checking whether an application is linked to a shared >> > pthread >> > + library or not. However, these interfaces aren't available in early >> > + libpthread libraries. We also need a test that works for archive >> > + libraries. We can't use pthread_once as some libc versions call the >> > + init function. We also can't use pthread_create or pthread_attr_init >> > + as these create a thread and thereby prevent changing the default stack >> > + size. The function pthread_default_stacksize_np is available in both >> > + the archive and shared versions of libpthread. It can be used to >> > + determine the default pthread stack size. There is a stub in some >> > + shared libc versions which returns a zero size if pthreads are not >> > + active. We provide an equivalent stub to handle cases where libc >> > + doesn't provide one. */ >> > + >> > +#if defined(__hppa__) && defined(__hpux__) >> > + >> > +static volatile int __gthread_active = -1; >> > + >> > +static inline int >> > +__gthread_active_p (void) >> > +{ >> > + /* Avoid reading __gthread_active twice on the main code path. */ >> > + int __gthread_active_latest_value = __gthread_active; >> > + size_t __s; >> > + >> > + if (__builtin_expect (__gthread_active_latest_value < 0, 0)) >> > + { >> > + pthread_default_stacksize_np (0, &__s); >> > + __gthread_active = __s ? 1 : 0; >> > + __gthread_active_latest_value = __gthread_active; >> > + } >> > + >> > + return __gthread_active_latest_value != 0; >> > +} >> > + >> > +#else /* not hppa-hpux */ >> > + >> > +static inline int >> > +__gthread_active_p (void) >> > +{ >> > + return 1; >> > +} >> > + >> > +#endif /* hppa-hpux */ >> > + >> > +#endif /* SUPPORTS_WEAK */ >> > + >> > +#ifdef _LIBOBJC >> > + >> > +/* This is the config.h file in libobjc/ */ >> > +#include <config.h> >> > + >> > +#ifdef HAVE_SCHED_H >> > +# include <sched.h> >> > +#endif >> > + >> > +/* Key structure for maintaining thread specific storage */ >> > +static pthread_key_t _objc_thread_storage; >> > +static pthread_attr_t _objc_thread_attribs; >> > + >> > +/* Thread local storage for a single thread */ >> > +static void *thread_local_storage = NULL; >> > + >> > +/* Backend initialization functions */ >> > + >> > +/* Initialize the threads subsystem. */ >> > +static inline int >> > +__gthread_objc_init_thread_system (void) >> > +{ >> > + if (__gthread_active_p ()) >> > + { >> > + /* Initialize the thread storage key. */ >> > + if (__gthrw_(pthread_key_create) (&_objc_thread_storage, NULL) == 0) >> > + { >> > + /* The normal default detach state for threads is >> > + * PTHREAD_CREATE_JOINABLE which causes threads to not die >> > + * when you think they should. */ >> > + if (__gthrw_(pthread_attr_init) (&_objc_thread_attribs) == 0 >> > + && __gthrw_(pthread_attr_setdetachstate) >> > (&_objc_thread_attribs, >> > + PTHREAD_CREATE_DETACHED) == >> > 0) >> > + return 0; >> > + } >> > + } >> > + >> > + return -1; >> > +} >> > + >> > +/* Close the threads subsystem. */ >> > +static inline int >> > +__gthread_objc_close_thread_system (void) >> > +{ >> > + if (__gthread_active_p () >> > + && __gthrw_(pthread_key_delete) (_objc_thread_storage) == 0 >> > + && __gthrw_(pthread_attr_destroy) (&_objc_thread_attribs) == 0) >> > + return 0; >> > + >> > + return -1; >> > +} >> > + >> > +/* Backend thread functions */ >> > + >> > +/* Create a new thread of execution. */ >> > +static inline objc_thread_t >> > +__gthread_objc_thread_detach (void (*func)(void *), void *arg) >> > +{ >> > + objc_thread_t thread_id; >> > + pthread_t new_thread_handle; >> > + >> > + if (!__gthread_active_p ()) >> > + return NULL; >> > + >> > + if (!(__gthrw_(pthread_create) (&new_thread_handle, >> > &_objc_thread_attribs, >> > + (void *) func, arg))) >> > + thread_id = (objc_thread_t) new_thread_handle; >> > + else >> > + thread_id = NULL; >> > + >> > + return thread_id; >> > +} >> > + >> > +/* Set the current thread's priority. */ >> > +static inline int >> > +__gthread_objc_thread_set_priority (int priority) >> > +{ >> > + if (!__gthread_active_p ()) >> > + return -1; >> > + else >> > + { >> > +#ifdef _POSIX_PRIORITY_SCHEDULING >> > +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING >> > + pthread_t thread_id = __gthrw_(pthread_self) (); >> > + int policy; >> > + struct sched_param params; >> > + int priority_min, priority_max; >> > + >> > + if (__gthrw_(pthread_getschedparam) (thread_id, &policy, ¶ms) >> > == 0) >> > + { >> > + if ((priority_max = __gthrw_(sched_get_priority_max) (policy)) >> > == -1) >> > + return -1; >> > + >> > + if ((priority_min = __gthrw_(sched_get_priority_min) (policy)) >> > == -1) >> > + return -1; >> > + >> > + if (priority > priority_max) >> > + priority = priority_max; >> > + else if (priority < priority_min) >> > + priority = priority_min; >> > + params.sched_priority = priority; >> > + >> > + /* >> > + * The solaris 7 and several other man pages incorrectly state >> > that >> > + * this should be a pointer to policy but pthread.h is >> > universally >> > + * at odds with this. >> > + */ >> > + if (__gthrw_(pthread_setschedparam) (thread_id, policy, ¶ms) >> > == 0) >> > + return 0; >> > + } >> > +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ >> > +#endif /* _POSIX_PRIORITY_SCHEDULING */ >> > + return -1; >> > + } >> > +} >> > + >> > +/* Return the current thread's priority. */ >> > +static inline int >> > +__gthread_objc_thread_get_priority (void) >> > +{ >> > +#ifdef _POSIX_PRIORITY_SCHEDULING >> > +#ifdef _POSIX_THREAD_PRIORITY_SCHEDULING >> > + if (__gthread_active_p ()) >> > + { >> > + int policy; >> > + struct sched_param params; >> > + >> > + if (__gthrw_(pthread_getschedparam) (__gthrw_(pthread_self) (), >> > &policy, ¶ms) == 0) >> > + return params.sched_priority; >> > + else >> > + return -1; >> > + } >> > + else >> > +#endif /* _POSIX_THREAD_PRIORITY_SCHEDULING */ >> > +#endif /* _POSIX_PRIORITY_SCHEDULING */ >> > + return OBJC_THREAD_INTERACTIVE_PRIORITY; >> > +} >> > + >> > +/* Yield our process time to another thread. */ >> > +static inline void >> > +__gthread_objc_thread_yield (void) >> > +{ >> > + if (__gthread_active_p ()) >> > + __gthrw_(sched_yield) (); >> > +} >> > + >> > +/* Terminate the current thread. */ >> > +static inline int >> > +__gthread_objc_thread_exit (void) >> > +{ >> > + if (__gthread_active_p ()) >> > + /* exit the thread */ >> > + __gthrw_(pthread_exit) (&__objc_thread_exit_status); >> > + >> > + /* Failed if we reached here */ >> > + return -1; >> > +} >> > + >> > +/* Returns an integer value which uniquely describes a thread. */ >> > +static inline objc_thread_t >> > +__gthread_objc_thread_id (void) >> > +{ >> > + if (__gthread_active_p ()) >> > + return (objc_thread_t) __gthrw_(pthread_self) (); >> > + else >> > + return (objc_thread_t) 1; >> > +} >> > + >> > +/* Sets the thread's local storage pointer. */ >> > +static inline int >> > +__gthread_objc_thread_set_data (void *value) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_setspecific) (_objc_thread_storage, value); >> > + else >> > + { >> > + thread_local_storage = value; >> > + return 0; >> > + } >> > +} >> > + >> > +/* Returns the thread's local storage pointer. */ >> > +static inline void * >> > +__gthread_objc_thread_get_data (void) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_getspecific) (_objc_thread_storage); >> > + else >> > + return thread_local_storage; >> > +} >> > + >> > +/* Backend mutex functions */ >> > + >> > +/* Allocate a mutex. */ >> > +static inline int >> > +__gthread_objc_mutex_allocate (objc_mutex_t mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + { >> > + mutex->backend = objc_malloc (sizeof (pthread_mutex_t)); >> > + >> > + if (__gthrw_(pthread_mutex_init) ((pthread_mutex_t *) >> > mutex->backend, NULL)) >> > + { >> > + objc_free (mutex->backend); >> > + mutex->backend = NULL; >> > + return -1; >> > + } >> > + } >> > + >> > + return 0; >> > +} >> > + >> > +/* Deallocate a mutex. */ >> > +static inline int >> > +__gthread_objc_mutex_deallocate (objc_mutex_t mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + { >> > + int count; >> > + >> > + /* >> > + * Posix Threads specifically require that the thread be unlocked >> > + * for __gthrw_(pthread_mutex_destroy) to work. >> > + */ >> > + >> > + do >> > + { >> > + count = __gthrw_(pthread_mutex_unlock) ((pthread_mutex_t *) >> > mutex->backend); >> > + if (count < 0) >> > + return -1; >> > + } >> > + while (count); >> > + >> > + if (__gthrw_(pthread_mutex_destroy) ((pthread_mutex_t *) >> > mutex->backend)) >> > + return -1; >> > + >> > + objc_free (mutex->backend); >> > + mutex->backend = NULL; >> > + } >> > + return 0; >> > +} >> > + >> > +/* Grab a lock on a mutex. */ >> > +static inline int >> > +__gthread_objc_mutex_lock (objc_mutex_t mutex) >> > +{ >> > + if (__gthread_active_p () >> > + && __gthrw_(pthread_mutex_lock) ((pthread_mutex_t *) >> > mutex->backend) != 0) >> > + { >> > + return -1; >> > + } >> > + >> > + return 0; >> > +} >> > + >> > +/* Try to grab a lock on a mutex. */ >> > +static inline int >> > +__gthread_objc_mutex_trylock (objc_mutex_t mutex) >> > +{ >> > + if (__gthread_active_p () >> > + && __gthrw_(pthread_mutex_trylock) ((pthread_mutex_t *) >> > mutex->backend) != 0) >> > + { >> > + return -1; >> > + } >> > + >> > + return 0; >> > +} >> > + >> > +/* Unlock the mutex */ >> > +static inline int >> > +__gthread_objc_mutex_unlock (objc_mutex_t mutex) >> > +{ >> > + if (__gthread_active_p () >> > + && __gthrw_(pthread_mutex_unlock) ((pthread_mutex_t *) >> > mutex->backend) != 0) >> > + { >> > + return -1; >> > + } >> > + >> > + return 0; >> > +} >> > + >> > +/* Backend condition mutex functions */ >> > + >> > +/* Allocate a condition. */ >> > +static inline int >> > +__gthread_objc_condition_allocate (objc_condition_t condition) >> > +{ >> > + if (__gthread_active_p ()) >> > + { >> > + condition->backend = objc_malloc (sizeof (pthread_cond_t)); >> > + >> > + if (__gthrw_(pthread_cond_init) ((pthread_cond_t *) >> > condition->backend, NULL)) >> > + { >> > + objc_free (condition->backend); >> > + condition->backend = NULL; >> > + return -1; >> > + } >> > + } >> > + >> > + return 0; >> > +} >> > + >> > +/* Deallocate a condition. */ >> > +static inline int >> > +__gthread_objc_condition_deallocate (objc_condition_t condition) >> > +{ >> > + if (__gthread_active_p ()) >> > + { >> > + if (__gthrw_(pthread_cond_destroy) ((pthread_cond_t *) >> > condition->backend)) >> > + return -1; >> > + >> > + objc_free (condition->backend); >> > + condition->backend = NULL; >> > + } >> > + return 0; >> > +} >> > + >> > +/* Wait on the condition */ >> > +static inline int >> > +__gthread_objc_condition_wait (objc_condition_t condition, objc_mutex_t >> > mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_cond_wait) ((pthread_cond_t *) >> > condition->backend, >> > + (pthread_mutex_t *) mutex->backend); >> > + else >> > + return 0; >> > +} >> > + >> > +/* Wake up all threads waiting on this condition. */ >> > +static inline int >> > +__gthread_objc_condition_broadcast (objc_condition_t condition) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_cond_broadcast) ((pthread_cond_t *) >> > condition->backend); >> > + else >> > + return 0; >> > +} >> > + >> > +/* Wake up one thread waiting on this condition. */ >> > +static inline int >> > +__gthread_objc_condition_signal (objc_condition_t condition) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_cond_signal) ((pthread_cond_t *) >> > condition->backend); >> > + else >> > + return 0; >> > +} >> > + >> > +#else /* _LIBOBJC */ >> > + >> > +static inline int >> > +__gthread_create (__gthread_t *__threadid, void *(*__func) (void*), >> > + void *__args) >> > +{ >> > + return __gthrw_(pthread_create) (__threadid, NULL, __func, __args); >> > +} >> > + >> > +static inline int >> > +__gthread_join (__gthread_t __threadid, void **__value_ptr) >> > +{ >> > + return __gthrw_(pthread_join) (__threadid, __value_ptr); >> > +} >> > + >> > +static inline int >> > +__gthread_detach (__gthread_t __threadid) >> > +{ >> > + return __gthrw_(pthread_detach) (__threadid); >> > +} >> > + >> > +static inline int >> > +__gthread_equal (__gthread_t __t1, __gthread_t __t2) >> > +{ >> > + return __gthrw_(pthread_equal) (__t1, __t2); >> > +} >> > + >> > +static inline __gthread_t >> > +__gthread_self (void) >> > +{ >> > + return __gthrw_(pthread_self) (); >> > +} >> > + >> > +static inline int >> > +__gthread_yield (void) >> > +{ >> > + return __gthrw_(sched_yield) (); >> > +} >> > + >> > +static inline int >> > +__gthread_once (__gthread_once_t *__once, void (*__func) (void)) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_once) (__once, __func); >> > + else >> > + return -1; >> > +} >> > + >> > +static inline int >> > +__gthread_key_create (__gthread_key_t *__key, void (*__dtor) (void *)) >> > +{ >> > + return __gthrw_(pthread_key_create) (__key, __dtor); >> > +} >> > + >> > +static inline int >> > +__gthread_key_delete (__gthread_key_t __key) >> > +{ >> > + return __gthrw_(pthread_key_delete) (__key); >> > +} >> > + >> > +static inline void * >> > +__gthread_getspecific (__gthread_key_t __key) >> > +{ >> > + return __gthrw_(pthread_getspecific) (__key); >> > +} >> > + >> > +static inline int >> > +__gthread_setspecific (__gthread_key_t __key, const void *__ptr) >> > +{ >> > + return __gthrw_(pthread_setspecific) (__key, __ptr); >> > +} >> > + >> > +static inline void >> > +__gthread_mutex_init_function (__gthread_mutex_t *__mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + __gthrw_(pthread_mutex_init) (__mutex, NULL); >> > +} >> > + >> > +static inline int >> > +__gthread_mutex_destroy (__gthread_mutex_t *__mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_mutex_destroy) (__mutex); >> > + else >> > + return 0; >> > +} >> > + >> > +static inline int >> > +__gthread_mutex_lock (__gthread_mutex_t *__mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_mutex_lock) (__mutex); >> > + else >> > + return 0; >> > +} >> > + >> > +static inline int >> > +__gthread_mutex_trylock (__gthread_mutex_t *__mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_mutex_trylock) (__mutex); >> > + else >> > + return 0; >> > +} >> > + >> > +#if _GTHREAD_USE_MUTEX_TIMEDLOCK >> > +static inline int >> > +__gthread_mutex_timedlock (__gthread_mutex_t *__mutex, >> > + const __gthread_time_t *__abs_timeout) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_mutex_timedlock) (__mutex, __abs_timeout); >> > + else >> > + return 0; >> > +} >> > +#endif >> > + >> > +static inline int >> > +__gthread_mutex_unlock (__gthread_mutex_t *__mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + return __gthrw_(pthread_mutex_unlock) (__mutex); >> > + else >> > + return 0; >> > +} >> > + >> > +#if !defined( PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP) \ >> > + || defined(_GTHREAD_USE_RECURSIVE_MUTEX_INIT_FUNC) >> > +static inline int >> > +__gthread_recursive_mutex_init_function (__gthread_recursive_mutex_t >> > *__mutex) >> > +{ >> > + if (__gthread_active_p ()) >> > + { >> > + pthread_mutexattr_t __attr; >> > + int __r; >> > + >> > + __r = __gthrw_(pthread_mutexattr_init) (&__attr); >> > + if (!__r) >> > + __r = __gthrw_(pthread_mutexattr_settype) (&__attr, >> > + >> > PTHREAD_MUTEX_RECURSIVE); >> > + if (!__r) >> > + __r = __gthrw_(pthread_mutex_init) (__mutex, &__attr); >> > + if (!__r) >> > + __r = __gthrw_(pthread_mutexattr_destroy) (&__attr); >> > + return __r; >> > + } >> > + return 0; >> > +} >> > +#endif >> > + >> > +static inline int >> > +__gthread_recursive_mutex_lock (__gthread_recursive_mutex_t *__mutex) >> > +{ >> > + return __gthread_mutex_lock (__mutex); >> > +} >> > + >> > +static inline int >> > +__gthread_recursive_mutex_trylock (__gthread_recursive_mutex_t *__mutex) >> > +{ >> > + return __gthread_mutex_trylock (__mutex); >> > +} >> > + >> > +#if _GTHREAD_USE_MUTEX_TIMEDLOCK >> > +static inline int >> > +__gthread_recursive_mutex_timedlock (__gthread_recursive_mutex_t *__mutex, >> > + const __gthread_time_t *__abs_timeout) >> > +{ >> > + return __gthread_mutex_timedlock (__mutex, __abs_timeout); >> > +} >> > +#endif >> > + >> > +static inline int >> > +__gthread_recursive_mutex_unlock (__gthread_recursive_mutex_t *__mutex) >> > +{ >> > + return __gthread_mutex_unlock (__mutex); >> > +} >> > + >> > +static inline int >> > +__gthread_recursive_mutex_destroy (__gthread_recursive_mutex_t *__mutex) >> > +{ >> > + return __gthread_mutex_destroy (__mutex); >> > +} >> > + >> > +#ifdef _GTHREAD_USE_COND_INIT_FUNC >> > +static inline void >> > +__gthread_cond_init_function (__gthread_cond_t *__cond) >> > +{ >> > + if (__gthread_active_p ()) >> > + __gthrw_(pthread_cond_init) (__cond, NULL); >> > +} >> > +#endif >> > + >> > +static inline int >> > +__gthread_cond_broadcast (__gthread_cond_t *__cond) >> > +{ >> > + return __gthrw_(pthread_cond_broadcast) (__cond); >> > +} >> > + >> > +static inline int >> > +__gthread_cond_signal (__gthread_cond_t *__cond) >> > +{ >> > + return __gthrw_(pthread_cond_signal) (__cond); >> > +} >> > + >> > +static inline int >> > +__gthread_cond_wait (__gthread_cond_t *__cond, __gthread_mutex_t *__mutex) >> > +{ >> > + return __gthrw_(pthread_cond_wait) (__cond, __mutex); >> > +} >> > + >> > +static inline int >> > +__gthread_cond_timedwait (__gthread_cond_t *__cond, __gthread_mutex_t >> > *__mutex, >> > + const __gthread_time_t *__abs_timeout) >> > +{ >> > + return __gthrw_(pthread_cond_timedwait) (__cond, __mutex, >> > __abs_timeout); >> > +} >> > + >> > +static inline int >> > +__gthread_cond_wait_recursive (__gthread_cond_t *__cond, >> > + __gthread_recursive_mutex_t *__mutex) >> > +{ >> > + return __gthread_cond_wait (__cond, __mutex); >> > +} >> > + >> > +static inline int >> > +__gthread_cond_destroy (__gthread_cond_t* __cond) >> > +{ >> > + return __gthrw_(pthread_cond_destroy) (__cond); >> > +} >> > + >> > +#endif /* _LIBOBJC */ >> > + >> > +#endif /* ! GCC_GTHR_POSIX_H */ >> > diff --git a/libgcov/include/libgcc_tm.h b/libgcov/include/libgcc_tm.h >> > new file mode 100644 >> > index 0000000..038a60b >> > --- /dev/null >> > +++ b/libgcov/include/libgcc_tm.h >> > @@ -0,0 +1,6 @@ >> > +#ifndef LIBGCC_TM_H >> > +#define LIBGCC_TM_H >> > +/* Automatically generated by mkheader.sh. */ >> > +#include "config/i386/elf-lib.h" >> > +#include "config/i386/value-unwind.h" >> > +#endif /* LIBGCC_TM_H */ >> > diff --git a/libgcov/include/tconfig.h b/libgcov/include/tconfig.h >> > new file mode 100644 >> > index 0000000..7ec80a1 >> > --- /dev/null >> > +++ b/libgcov/include/tconfig.h >> > @@ -0,0 +1,10 @@ >> > +#ifndef GCC_TCONFIG_H >> > +#define GCC_TCONFIG_H >> > +#ifndef USED_FOR_TARGET >> > +# define USED_FOR_TARGET >> > +#endif >> > +#include "auto-host.h" >> > +#ifdef IN_GCC >> > +# include "ansidecl.h" >> > +#endif >> > +#endif /* GCC_TCONFIG_H */ >> > diff --git a/libgcov/include/tm.h b/libgcov/include/tm.h >> > new file mode 100644 >> > index 0000000..611fa76 >> > --- /dev/null >> > +++ b/libgcov/include/tm.h >> > @@ -0,0 +1,52 @@ >> > +#ifndef GCC_TM_H >> > +#define GCC_TM_H >> > +#ifndef LIBC_GLIBC >> > +# define LIBC_GLIBC 1 >> > +#endif >> > +#ifndef LIBC_UCLIBC >> > +# define LIBC_UCLIBC 2 >> > +#endif >> > +#ifndef LIBC_BIONIC >> > +# define LIBC_BIONIC 3 >> > +#endif >> > +#ifndef LIBC_MUSL >> > +# define LIBC_MUSL 4 >> > +#endif >> > +#ifndef DEFAULT_LIBC >> > +# define DEFAULT_LIBC LIBC_GLIBC >> > +#endif >> > +#ifndef ANDROID_DEFAULT >> > +# define ANDROID_DEFAULT 0 >> > +#endif >> > +#ifdef IN_GCC >> > +# include "options.h" >> > +# include "insn-constants.h" >> > +# include "config/vxworks-dummy.h" >> > +# include "config/i386/biarch64.h" >> > +# include "config/i386/i386.h" >> > +# include "config/i386/unix.h" >> > +# include "config/i386/att.h" >> > +# include "config/dbxelf.h" >> > +# include "config/elfos.h" >> > +# include "config/gnu-user.h" >> > +# include "config/glibc-stdint.h" >> > +# include "config/i386/x86-64.h" >> > +# include "config/i386/gnu-user-common.h" >> > +# include "config/i386/gnu-user64.h" >> > +# include "config/linux.h" >> > +# include "config/linux-android.h" >> > +# include "config/i386/linux-common.h" >> > +# include "config/i386/linux64.h" >> > +# include "config/initfini-array.h" >> > +#endif >> > +#if defined IN_GCC && !defined GENERATOR_FILE && !defined USED_FOR_TARGET >> > +# include "insn-flags.h" >> > +#endif >> > +#if defined IN_GCC && !defined GENERATOR_FILE >> > +# include "insn-modes.h" >> > +#endif >> > +#if defined IN_GCC && defined GENERATOR_FILE && !defined BITS_PER_UNIT >> > +#include "machmode.h" >> > +#endif >> > +# include "defaults.h" >> > +#endif /* GCC_TM_H */ >> > -- >> > 2.17.1 >> > >> >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |