[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 *) &GTHR_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, &params) 
>> > == 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, &params) 
>> > == 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, &params) == 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
>> >
>> >



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.