|
[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 |