libffi-clib 3.5.2 → 3.6.0
raw patch · 65 files changed
+32472/−30784 lines, 65 files
Files
- aclocal.m4 +2129/−782
- compile +4/−7
- config.guess +22/−80
- config.sub +80/−163
- configure +20818/−23124
- configure.ac +13/−2
- configure.host +7/−2
- fficonfig.h.in +15/−6
- include/ffi.h.in +13/−1
- install-sh +7/−7
- libffi-clib.cabal +1/−1
- ltmain.sh +358/−439
- m4/libtool.m4 +193/−257
- m4/ltoptions.m4 +38/−68
- m4/ltsugar.m4 +1/−1
- m4/ltversion.m4 +6/−6
- m4/lt~obsolete.m4 +1/−1
- src/aarch64/ffi.c +50/−7
- src/aarch64/ffitarget.h +2/−0
- src/aarch64/internal.h +3/−3
- src/aarch64/sysv.S +45/−14
- src/alpha/ffi.c +11/−3
- src/alpha/ffitarget.h +1/−0
- src/arm/sysv.S +1/−1
- src/closures.c +3/−5
- src/dlmalloc.c +6439/−5168
- src/frv/ffi.c +2/−2
- src/ia64/ffi.c +2/−2
- src/loongarch/ffi.c +628/−0
- src/loongarch/ffitarget.h +97/−0
- src/loongarch/sysv.S +329/−0
- src/moxie/ffi.c +1/−1
- src/or1k/ffi.c +1/−1
- src/or1k/ffitarget.h +1/−1
- src/pa/ffi.c +1/−1
- src/powerpc/aix_closure.S +57/−105
- src/powerpc/ffi.c +20/−0
- src/powerpc/ffi_darwin.c +41/−1
- src/powerpc/ffi_linux64.c +405/−15
- src/powerpc/ffi_powerpc.h +69/−0
- src/powerpc/ffi_sysv.c +59/−8
- src/powerpc/ffitarget.h +8/−35
- src/powerpc/linux64_closure.S +74/−148
- src/powerpc/ppc_closure.S +56/−182
- src/riscv/ffi.c +85/−28
- src/riscv/ffitarget.h +2/−1
- src/riscv/internal.h +7/−0
- src/riscv/sysv.S +27/−3
- src/s390/ffi.c +27/−25
- src/s390/ffitarget.h +1/−0
- src/sh/sysv.S +3/−1
- src/sh64/ffi.c +1/−1
- src/sparc/ffi.c +1/−1
- src/sparc/ffi64.c +1/−1
- src/types.c +13/−0
- src/x86/ffi.c +2/−2
- src/x86/ffi64.c +62/−1
- src/x86/ffitarget.h +4/−3
- src/x86/ffiw64.c +25/−3
- src/x86/internal64.h +2/−1
- src/x86/sysv.S +62/−60
- src/x86/sysv_intel.S +5/−3
- src/x86/unix64.S +18/−0
- src/x86/win64.S +6/−0
- src/x86/win64_intel.S +6/−0
aclocal.m4 view
@@ -1,785 +1,2132 @@-# generated automatically by aclocal 1.18.1 -*- Autoconf -*---# Copyright (C) 1996-2025 Free Software Foundation, Inc.--# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# This program is distributed in the hope that it will be useful,-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A-# PARTICULAR PURPOSE.--m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])-# Figure out how to run the assembler. -*- Autoconf -*---# Copyright (C) 2001-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# AM_PROG_AS-# -----------AC_DEFUN([AM_PROG_AS],-[# By default we simply use the C compiler to build assembly code.-AC_REQUIRE([AC_PROG_CC])-test "${CCAS+set}" = set || CCAS=$CC-test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS-AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)])-AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)])-_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl-])--# AM_AUX_DIR_EXPAND -*- Autoconf -*---# Copyright (C) 2001-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets-# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to-# '$srcdir', '$srcdir/..', or '$srcdir/../..'.-#-# Of course, Automake must honor this variable whenever it calls a-# tool from the auxiliary directory. The problem is that $srcdir (and-# therefore $ac_aux_dir as well) can be either absolute or relative,-# depending on how configure is run. This is pretty annoying, since-# it makes $ac_aux_dir quite unusable in subdirectories: in the top-# source directory, any form will work fine, but in subdirectories a-# relative path needs to be adjusted first.-#-# $ac_aux_dir/missing-# fails when called from a subdirectory if $ac_aux_dir is relative-# $top_srcdir/$ac_aux_dir/missing-# fails if $ac_aux_dir is absolute,-# fails when called from a subdirectory in a VPATH build with-# a relative $ac_aux_dir-#-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir-# are both prefixed by $srcdir. In an in-source build this is usually-# harmless because $srcdir is '.', but things will broke when you-# start a VPATH build or use an absolute $srcdir.-#-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,-# iff we strip the leading $srcdir from $ac_aux_dir. That would be:-# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`-# and then we would define $MISSING as-# MISSING="\${SHELL} $am_aux_dir/missing"-# This will work as long as MISSING is not called from configure, because-# unfortunately $(top_srcdir) has no meaning in configure.-# However there are other variables, like CC, which are often used in-# configure, and could therefore not use this "fixed" $ac_aux_dir.-#-# Another solution, used here, is to always expand $ac_aux_dir to an-# absolute PATH. The drawback is that using absolute paths prevent a-# configured tree to be moved without reconfiguration.--AC_DEFUN([AM_AUX_DIR_EXPAND],-[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl-# Expand $ac_aux_dir to an absolute path.-am_aux_dir=`cd "$ac_aux_dir" && pwd`-])--# AM_CONDITIONAL -*- Autoconf -*---# Copyright (C) 1997-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# AM_CONDITIONAL(NAME, SHELL-CONDITION)-# --------------------------------------# Define a conditional.-AC_DEFUN([AM_CONDITIONAL],-[AC_PREREQ([2.52])dnl- m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],- [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl-AC_SUBST([$1_TRUE])dnl-AC_SUBST([$1_FALSE])dnl-_AM_SUBST_NOTMAKE([$1_TRUE])dnl-_AM_SUBST_NOTMAKE([$1_FALSE])dnl-m4_define([_AM_COND_VALUE_$1], [$2])dnl-if $2; then- $1_TRUE=- $1_FALSE='#'-else- $1_TRUE='#'- $1_FALSE=-fi-AC_CONFIG_COMMANDS_PRE(-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then- AC_MSG_ERROR([[conditional "$1" was never defined.-Usually this means the macro was only invoked conditionally.]])-fi])])--# Copyright (C) 1999-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.---# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be-# written in clear, in which case automake, when reading aclocal.m4,-# will think it sees a *use*, and therefore will trigger all it's-# C support machinery. Also note that it means that autoscan, seeing-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...---# _AM_DEPENDENCIES(NAME)-# -----------------------# See how the compiler implements dependency checking.-# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".-# We try a few techniques and use that to set a single cache variable.-#-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular-# dependency, and given that the user is not expected to run this macro,-# just rely on AC_PROG_CC.-AC_DEFUN([_AM_DEPENDENCIES],-[AC_REQUIRE([AM_SET_DEPDIR])dnl-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl-AC_REQUIRE([AM_MAKE_INCLUDE])dnl-AC_REQUIRE([AM_DEP_TRACK])dnl--m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],- [$1], [CXX], [depcc="$CXX" am_compiler_list=],- [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],- [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],- [$1], [UPC], [depcc="$UPC" am_compiler_list=],- [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],- [depcc="$$1" am_compiler_list=])--AC_CACHE_CHECK([dependency style of $depcc],- [am_cv_$1_dependencies_compiler_type],-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then- # We make a subdir and do the tests there. Otherwise we can end up- # making bogus files that we don't know about and never remove. For- # instance it was reported that on HP-UX the gcc test will end up- # making a dummy file named 'D' -- because '-MD' means "put the output- # in D".- rm -rf conftest.dir- mkdir conftest.dir- # Copy depcomp to subdir because otherwise we won't find it if we're- # using a relative directory.- cp "$am_depcomp" conftest.dir- cd conftest.dir- # We will build objects and dependencies in a subdirectory because- # it helps to detect inapplicable dependency modes. For instance- # both Tru64's cc and ICC support -MD to output dependencies as a- # side effect of compilation, but ICC will put the dependencies in- # the current directory while Tru64 will put them in the object- # directory.- mkdir sub-- am_cv_$1_dependencies_compiler_type=none- if test "$am_compiler_list" = ""; then- am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`- fi- am__universal=false- m4_case([$1], [CC],- [case " $depcc " in #(- *\ -arch\ *\ -arch\ *) am__universal=true ;;- esac],- [CXX],- [case " $depcc " in #(- *\ -arch\ *\ -arch\ *) am__universal=true ;;- esac])-- for depmode in $am_compiler_list; do- # Setup a source with many dependencies, because some compilers- # like to wrap large dependency lists on column 80 (with \), and- # we should not choose a depcomp mode which is confused by this.- #- # We need to recreate these files for each test, as the compiler may- # overwrite some of them when testing with obscure command lines.- # This happens at least with the AIX C compiler.- : > sub/conftest.c- for i in 1 2 3 4 5 6; do- echo '#include "conftst'$i'.h"' >> sub/conftest.c- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with- # Solaris 10 /bin/sh.- echo '/* dummy */' > sub/conftst$i.h- done- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf-- # We check with '-c' and '-o' for the sake of the "dashmstdout"- # mode. It turns out that the SunPro C++ compiler does not properly- # handle '-M -o', and we need to detect this. Also, some Intel- # versions had trouble with output in subdirs.- am__obj=sub/conftest.${OBJEXT-o}- am__minus_obj="-o $am__obj"- case $depmode in- gcc)- # This depmode causes a compiler race in universal mode.- test "$am__universal" = false || continue- ;;- nosideeffect)- # After this tag, mechanisms are not by side-effect, so they'll- # only be used when explicitly requested.- if test "x$enable_dependency_tracking" = xyes; then- continue- else- break- fi- ;;- msvc7 | msvc7msys | msvisualcpp | msvcmsys)- # This compiler won't grok '-c -o', but also, the minuso test has- # not run yet. These depmodes are late enough in the game, and- # so weak that their functioning should not be impacted.- am__obj=conftest.${OBJEXT-o}- am__minus_obj=- ;;- none) break ;;- esac- if depmode=$depmode \- source=sub/conftest.c object=$am__obj \- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \- >/dev/null 2>conftest.err &&- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then- # icc doesn't choke on unknown options, it will just issue warnings- # or remarks (even with -Werror). So we grep stderr for any message- # that says an option was ignored or not supported.- # When given -MP, icc 7.0 and 7.1 complain thus:- # icc: Command line warning: ignoring option '-M'; no argument required- # The diagnosis changed in icc 8.0:- # icc: Command line remark: option '-MP' not supported- if (grep 'ignoring option' conftest.err ||- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else- am_cv_$1_dependencies_compiler_type=$depmode- break- fi- fi- done-- cd ..- rm -rf conftest.dir-else- am_cv_$1_dependencies_compiler_type=none-fi-])-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])-AM_CONDITIONAL([am__fastdep$1], [- test "x$enable_dependency_tracking" != xno \- && test "$am_cv_$1_dependencies_compiler_type" = gcc3])-])---# AM_SET_DEPDIR-# --------------# Choose a directory name for dependency files.-# This macro is AC_REQUIREd in _AM_DEPENDENCIES.-AC_DEFUN([AM_SET_DEPDIR],-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl-])---# AM_DEP_TRACK-# -------------AC_DEFUN([AM_DEP_TRACK],-[AC_ARG_ENABLE([dependency-tracking], [dnl-AS_HELP_STRING(- [--enable-dependency-tracking],- [do not reject slow dependency extractors])-AS_HELP_STRING(- [--disable-dependency-tracking],- [speeds up one-time build])])-if test "x$enable_dependency_tracking" != xno; then- am_depcomp="$ac_aux_dir/depcomp"- AMDEPBACKSLASH='\'- am__nodep='_no'-fi-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])-AC_SUBST([AMDEPBACKSLASH])dnl-_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl-AC_SUBST([am__nodep])dnl-_AM_SUBST_NOTMAKE([am__nodep])dnl-])--# Generate code to set up dependency tracking. -*- Autoconf -*---# Copyright (C) 1999-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# _AM_OUTPUT_DEPENDENCY_COMMANDS-# -------------------------------AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],-[{- # Older Autoconf quotes --file arguments for eval, but not when files- # are listed without --file. Let's play safe and only enable the eval- # if we detect the quoting.- # TODO: see whether this extra hack can be removed once we start- # requiring Autoconf 2.70 or later.- AS_CASE([$CONFIG_FILES],- [*\'*], [eval set x "$CONFIG_FILES"],- [*], [set x $CONFIG_FILES])- shift- # Used to flag and report bootstrapping failures.- am_rc=0- for am_mf- do- # Strip MF so we end up with the name of the file.- am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`- # Check whether this is an Automake generated Makefile which includes- # dependency-tracking related rules and includes.- # Grep'ing the whole file directly is not great: AIX grep has a line- # limit of 2048, but all sed's we know have understand at least 4000.- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \- || continue- am_dirpart=`AS_DIRNAME(["$am_mf"])`- am_filepart=`AS_BASENAME(["$am_mf"])`- AM_RUN_LOG([cd "$am_dirpart" \- && sed -e '/# am--include-marker/d' "$am_filepart" \- | $MAKE -f - am--depfiles]) || am_rc=$?- done- if test $am_rc -ne 0; then- AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments- for automatic dependency tracking. If GNU make was not used, consider- re-running the configure script with MAKE="gmake" (or whatever is- necessary). You can also try re-running configure with the- '--disable-dependency-tracking' option to at least be able to build- the package (albeit without support for automatic dependency tracking).])- fi- AS_UNSET([am_dirpart])- AS_UNSET([am_filepart])- AS_UNSET([am_mf])- AS_UNSET([am_rc])- rm -f conftest-deps.mk-}-])# _AM_OUTPUT_DEPENDENCY_COMMANDS---# AM_OUTPUT_DEPENDENCY_COMMANDS-# ------------------------------# This macro should only be invoked once -- use via AC_REQUIRE.-#-# This code is only required when automatic dependency tracking is enabled.-# This creates each '.Po' and '.Plo' makefile fragment that we'll need in-# order to bootstrap the dependency handling code.-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],-[AC_CONFIG_COMMANDS([depfiles],- [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],- [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])--# Do all the work for Automake. -*- Autoconf -*---# Copyright (C) 1996-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# This macro actually does too much. Some checks are only needed if-# your package does certain things. But this isn't really a big deal.--dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.-m4_define([AC_PROG_CC],-m4_defn([AC_PROG_CC])-[_AM_PROG_CC_C_O-])--# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])-# AM_INIT_AUTOMAKE([OPTIONS])-# ------------------------------------------------# The call with PACKAGE and VERSION arguments is the old style-# call (pre autoconf-2.50), which is being phased out. PACKAGE-# and VERSION should now be passed to AC_INIT and removed from-# the call to AM_INIT_AUTOMAKE.-# We support both call styles for the transition. After-# the next Automake release, Autoconf can make the AC_INIT-# arguments mandatory, and then we can depend on a new Autoconf-# release and drop the old call support.-AC_DEFUN([AM_INIT_AUTOMAKE],-[AC_PREREQ([2.65])dnl-m4_ifdef([_$0_ALREADY_INIT],- [m4_fatal([$0 expanded multiple times-]m4_defn([_$0_ALREADY_INIT]))],- [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl-dnl Autoconf wants to disallow AM_ names. We explicitly allow-dnl the ones we care about.-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl-AC_REQUIRE([AC_PROG_INSTALL])dnl-if test "`cd $srcdir && pwd`" != "`pwd`"; then- # Use -I$(srcdir) only when $(srcdir) != ., so that make's output- # is not polluted with repeated "-I."- AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl- # test to see if srcdir already configured- if test -f $srcdir/config.status; then- AC_MSG_ERROR([source directory already configured; run "make distclean" there first])- fi-fi--# test whether we have cygpath-if test -z "$CYGPATH_W"; then- if (cygpath --version) >/dev/null 2>/dev/null; then- CYGPATH_W='cygpath -w'- else- CYGPATH_W=echo- fi-fi-AC_SUBST([CYGPATH_W])--# Define the identity of the package.-dnl Distinguish between old-style and new-style calls.-m4_ifval([$2],-[AC_DIAGNOSE([obsolete],- [$0: two- and three-arguments forms are deprecated.])-m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl- AC_SUBST([PACKAGE], [$1])dnl- AC_SUBST([VERSION], [$2])],-[_AM_SET_OPTIONS([$1])dnl-dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.-m4_if(- m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),- [ok:ok],,- [m4_fatal([AC_INIT should be called with package and version arguments])])dnl- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl--_AM_IF_OPTION([no-define],,-[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])- AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl--# Some tools Automake needs.-AC_REQUIRE([AM_SANITY_CHECK])dnl-AC_REQUIRE([AC_ARG_PROGRAM])dnl-AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])-AM_MISSING_PROG([AUTOCONF], [autoconf])-AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])-AM_MISSING_PROG([AUTOHEADER], [autoheader])-AM_MISSING_PROG([MAKEINFO], [makeinfo])-AC_REQUIRE([AM_PROG_INSTALL_SH])dnl-AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl-AC_REQUIRE([AC_PROG_MKDIR_P])dnl-# For better backward compatibility. To be removed once Automake 1.9.x-# dies out for good. For more background, see:-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>-# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>-AC_SUBST([mkdir_p], ['$(MKDIR_P)'])-# We need awk for the "check" target (and possibly the TAP driver). The-# system "awk" is bad on some platforms.-AC_REQUIRE([AC_PROG_AWK])dnl-AC_REQUIRE([AC_PROG_MAKE_SET])dnl-AC_REQUIRE([AM_SET_LEADING_DOT])dnl-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],- [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],- [_AM_IF_OPTION([tar-v7], [_AM_PROG_TAR([v7])],- [_AM_PROG_TAR([ustar])])])])-_AM_IF_OPTION([no-dependencies],,-[AC_PROVIDE_IFELSE([AC_PROG_CC],- [_AM_DEPENDENCIES([CC])],- [m4_define([AC_PROG_CC],- m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl-AC_PROVIDE_IFELSE([AC_PROG_CXX],- [_AM_DEPENDENCIES([CXX])],- [m4_define([AC_PROG_CXX],- m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl-AC_PROVIDE_IFELSE([AC_PROG_OBJC],- [_AM_DEPENDENCIES([OBJC])],- [m4_define([AC_PROG_OBJC],- m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl-AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],- [_AM_DEPENDENCIES([OBJCXX])],- [m4_define([AC_PROG_OBJCXX],- m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl-])-# Variables for tags utilities; see am/tags.am-if test -z "$CTAGS"; then- CTAGS=ctags-fi-AC_SUBST([CTAGS])-if test -z "$ETAGS"; then- ETAGS=etags-fi-AC_SUBST([ETAGS])-if test -z "$CSCOPE"; then- CSCOPE=cscope-fi-AC_SUBST([CSCOPE])--AC_REQUIRE([_AM_SILENT_RULES])dnl-dnl The testsuite driver may need to know about EXEEXT, so add the-dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This-dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.-AC_CONFIG_COMMANDS_PRE(dnl-[m4_provide_if([_AM_COMPILER_EXEEXT],- [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl--AC_REQUIRE([_AM_PROG_RM_F])-AC_REQUIRE([_AM_PROG_XARGS_N])--dnl The trailing newline in this macro's definition is deliberate, for-dnl backward compatibility and to allow trailing 'dnl'-style comments-dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.-])--dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not-dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further-dnl mangled by Autoconf and run in a shell conditional statement.-m4_define([_AC_COMPILER_EXEEXT],-m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])--# When config.status generates a header, we must update the stamp-h file.-# This file resides in the same directory as the config header-# that is generated. The stamp files are numbered to have different names.--# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the-# loop where config.status creates the headers, so we can generate-# our stamp files there.-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],-[# Compute $1's index in $config_headers.-_am_arg=$1-_am_stamp_count=1-for _am_header in $config_headers :; do- case $_am_header in- $_am_arg | $_am_arg:* )- break ;;- * )- _am_stamp_count=`expr $_am_stamp_count + 1` ;;- esac-done-echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])--# Copyright (C) 2003-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# Check whether the underlying file-system supports filenames-# with a leading dot. For instance MS-DOS doesn't.-AC_DEFUN([AM_SET_LEADING_DOT],-[rm -rf .tst 2>/dev/null-mkdir .tst 2>/dev/null-if test -d .tst; then- am__leading_dot=.-else- am__leading_dot=_-fi-rmdir .tst 2>/dev/null-AC_SUBST([am__leading_dot])])--# Add --enable-maintainer-mode option to configure. -*- Autoconf -*--# From Jim Meyering--# Copyright (C) 1996-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# AM_MAINTAINER_MODE([DEFAULT-MODE])-# -----------------------------------# Control maintainer-specific portions of Makefiles.-# Default is to disable them, unless 'enable' is passed literally.-# For symmetry, 'disable' may be passed as well. Anyway, the user-# can override the default with the --enable/--disable switch.-AC_DEFUN([AM_MAINTAINER_MODE],-[m4_case(m4_default([$1], [disable]),- [enable], [m4_define([am_maintainer_other], [disable])],- [disable], [m4_define([am_maintainer_other], [enable])],- [m4_define([am_maintainer_other], [enable])- m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])-AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])- dnl maintainer-mode's default is 'disable' unless 'enable' is passed- AC_ARG_ENABLE([maintainer-mode],- [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],- am_maintainer_other[ make rules and dependencies not useful- (and sometimes confusing) to the casual installer])],- [USE_MAINTAINER_MODE=$enableval],- [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))- AC_MSG_RESULT([$USE_MAINTAINER_MODE])- AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])- MAINT=$MAINTAINER_MODE_TRUE- AC_SUBST([MAINT])dnl-]-)--# Check to see how 'make' treats includes. -*- Autoconf -*---# Copyright (C) 2001-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# AM_MAKE_INCLUDE()-# ------------------# Check whether make has an 'include' directive that can support all-# the idioms we need for our automatic dependency tracking code.-AC_DEFUN([AM_MAKE_INCLUDE],-[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])-cat > confinc.mk << 'END'-am__doit:- @echo this is the am__doit target >confinc.out-.PHONY: am__doit-END-am__include="#"-am__quote=-# BSD make does it like this.-echo '.include "confinc.mk" # ignored' > confmf.BSD-# Other make implementations (GNU, Solaris 10, AIX) do it like this.-echo 'include confinc.mk # ignored' > confmf.GNU-_am_result=no-for s in GNU BSD; do- AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])- AS_CASE([$?:`cat confinc.out 2>/dev/null`],- ['0:this is the am__doit target'],- [AS_CASE([$s],- [BSD], [am__include='.include' am__quote='"'],- [am__include='include' am__quote=''])])- if test "$am__include" != "#"; then- _am_result="yes ($s style)"- break- fi-done-rm -f confinc.* confmf.*-AC_MSG_RESULT([${_am_result}])-AC_SUBST([am__include])])-AC_SUBST([am__quote])])--# Helper functions for option handling. -*- Autoconf -*---# Copyright (C) 2001-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# _AM_MANGLE_OPTION(NAME)-# ------------------------AC_DEFUN([_AM_MANGLE_OPTION],-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])--# _AM_SET_OPTION(NAME)-# ---------------------# Set option NAME. Presently that only means defining a flag for this option.-AC_DEFUN([_AM_SET_OPTION],-[m4_define(_AM_MANGLE_OPTION([$1]), [1])])--# _AM_SET_OPTIONS(OPTIONS)-# -------------------------# OPTIONS is a space-separated list of Automake options.-AC_DEFUN([_AM_SET_OPTIONS],-[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])--# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])-# --------------------------------------------# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.-AC_DEFUN([_AM_IF_OPTION],-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])--# Copyright (C) 1999-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# _AM_PROG_CC_C_O-# ----------------# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC-# to automatically call this.-AC_DEFUN([_AM_PROG_CC_C_O],-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl-AC_REQUIRE_AUX_FILE([compile])dnl-AC_LANG_PUSH([C])dnl-AC_CACHE_CHECK(- [whether $CC understands -c and -o together],- [am_cv_prog_cc_c_o],- [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])- # Make sure it works both with $CC and with simple cc.- # Following AC_PROG_CC_C_O, we do the test twice because some- # compilers refuse to overwrite an existing .o file with -o,- # though they will create one.- am_cv_prog_cc_c_o=yes- for am_i in 1 2; do- if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \- && test -f conftest2.$ac_objext; then- : OK- else- am_cv_prog_cc_c_o=no- break- fi- done- # aligned with autoconf, so not including core; see bug#72225.- rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \- conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \- conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM- unset am_i])-if test "$am_cv_prog_cc_c_o" != yes; then- # Losing compiler, so override with the script.- # FIXME: It is wrong to rewrite CC.- # But if we don't then we get into trouble of one sort or another.- # A longer-term fix would be to have automake use am__CC in this case,- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"- CC="$am_aux_dir/compile $CC"-fi-AC_LANG_POP([C])])--# For backward compatibility.-AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])--# Copyright (C) 2001-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# AM_RUN_LOG(COMMAND)-# --------------------# Run COMMAND, save the exit status in ac_status, and log it.-# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)-AC_DEFUN([AM_RUN_LOG],-[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD- ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD- (exit $ac_status); }])--# Copyright (C) 2006-2025 Free Software Foundation, Inc.-#-# This file is free software; the Free Software Foundation-# gives unlimited permission to copy and/or distribute it,-# with or without modifications, as long as this notice is preserved.--# _AM_SUBST_NOTMAKE(VARIABLE)-# ----------------------------# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.-# This macro is traced by Automake.-AC_DEFUN([_AM_SUBST_NOTMAKE])--# AM_SUBST_NOTMAKE(VARIABLE)-# ---------------------------# Public sister of _AM_SUBST_NOTMAKE.-AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])--m4_include([m4/asmcfi.m4])-m4_include([m4/ax_cc_maxopt.m4])-m4_include([m4/ax_cflags_warn_all.m4])-m4_include([m4/ax_check_compile_flag.m4])-m4_include([m4/ax_compiler_vendor.m4])-m4_include([m4/ax_configure_args.m4])-m4_include([m4/ax_enable_builddir.m4])-m4_include([m4/ax_gcc_archflag.m4])-m4_include([m4/ax_gcc_x86_cpuid.m4])-m4_include([m4/ax_prepend_flag.m4])-m4_include([m4/ax_require_defined.m4])-m4_include([m4/libtool.m4])-m4_include([m4/lt_undescore.m4])+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-++# Copyright (C) 1996-2021 Free Software Foundation, Inc.++# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# This program is distributed in the hope that it will be useful,+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A+# PARTICULAR PURPOSE.++m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])+m4_ifndef([AC_AUTOCONF_VERSION],+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,+[m4_warning([this file was generated for autoconf 2.71.+You have another version of autoconf. It may work, but is not guaranteed to.+If you have problems, you may need to regenerate the build system entirely.+To do so, use the procedure documented by the package, typically 'autoreconf'.])])++# ltdl.m4 - Configure ltdl for the target system. -*-Autoconf-*-+#+# Copyright (C) 1999-2008, 2011-2019, 2021-2022 Free Software+# Foundation, Inc.+# Written by Thomas Tanner, 1999+#+# This file is free software; the Free Software Foundation gives+# unlimited permission to copy and/or distribute it, with or without+# modifications, as long as this notice is preserved.++# serial 21 LTDL_INIT++# LT_CONFIG_LTDL_DIR(DIRECTORY, [LTDL-MODE])+# ------------------------------------------+# DIRECTORY contains the libltdl sources. It is okay to call this+# function multiple times, as long as the same DIRECTORY is always given.+AC_DEFUN([LT_CONFIG_LTDL_DIR],+[AC_BEFORE([$0], [LTDL_INIT])+_$0($*)+])# LT_CONFIG_LTDL_DIR++# We break this out into a separate macro, so that we can call it safely+# internally without being caught accidentally by the sed scan in libtoolize.+m4_defun([_LT_CONFIG_LTDL_DIR],+[dnl remove trailing slashes+m4_pushdef([_ARG_DIR], m4_bpatsubst([$1], [/*$]))+m4_case(_LTDL_DIR,+ [], [dnl only set lt_ltdl_dir if _ARG_DIR is not simply '.'+ m4_if(_ARG_DIR, [.],+ [],+ [m4_define([_LTDL_DIR], _ARG_DIR)+ _LT_SHELL_INIT([lt_ltdl_dir=']_ARG_DIR['])])],+ [m4_if(_ARG_DIR, _LTDL_DIR,+ [],+ [m4_fatal([multiple libltdl directories: ']_LTDL_DIR[', ']_ARG_DIR['])])])+m4_popdef([_ARG_DIR])+])# _LT_CONFIG_LTDL_DIR++# Initialise:+m4_define([_LTDL_DIR], [])+++# _LT_BUILD_PREFIX+# ----------------+# If Autoconf is new enough, expand to '$(top_build_prefix)', otherwise+# to '$(top_builddir)/'.+m4_define([_LT_BUILD_PREFIX],+[m4_ifdef([AC_AUTOCONF_VERSION],+ [m4_if(m4_version_compare(m4_defn([AC_AUTOCONF_VERSION]), [2.62]),+ [-1], [m4_ifdef([_AC_HAVE_TOP_BUILD_PREFIX],+ [$(top_build_prefix)],+ [$(top_builddir)/])],+ [$(top_build_prefix)])],+ [$(top_builddir)/])[]dnl+])+++# LTDL_CONVENIENCE+# ----------------+# sets LIBLTDL to the link flags for the libltdl convenience library and+# LTDLINCL to the include flags for the libltdl header and adds+# --enable-ltdl-convenience to the configure arguments. Note that+# AC_CONFIG_SUBDIRS is not called here. LIBLTDL will be prefixed with+# '$(top_build_prefix)' if available, otherwise with '$(top_builddir)/',+# and LTDLINCL will be prefixed with '$(top_srcdir)/' (note the single+# quotes!). If your package is not flat and you're not using automake,+# define top_build_prefix, top_builddir, and top_srcdir appropriately+# in your Makefiles.+AC_DEFUN([LTDL_CONVENIENCE],+[AC_BEFORE([$0], [LTDL_INIT])dnl+dnl Although the argument is deprecated and no longer documented,+dnl LTDL_CONVENIENCE used to take a DIRECTORY orgument, if we have one+dnl here make sure it is the same as any other declaration of libltdl's+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl+_$0()+])# LTDL_CONVENIENCE++# AC_LIBLTDL_CONVENIENCE accepted a directory argument in older libtools,+# now we have LT_CONFIG_LTDL_DIR:+AU_DEFUN([AC_LIBLTDL_CONVENIENCE],+[_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])+_LTDL_CONVENIENCE])++dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LIBLTDL_CONVENIENCE], [])+++# _LTDL_CONVENIENCE+# -----------------+# Code shared by LTDL_CONVENIENCE and LTDL_INIT([convenience]).+m4_defun([_LTDL_CONVENIENCE],+[case $enable_ltdl_convenience in+ no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;+ "") enable_ltdl_convenience=yes+ ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;+esac+LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdlc.la"+LTDLDEPS=$LIBLTDL+LTDLINCL='-I$(top_srcdir)'"${lt_ltdl_dir+/$lt_ltdl_dir}"++AC_SUBST([LIBLTDL])+AC_SUBST([LTDLDEPS])+AC_SUBST([LTDLINCL])++# For backwards non-gettext consistent compatibility...+INCLTDL=$LTDLINCL+AC_SUBST([INCLTDL])+])# _LTDL_CONVENIENCE+++# LTDL_INSTALLABLE+# ----------------+# sets LIBLTDL to the link flags for the libltdl installable library+# and LTDLINCL to the include flags for the libltdl header and adds+# --enable-ltdl-install to the configure arguments. Note that+# AC_CONFIG_SUBDIRS is not called from here. If an installed libltdl+# is not found, LIBLTDL will be prefixed with '$(top_build_prefix)' if+# available, otherwise with '$(top_builddir)/', and LTDLINCL will be+# prefixed with '$(top_srcdir)/' (note the single quotes!). If your+# package is not flat and you're not using automake, define top_build_prefix,+# top_builddir, and top_srcdir appropriately in your Makefiles.+# In the future, this macro may have to be called after LT_INIT.+AC_DEFUN([LTDL_INSTALLABLE],+[AC_BEFORE([$0], [LTDL_INIT])dnl+dnl Although the argument is deprecated and no longer documented,+dnl LTDL_INSTALLABLE used to take a DIRECTORY orgument, if we have one+dnl here make sure it is the same as any other declaration of libltdl's+dnl location! This also ensures lt_ltdl_dir is set when configure.ac is+dnl not yet using an explicit LT_CONFIG_LTDL_DIR.+m4_ifval([$1], [_LT_CONFIG_LTDL_DIR([$1])])dnl+_$0()+])# LTDL_INSTALLABLE++# AC_LIBLTDL_INSTALLABLE accepted a directory argument in older libtools,+# now we have LT_CONFIG_LTDL_DIR:+AU_DEFUN([AC_LIBLTDL_INSTALLABLE],+[_LT_CONFIG_LTDL_DIR([m4_default([$1], [libltdl])])+_LTDL_INSTALLABLE])++dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LIBLTDL_INSTALLABLE], [])+++# _LTDL_INSTALLABLE+# -----------------+# Code shared by LTDL_INSTALLABLE and LTDL_INIT([installable]).+m4_defun([_LTDL_INSTALLABLE],+[if test -f "$prefix/lib/libltdl.la"; then+ lt_save_LDFLAGS=$LDFLAGS+ LDFLAGS="-L$prefix/lib $LDFLAGS"+ AC_CHECK_LIB([ltdl], [lt_dlinit], [lt_lib_ltdl=yes])+ LDFLAGS=$lt_save_LDFLAGS+ if test yes = "${lt_lib_ltdl-no}"; then+ if test yes != "$enable_ltdl_install"; then+ # Don't overwrite $prefix/lib/libltdl.la without --enable-ltdl-install+ AC_MSG_WARN([not overwriting libltdl at $prefix, force with '--enable-ltdl-install'])+ enable_ltdl_install=no+ fi+ elif test no = "$enable_ltdl_install"; then+ AC_MSG_WARN([libltdl not installed, but installation disabled])+ fi+fi++# If configure.ac declared an installable ltdl, and the user didn't override+# with --disable-ltdl-install, we will install the shipped libltdl.+case $enable_ltdl_install in+ no) ac_configure_args="$ac_configure_args --enable-ltdl-install=no"+ LIBLTDL=-lltdl+ LTDLDEPS=+ LTDLINCL=+ ;;+ *) enable_ltdl_install=yes+ ac_configure_args="$ac_configure_args --enable-ltdl-install"+ LIBLTDL='_LT_BUILD_PREFIX'"${lt_ltdl_dir+$lt_ltdl_dir/}libltdl.la"+ LTDLDEPS=$LIBLTDL+ LTDLINCL='-I$(top_srcdir)'"${lt_ltdl_dir+/$lt_ltdl_dir}"+ ;;+esac++AC_SUBST([LIBLTDL])+AC_SUBST([LTDLDEPS])+AC_SUBST([LTDLINCL])++# For backwards non-gettext consistent compatibility...+INCLTDL=$LTDLINCL+AC_SUBST([INCLTDL])+])# LTDL_INSTALLABLE+++# _LTDL_MODE_DISPATCH+# -------------------+m4_define([_LTDL_MODE_DISPATCH],+[dnl If _LTDL_DIR is '.', then we are configuring libltdl itself:+m4_if(_LTDL_DIR, [],+ [],+ dnl if _LTDL_MODE was not set already, the default value is 'subproject':+ [m4_case(m4_default(_LTDL_MODE, [subproject]),+ [subproject], [AC_CONFIG_SUBDIRS(_LTDL_DIR)+ _LT_SHELL_INIT([lt_dlopen_dir=$lt_ltdl_dir])],+ [nonrecursive], [_LT_SHELL_INIT([lt_dlopen_dir=$lt_ltdl_dir; lt_libobj_prefix=$lt_ltdl_dir/])],+ [recursive], [],+ [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])dnl+dnl Be careful not to expand twice:+m4_define([$0], [])+])# _LTDL_MODE_DISPATCH+++# _LT_LIBOBJ(MODULE_NAME)+# -----------------------+# Like AC_LIBOBJ, except that MODULE_NAME goes into _LT_LIBOBJS instead+# of into LIBOBJS.+AC_DEFUN([_LT_LIBOBJ], [+ m4_pattern_allow([^_LT_LIBOBJS$])+ _LT_LIBOBJS="$_LT_LIBOBJS $1.$ac_objext"+])# _LT_LIBOBJS+++# LTDL_INIT([OPTIONS])+# --------------------+# Clients of libltdl can use this macro to allow the installer to+# choose between a shipped copy of the ltdl sources or a preinstalled+# version of the library. If the shipped ltdl sources are not in a+# subdirectory named libltdl, the directory name must be given by+# LT_CONFIG_LTDL_DIR.+AC_DEFUN([LTDL_INIT],+[dnl Parse OPTIONS+_LT_SET_OPTIONS([$0], [$1])++dnl We need to keep our own list of libobjs separate from our parent project,+dnl and the easiest way to do that is redefine the AC_LIBOBJs macro while+dnl we look for our own LIBOBJs.+m4_pushdef([AC_LIBOBJ], m4_defn([_LT_LIBOBJ]))+m4_pushdef([AC_LIBSOURCES])++dnl If not otherwise defined, default to the 1.5.x compatible subproject mode:+m4_if(_LTDL_MODE, [],+ [m4_define([_LTDL_MODE], m4_default([$2], [subproject]))+ m4_if([-1], [m4_bregexp(_LTDL_MODE, [\(subproject\|\(non\)?recursive\)])],+ [m4_fatal([unknown libltdl mode: ]_LTDL_MODE)])])++AC_ARG_WITH([included_ltdl],+ [AS_HELP_STRING([--with-included-ltdl],+ [use the GNU ltdl sources included here])])++if test yes != "$with_included_ltdl"; then+ # We are not being forced to use the included libltdl sources, so+ # decide whether there is a useful installed version we can use.+ AC_CHECK_HEADER([ltdl.h],+ [AC_CHECK_DECL([lt_dlinterface_register],+ [AC_CHECK_LIB([ltdl], [lt_dladvise_preload],+ [with_included_ltdl=no],+ [with_included_ltdl=yes])],+ [with_included_ltdl=yes],+ [AC_INCLUDES_DEFAULT+ #include <ltdl.h>])],+ [with_included_ltdl=yes],+ [AC_INCLUDES_DEFAULT]+ )+fi++dnl If neither LT_CONFIG_LTDL_DIR, LTDL_CONVENIENCE nor LTDL_INSTALLABLE+dnl was called yet, then for old times' sake, we assume libltdl is in an+dnl eponymous directory:+AC_PROVIDE_IFELSE([LT_CONFIG_LTDL_DIR], [], [_LT_CONFIG_LTDL_DIR([libltdl])])++AC_ARG_WITH([ltdl_include],+ [AS_HELP_STRING([--with-ltdl-include=DIR],+ [use the ltdl headers installed in DIR])])++if test -n "$with_ltdl_include"; then+ if test -f "$with_ltdl_include/ltdl.h"; then :+ else+ AC_MSG_ERROR([invalid ltdl include directory: '$with_ltdl_include'])+ fi+else+ with_ltdl_include=no+fi++AC_ARG_WITH([ltdl_lib],+ [AS_HELP_STRING([--with-ltdl-lib=DIR],+ [use the libltdl.la installed in DIR])])++if test -n "$with_ltdl_lib"; then+ if test -f "$with_ltdl_lib/libltdl.la"; then :+ else+ AC_MSG_ERROR([invalid ltdl library directory: '$with_ltdl_lib'])+ fi+else+ with_ltdl_lib=no+fi++case ,$with_included_ltdl,$with_ltdl_include,$with_ltdl_lib, in+ ,yes,no,no,)+ m4_case(m4_default(_LTDL_TYPE, [convenience]),+ [convenience], [_LTDL_CONVENIENCE],+ [installable], [_LTDL_INSTALLABLE],+ [m4_fatal([unknown libltdl build type: ]_LTDL_TYPE)])+ ;;+ ,no,no,no,)+ # If the included ltdl is not to be used, then use the+ # preinstalled libltdl we found.+ AC_DEFINE([HAVE_LTDL], [1],+ [Define this if a modern libltdl is already installed])+ LIBLTDL=-lltdl+ LTDLDEPS=+ LTDLINCL=+ ;;+ ,no*,no,*)+ AC_MSG_ERROR(['--with-ltdl-include' and '--with-ltdl-lib' options must be used together])+ ;;+ *) with_included_ltdl=no+ LIBLTDL="-L$with_ltdl_lib -lltdl"+ LTDLDEPS=+ LTDLINCL=-I$with_ltdl_include+ ;;+esac+INCLTDL=$LTDLINCL++# Report our decision...+AC_MSG_CHECKING([where to find libltdl headers])+AC_MSG_RESULT([$LTDLINCL])+AC_MSG_CHECKING([where to find libltdl library])+AC_MSG_RESULT([$LIBLTDL])++_LTDL_SETUP++dnl restore autoconf definition.+m4_popdef([AC_LIBOBJ])+m4_popdef([AC_LIBSOURCES])++AC_CONFIG_COMMANDS_PRE([+ _ltdl_libobjs=+ _ltdl_ltlibobjs=+ if test -n "$_LT_LIBOBJS"; then+ # Remove the extension.+ _lt_sed_drop_objext='s/\.o$//;s/\.obj$//'+ for i in `for i in $_LT_LIBOBJS; do echo "$i"; done | $SED "$_lt_sed_drop_objext" | sort -u`; do+ _ltdl_libobjs="$_ltdl_libobjs $lt_libobj_prefix$i.$ac_objext"+ _ltdl_ltlibobjs="$_ltdl_ltlibobjs $lt_libobj_prefix$i.lo"+ done+ fi+ AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs])+ AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs])+])++# Only expand once:+m4_define([LTDL_INIT])+])# LTDL_INIT++# Old names:+AU_DEFUN([AC_LIB_LTDL], [LTDL_INIT($@)])+AU_DEFUN([AC_WITH_LTDL], [LTDL_INIT($@)])+AU_DEFUN([LT_WITH_LTDL], [LTDL_INIT($@)])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LIB_LTDL], [])+dnl AC_DEFUN([AC_WITH_LTDL], [])+dnl AC_DEFUN([LT_WITH_LTDL], [])+++# _LTDL_SETUP+# -----------+# Perform all the checks necessary for compilation of the ltdl objects+# -- including compiler checks and header checks. This is a public+# interface mainly for the benefit of libltdl's own configure.ac, most+# other users should call LTDL_INIT instead.+AC_DEFUN([_LTDL_SETUP],+[AC_REQUIRE([AC_PROG_CC])dnl+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl+AC_REQUIRE([LT_SYS_MODULE_PATH])dnl+AC_REQUIRE([LT_SYS_DLSEARCH_PATH])dnl+AC_REQUIRE([LT_LIB_DLLOAD])dnl+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl+AC_REQUIRE([LT_FUNC_DLSYM_USCORE])dnl+AC_REQUIRE([LT_SYS_DLOPEN_DEPLIBS])dnl+AC_REQUIRE([LT_FUNC_ARGZ])dnl++m4_require([_LT_CHECK_OBJDIR])dnl+m4_require([_LT_HEADER_DLFCN])dnl+m4_require([_LT_CHECK_DLPREOPEN])dnl+m4_require([_LT_DECL_SED])dnl++dnl Don't require this, or it will be expanded earlier than the code+dnl that sets the variables it relies on:+_LT_ENABLE_INSTALL++dnl _LTDL_MODE specific code must be called at least once:+_LTDL_MODE_DISPATCH++# In order that ltdl.c can compile, find out the first AC_CONFIG_HEADERS+# the user used. This is so that ltdl.h can pick up the parent projects+# config.h file, The first file in AC_CONFIG_HEADERS must contain the+# definitions required by ltdl.c.+# FIXME: Remove use of undocumented AC_LIST_HEADERS (2.59 compatibility).+AC_CONFIG_COMMANDS_PRE([dnl+m4_pattern_allow([^LT_CONFIG_H$])dnl+m4_ifset([AH_HEADER],+ [LT_CONFIG_H=AH_HEADER],+ [m4_ifset([AC_LIST_HEADERS],+ [LT_CONFIG_H=`echo "AC_LIST_HEADERS" | $SED 's|^[[ ]]*||;s|[[ :]].*$||'`],+ [])])])+AC_SUBST([LT_CONFIG_H])++AC_CHECK_HEADERS([unistd.h dl.h sys/dl.h dld.h mach-o/dyld.h dirent.h],+ [], [], [AC_INCLUDES_DEFAULT])++AC_CHECK_FUNCS([closedir opendir readdir], [], [AC_LIBOBJ([lt__dirent])])+AC_CHECK_FUNCS([strlcat strlcpy], [], [AC_LIBOBJ([lt__strl])])++m4_pattern_allow([LT_LIBEXT])dnl+AC_DEFINE_UNQUOTED([LT_LIBEXT],["$libext"],[The archive extension])++name=+eval "lt_libprefix=\"$libname_spec\""+m4_pattern_allow([LT_LIBPREFIX])dnl+AC_DEFINE_UNQUOTED([LT_LIBPREFIX],["$lt_libprefix"],[The archive prefix])++name=ltdl+eval "LTDLOPEN=\"$libname_spec\""+AC_SUBST([LTDLOPEN])+])# _LTDL_SETUP+++# _LT_ENABLE_INSTALL+# ------------------+m4_define([_LT_ENABLE_INSTALL],+[AC_ARG_ENABLE([ltdl-install],+ [AS_HELP_STRING([--enable-ltdl-install], [install libltdl])])++case ,$enable_ltdl_install,$enable_ltdl_convenience in+ *yes*) ;;+ *) enable_ltdl_convenience=yes ;;+esac++m4_ifdef([AM_CONDITIONAL],+[AM_CONDITIONAL(INSTALL_LTDL, test no != "${enable_ltdl_install-no}")+ AM_CONDITIONAL(CONVENIENCE_LTDL, test no != "${enable_ltdl_convenience-no}")])+])# _LT_ENABLE_INSTALL+++# LT_SYS_DLOPEN_DEPLIBS+# ---------------------+AC_DEFUN([LT_SYS_DLOPEN_DEPLIBS],+[AC_REQUIRE([AC_CANONICAL_HOST])dnl+AC_CACHE_CHECK([whether deplibs are loaded by dlopen],+ [lt_cv_sys_dlopen_deplibs],+ [# PORTME does your system automatically load deplibs for dlopen?+ # or its logical equivalent (e.g. shl_load for HP-UX < 11)+ # For now, we just catch OSes we know something about -- in the+ # future, we'll try test this programmatically.+ lt_cv_sys_dlopen_deplibs=unknown+ case $host_os in+ aix3*|aix4.1.*|aix4.2.*)+ # Unknown whether this is true for these versions of AIX, but+ # we want this 'case' here to explicitly catch those versions.+ lt_cv_sys_dlopen_deplibs=unknown+ ;;+ aix[[4-9]]*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ amigaos*)+ case $host_cpu in+ powerpc)+ lt_cv_sys_dlopen_deplibs=no+ ;;+ esac+ ;;+ bitrig*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ darwin*)+ # Assuming the user has installed a libdl from somewhere, this is true+ # If you are looking for one http://www.opendarwin.org/projects/dlcompat+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ freebsd* | dragonfly* | midnightbsd*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ gnu* | linux* | k*bsd*-gnu | kopensolaris*-gnu)+ # GNU and its variants, using gnu ld.so (Glibc)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ hpux10*|hpux11*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ interix*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ irix[[12345]]*|irix6.[[01]]*)+ # Catch all versions of IRIX before 6.2, and indicate that we don't+ # know how it worked for any of those versions.+ lt_cv_sys_dlopen_deplibs=unknown+ ;;+ irix*)+ # The case above catches anything before 6.2, and it's known that+ # at 6.2 and later dlopen does load deplibs.+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ netbsd* | netbsdelf*-gnu)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ openbsd*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ osf[[1234]]*)+ # dlopen did load deplibs (at least at 4.x), but until the 5.x series,+ # it did *not* use an RPATH in a shared library to find objects the+ # library depends on, so we explicitly say 'no'.+ lt_cv_sys_dlopen_deplibs=no+ ;;+ osf5.0|osf5.0a|osf5.1)+ # dlopen *does* load deplibs and with the right loader patch applied+ # it even uses RPATH in a shared library to search for shared objects+ # that the library depends on, but there's no easy way to know if that+ # patch is installed. Since this is the case, all we can really+ # say is unknown -- it depends on the patch being installed. If+ # it is, this changes to 'yes'. Without it, it would be 'no'.+ lt_cv_sys_dlopen_deplibs=unknown+ ;;+ osf*)+ # the two cases above should catch all versions of osf <= 5.1. Read+ # the comments above for what we know about them.+ # At > 5.1, deplibs are loaded *and* any RPATH in a shared library+ # is used to find them so we can finally say 'yes'.+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ qnx*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ solaris*)+ lt_cv_sys_dlopen_deplibs=yes+ ;;+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)+ libltdl_cv_sys_dlopen_deplibs=yes+ ;;+ esac+ ])+if test yes != "$lt_cv_sys_dlopen_deplibs"; then+ AC_DEFINE([LTDL_DLOPEN_DEPLIBS], [1],+ [Define if the OS needs help to load dependent libraries for dlopen().])+fi+])# LT_SYS_DLOPEN_DEPLIBS++# Old name:+AU_ALIAS([AC_LTDL_SYS_DLOPEN_DEPLIBS], [LT_SYS_DLOPEN_DEPLIBS])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_SYS_DLOPEN_DEPLIBS], [])+++# LT_SYS_MODULE_EXT+# -----------------+AC_DEFUN([LT_SYS_MODULE_EXT],+[m4_require([_LT_SYS_DYNAMIC_LINKER])dnl+AC_CACHE_CHECK([what extension is used for runtime loadable modules],+ [libltdl_cv_shlibext],+[+module=yes+eval libltdl_cv_shlibext=$shrext_cmds+module=no+eval libltdl_cv_shrext=$shrext_cmds+ ])+if test -n "$libltdl_cv_shlibext"; then+ m4_pattern_allow([LT_MODULE_EXT])dnl+ AC_DEFINE_UNQUOTED([LT_MODULE_EXT], ["$libltdl_cv_shlibext"],+ [Define to the extension used for runtime loadable modules, say, ".so".])+fi+if test "$libltdl_cv_shrext" != "$libltdl_cv_shlibext"; then+ m4_pattern_allow([LT_SHARED_EXT])dnl+ AC_DEFINE_UNQUOTED([LT_SHARED_EXT], ["$libltdl_cv_shrext"],+ [Define to the shared library suffix, say, ".dylib".])+fi+if test -n "$shared_archive_member_spec"; then+ m4_pattern_allow([LT_SHARED_LIB_MEMBER])dnl+ AC_DEFINE_UNQUOTED([LT_SHARED_LIB_MEMBER], ["($shared_archive_member_spec.o)"],+ [Define to the shared archive member specification, say "(shr.o)".])+fi+])# LT_SYS_MODULE_EXT++# Old name:+AU_ALIAS([AC_LTDL_SHLIBEXT], [LT_SYS_MODULE_EXT])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_SHLIBEXT], [])+++# LT_SYS_MODULE_PATH+# ------------------+AC_DEFUN([LT_SYS_MODULE_PATH],+[m4_require([_LT_SYS_DYNAMIC_LINKER])dnl+AC_CACHE_CHECK([what variable specifies run-time module search path],+ [lt_cv_module_path_var], [lt_cv_module_path_var=$shlibpath_var])+if test -n "$lt_cv_module_path_var"; then+ m4_pattern_allow([LT_MODULE_PATH_VAR])dnl+ AC_DEFINE_UNQUOTED([LT_MODULE_PATH_VAR], ["$lt_cv_module_path_var"],+ [Define to the name of the environment variable that determines the run-time module search path.])+fi+])# LT_SYS_MODULE_PATH++# Old name:+AU_ALIAS([AC_LTDL_SHLIBPATH], [LT_SYS_MODULE_PATH])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_SHLIBPATH], [])+++# LT_SYS_DLSEARCH_PATH+# --------------------+AC_DEFUN([LT_SYS_DLSEARCH_PATH],+[m4_require([_LT_SYS_DYNAMIC_LINKER])dnl+AC_CACHE_CHECK([for the default library search path],+ [lt_cv_sys_dlsearch_path],+ [lt_cv_sys_dlsearch_path=$sys_lib_dlsearch_path_spec])+if test -n "$lt_cv_sys_dlsearch_path"; then+ sys_dlsearch_path=+ for dir in $lt_cv_sys_dlsearch_path; do+ if test -z "$sys_dlsearch_path"; then+ sys_dlsearch_path=$dir+ else+ sys_dlsearch_path=$sys_dlsearch_path$PATH_SEPARATOR$dir+ fi+ done+ m4_pattern_allow([LT_DLSEARCH_PATH])dnl+ AC_DEFINE_UNQUOTED([LT_DLSEARCH_PATH], ["$sys_dlsearch_path"],+ [Define to the system default library search path.])+fi+])# LT_SYS_DLSEARCH_PATH++# Old name:+AU_ALIAS([AC_LTDL_SYSSEARCHPATH], [LT_SYS_DLSEARCH_PATH])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_SYSSEARCHPATH], [])+++# _LT_CHECK_DLPREOPEN+# -------------------+m4_defun([_LT_CHECK_DLPREOPEN],+[m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl+AC_CACHE_CHECK([whether libtool supports -dlopen/-dlpreopen],+ [libltdl_cv_preloaded_symbols],+ [if test -n "$lt_cv_sys_global_symbol_pipe"; then+ libltdl_cv_preloaded_symbols=yes+ else+ libltdl_cv_preloaded_symbols=no+ fi+ ])+if test yes = "$libltdl_cv_preloaded_symbols"; then+ AC_DEFINE([HAVE_PRELOADED_SYMBOLS], [1],+ [Define if libtool can extract symbol lists from object files.])+fi+])# _LT_CHECK_DLPREOPEN+++# LT_LIB_DLLOAD+# -------------+AC_DEFUN([LT_LIB_DLLOAD],+[m4_pattern_allow([^LT_DLLOADERS$])+LT_DLLOADERS=+AC_SUBST([LT_DLLOADERS])++AC_LANG_PUSH([C])+lt_dlload_save_LIBS=$LIBS++LIBADD_DLOPEN=+AC_SEARCH_LIBS([dlopen], [dl],+ [AC_DEFINE([HAVE_LIBDL], [1],+ [Define if you have the libdl library or equivalent.])+ if test "$ac_cv_search_dlopen" != "none required"; then+ LIBADD_DLOPEN=-ldl+ fi+ libltdl_cv_lib_dl_dlopen=yes+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],+ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#if HAVE_DLFCN_H+# include <dlfcn.h>+#endif+ ]], [[dlopen(0, 0);]])],+ [AC_DEFINE([HAVE_LIBDL], [1],+ [Define if you have the libdl library or equivalent.])+ libltdl_cv_func_dlopen=yes+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"],+ [AC_CHECK_LIB([svld], [dlopen],+ [AC_DEFINE([HAVE_LIBDL], [1],+ [Define if you have the libdl library or equivalent.])+ LIBADD_DLOPEN=-lsvld libltdl_cv_func_dlopen=yes+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dlopen.la"])])])+if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"+then+ lt_save_LIBS=$LIBS+ LIBS="$LIBS $LIBADD_DLOPEN"+ AC_CHECK_FUNCS([dlerror])+ LIBS=$lt_save_LIBS+fi+AC_SUBST([LIBADD_DLOPEN])++LIBADD_SHL_LOAD=+AC_CHECK_FUNC([shl_load],+ [AC_DEFINE([HAVE_SHL_LOAD], [1],+ [Define if you have the shl_load function.])+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"],+ [AC_CHECK_LIB([dld], [shl_load],+ [AC_DEFINE([HAVE_SHL_LOAD], [1],+ [Define if you have the shl_load function.])+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}shl_load.la"+ LIBADD_SHL_LOAD=-ldld])])+AC_SUBST([LIBADD_SHL_LOAD])++case $host_os in+darwin[[1567]].*)+# We only want this for pre-Mac OS X 10.4.+ AC_CHECK_FUNC([_dyld_func_lookup],+ [AC_DEFINE([HAVE_DYLD], [1],+ [Define if you have the _dyld_func_lookup function.])+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dyld.la"])+ ;;+beos*)+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}load_add_on.la"+ ;;+cygwin* | mingw* | pw32*)+ AC_CHECK_DECLS([cygwin_conv_path], [], [], [[#include <sys/cygwin.h>]])+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}loadlibrary.la"+ ;;+esac++AC_CHECK_LIB([dld], [dld_link],+ [AC_DEFINE([HAVE_DLD], [1],+ [Define if you have the GNU dld library.])+ LT_DLLOADERS="$LT_DLLOADERS ${lt_dlopen_dir+$lt_dlopen_dir/}dld_link.la"])+AC_SUBST([LIBADD_DLD_LINK])++m4_pattern_allow([^LT_DLPREOPEN$])+LT_DLPREOPEN=+if test -n "$LT_DLLOADERS"+then+ for lt_loader in $LT_DLLOADERS; do+ LT_DLPREOPEN="$LT_DLPREOPEN-dlpreopen $lt_loader "+ done+ AC_DEFINE([HAVE_LIBDLLOADER], [1],+ [Define if libdlloader will be built on this platform])+fi+AC_SUBST([LT_DLPREOPEN])++dnl This isn't used anymore, but set it for backwards compatibility+LIBADD_DL="$LIBADD_DLOPEN $LIBADD_SHL_LOAD"+AC_SUBST([LIBADD_DL])++LIBS=$lt_dlload_save_LIBS+AC_LANG_POP+])# LT_LIB_DLLOAD++# Old name:+AU_ALIAS([AC_LTDL_DLLIB], [LT_LIB_DLLOAD])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_DLLIB], [])+++# LT_SYS_SYMBOL_USCORE+# --------------------+# does the compiler prefix global symbols with an underscore?+AC_DEFUN([LT_SYS_SYMBOL_USCORE],+[m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl+AC_CACHE_CHECK([for _ prefix in compiled symbols],+ [lt_cv_sys_symbol_underscore],+ [lt_cv_sys_symbol_underscore=no+ cat > conftest.$ac_ext <<_LT_EOF+void nm_test_func(){}+int main(){nm_test_func;return 0;}+_LT_EOF+ if AC_TRY_EVAL(ac_compile); then+ # Now try to grab the symbols.+ ac_nlist=conftest.nm+ if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) && test -s "$ac_nlist"; then+ # See whether the symbols have a leading underscore.+ if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then+ lt_cv_sys_symbol_underscore=yes+ else+ if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then+ :+ else+ echo "configure: cannot find nm_test_func in $ac_nlist" >&AS_MESSAGE_LOG_FD+ fi+ fi+ else+ echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD+ fi+ else+ echo "configure: failed program was:" >&AS_MESSAGE_LOG_FD+ cat conftest.c >&AS_MESSAGE_LOG_FD+ fi+ rm -rf conftest*+ ])+ sys_symbol_underscore=$lt_cv_sys_symbol_underscore+ AC_SUBST([sys_symbol_underscore])+])# LT_SYS_SYMBOL_USCORE++# Old name:+AU_ALIAS([AC_LTDL_SYMBOL_USCORE], [LT_SYS_SYMBOL_USCORE])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_SYMBOL_USCORE], [])+++# LT_FUNC_DLSYM_USCORE+# --------------------+AC_DEFUN([LT_FUNC_DLSYM_USCORE],+[AC_REQUIRE([_LT_COMPILER_PIC])dnl for lt_prog_compiler_wl+AC_REQUIRE([LT_SYS_SYMBOL_USCORE])dnl for lt_cv_sys_symbol_underscore+AC_REQUIRE([LT_SYS_MODULE_EXT])dnl for libltdl_cv_shlibext+if test yes = "$lt_cv_sys_symbol_underscore"; then+ if test yes = "$libltdl_cv_func_dlopen" || test yes = "$libltdl_cv_lib_dl_dlopen"; then+ AC_CACHE_CHECK([whether we have to add an underscore for dlsym],+ [libltdl_cv_need_uscore],+ [libltdl_cv_need_uscore=unknown+ dlsym_uscore_save_LIBS=$LIBS+ LIBS="$LIBS $LIBADD_DLOPEN"+ libname=conftmod # stay within 8.3 filename limits!+ cat >$libname.$ac_ext <<_LT_EOF+[#line $LINENO "configure"+#include "confdefs.h"+/* When -fvisibility=hidden is used, assume the code has been annotated+ correspondingly for the symbols needed. */+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))+int fnord () __attribute__((visibility("default")));+#endif+int fnord () { return 42; }]+_LT_EOF++ # ltfn_module_cmds module_cmds+ # Execute tilde-delimited MODULE_CMDS with environment primed for+ # $module_cmds or $archive_cmds type content.+ ltfn_module_cmds ()+ {( # subshell avoids polluting parent global environment+ module_cmds_save_ifs=$IFS; IFS='~'+ for cmd in @S|@1; do+ IFS=$module_cmds_save_ifs+ libobjs=$libname.$ac_objext; lib=$libname$libltdl_cv_shlibext+ rpath=/not-exists; soname=$libname$libltdl_cv_shlibext; output_objdir=.+ major=; versuffix=; verstring=; deplibs=+ ECHO=echo; wl=$lt_prog_compiler_wl; allow_undefined_flag=+ eval $cmd+ done+ IFS=$module_cmds_save_ifs+ )}++ # Compile a loadable module using libtool macro expansion results.+ $CC $pic_flag -c $libname.$ac_ext+ ltfn_module_cmds "${module_cmds:-$archive_cmds}"++ # Try to fetch fnord with dlsym().+ libltdl_dlunknown=0; libltdl_dlnouscore=1; libltdl_dluscore=2+ cat >conftest.$ac_ext <<_LT_EOF+[#line $LINENO "configure"+#include "confdefs.h"+#if HAVE_DLFCN_H+#include <dlfcn.h>+#endif+#include <stdio.h>+#ifndef RTLD_GLOBAL+# ifdef DL_GLOBAL+# define RTLD_GLOBAL DL_GLOBAL+# else+# define RTLD_GLOBAL 0+# endif+#endif+#ifndef RTLD_NOW+# ifdef DL_NOW+# define RTLD_NOW DL_NOW+# else+# define RTLD_NOW 0+# endif+#endif+int main () {+ void *handle = dlopen ("`pwd`/$libname$libltdl_cv_shlibext", RTLD_GLOBAL|RTLD_NOW);+ int status = $libltdl_dlunknown;+ if (handle) {+ if (dlsym (handle, "fnord"))+ status = $libltdl_dlnouscore;+ else {+ if (dlsym (handle, "_fnord"))+ status = $libltdl_dluscore;+ else+ puts (dlerror ());+ }+ dlclose (handle);+ } else+ puts (dlerror ());+ return status;+}]+_LT_EOF+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null+ libltdl_status=$?+ case x$libltdl_status in+ x$libltdl_dlnouscore) libltdl_cv_need_uscore=no ;;+ x$libltdl_dluscore) libltdl_cv_need_uscore=yes ;;+ x*) libltdl_cv_need_uscore=unknown ;;+ esac+ fi+ rm -rf conftest* $libname*+ LIBS=$dlsym_uscore_save_LIBS+ ])+ fi+fi++if test yes = "$libltdl_cv_need_uscore"; then+ AC_DEFINE([NEED_USCORE], [1],+ [Define if dlsym() requires a leading underscore in symbol names.])+fi+])# LT_FUNC_DLSYM_USCORE++# Old name:+AU_ALIAS([AC_LTDL_DLSYM_USCORE], [LT_FUNC_DLSYM_USCORE])+dnl aclocal-1.4 backwards compatibility:+dnl AC_DEFUN([AC_LTDL_DLSYM_USCORE], [])++# Copyright (C) 2002-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_AUTOMAKE_VERSION(VERSION)+# ----------------------------+# Automake X.Y traces this macro to ensure aclocal.m4 has been+# generated from the m4 files accompanying Automake X.Y.+# (This private macro should not be called outside this file.)+AC_DEFUN([AM_AUTOMAKE_VERSION],+[am__api_version='1.16'+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to+dnl require some minimum version. Point them to the right macro.+m4_if([$1], [1.16.5], [],+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl+])++# _AM_AUTOCONF_VERSION(VERSION)+# -----------------------------+# aclocal traces this macro to find the Autoconf version.+# This is a private macro too. Using m4_define simplifies+# the logic in aclocal, which can simply ignore this definition.+m4_define([_AM_AUTOCONF_VERSION], [])++# AM_SET_CURRENT_AUTOMAKE_VERSION+# -------------------------------+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],+[AM_AUTOMAKE_VERSION([1.16.5])dnl+m4_ifndef([AC_AUTOCONF_VERSION],+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])++# Figure out how to run the assembler. -*- Autoconf -*-++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_PROG_AS+# ----------+AC_DEFUN([AM_PROG_AS],+[# By default we simply use the C compiler to build assembly code.+AC_REQUIRE([AC_PROG_CC])+test "${CCAS+set}" = set || CCAS=$CC+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS+AC_ARG_VAR([CCAS], [assembler compiler command (defaults to CC)])+AC_ARG_VAR([CCASFLAGS], [assembler compiler flags (defaults to CFLAGS)])+_AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl+])++# AM_AUX_DIR_EXPAND -*- Autoconf -*-++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.+#+# Of course, Automake must honor this variable whenever it calls a+# tool from the auxiliary directory. The problem is that $srcdir (and+# therefore $ac_aux_dir as well) can be either absolute or relative,+# depending on how configure is run. This is pretty annoying, since+# it makes $ac_aux_dir quite unusable in subdirectories: in the top+# source directory, any form will work fine, but in subdirectories a+# relative path needs to be adjusted first.+#+# $ac_aux_dir/missing+# fails when called from a subdirectory if $ac_aux_dir is relative+# $top_srcdir/$ac_aux_dir/missing+# fails if $ac_aux_dir is absolute,+# fails when called from a subdirectory in a VPATH build with+# a relative $ac_aux_dir+#+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir+# are both prefixed by $srcdir. In an in-source build this is usually+# harmless because $srcdir is '.', but things will broke when you+# start a VPATH build or use an absolute $srcdir.+#+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`+# and then we would define $MISSING as+# MISSING="\${SHELL} $am_aux_dir/missing"+# This will work as long as MISSING is not called from configure, because+# unfortunately $(top_srcdir) has no meaning in configure.+# However there are other variables, like CC, which are often used in+# configure, and could therefore not use this "fixed" $ac_aux_dir.+#+# Another solution, used here, is to always expand $ac_aux_dir to an+# absolute PATH. The drawback is that using absolute paths prevent a+# configured tree to be moved without reconfiguration.++AC_DEFUN([AM_AUX_DIR_EXPAND],+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl+# Expand $ac_aux_dir to an absolute path.+am_aux_dir=`cd "$ac_aux_dir" && pwd`+])++# AM_CONDITIONAL -*- Autoconf -*-++# Copyright (C) 1997-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_CONDITIONAL(NAME, SHELL-CONDITION)+# -------------------------------------+# Define a conditional.+AC_DEFUN([AM_CONDITIONAL],+[AC_PREREQ([2.52])dnl+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl+AC_SUBST([$1_TRUE])dnl+AC_SUBST([$1_FALSE])dnl+_AM_SUBST_NOTMAKE([$1_TRUE])dnl+_AM_SUBST_NOTMAKE([$1_FALSE])dnl+m4_define([_AM_COND_VALUE_$1], [$2])dnl+if $2; then+ $1_TRUE=+ $1_FALSE='#'+else+ $1_TRUE='#'+ $1_FALSE=+fi+AC_CONFIG_COMMANDS_PRE(+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then+ AC_MSG_ERROR([[conditional "$1" was never defined.+Usually this means the macro was only invoked conditionally.]])+fi])])++# Copyright (C) 1999-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.+++# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be+# written in clear, in which case automake, when reading aclocal.m4,+# will think it sees a *use*, and therefore will trigger all it's+# C support machinery. Also note that it means that autoscan, seeing+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...+++# _AM_DEPENDENCIES(NAME)+# ----------------------+# See how the compiler implements dependency checking.+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".+# We try a few techniques and use that to set a single cache variable.+#+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular+# dependency, and given that the user is not expected to run this macro,+# just rely on AC_PROG_CC.+AC_DEFUN([_AM_DEPENDENCIES],+[AC_REQUIRE([AM_SET_DEPDIR])dnl+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl+AC_REQUIRE([AM_MAKE_INCLUDE])dnl+AC_REQUIRE([AM_DEP_TRACK])dnl++m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],+ [depcc="$$1" am_compiler_list=])++AC_CACHE_CHECK([dependency style of $depcc],+ [am_cv_$1_dependencies_compiler_type],+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then+ # We make a subdir and do the tests there. Otherwise we can end up+ # making bogus files that we don't know about and never remove. For+ # instance it was reported that on HP-UX the gcc test will end up+ # making a dummy file named 'D' -- because '-MD' means "put the output+ # in D".+ rm -rf conftest.dir+ mkdir conftest.dir+ # Copy depcomp to subdir because otherwise we won't find it if we're+ # using a relative directory.+ cp "$am_depcomp" conftest.dir+ cd conftest.dir+ # We will build objects and dependencies in a subdirectory because+ # it helps to detect inapplicable dependency modes. For instance+ # both Tru64's cc and ICC support -MD to output dependencies as a+ # side effect of compilation, but ICC will put the dependencies in+ # the current directory while Tru64 will put them in the object+ # directory.+ mkdir sub++ am_cv_$1_dependencies_compiler_type=none+ if test "$am_compiler_list" = ""; then+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`+ fi+ am__universal=false+ m4_case([$1], [CC],+ [case " $depcc " in #(+ *\ -arch\ *\ -arch\ *) am__universal=true ;;+ esac],+ [CXX],+ [case " $depcc " in #(+ *\ -arch\ *\ -arch\ *) am__universal=true ;;+ esac])++ for depmode in $am_compiler_list; do+ # Setup a source with many dependencies, because some compilers+ # like to wrap large dependency lists on column 80 (with \), and+ # we should not choose a depcomp mode which is confused by this.+ #+ # We need to recreate these files for each test, as the compiler may+ # overwrite some of them when testing with obscure command lines.+ # This happens at least with the AIX C compiler.+ : > sub/conftest.c+ for i in 1 2 3 4 5 6; do+ echo '#include "conftst'$i'.h"' >> sub/conftest.c+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with+ # Solaris 10 /bin/sh.+ echo '/* dummy */' > sub/conftst$i.h+ done+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf++ # We check with '-c' and '-o' for the sake of the "dashmstdout"+ # mode. It turns out that the SunPro C++ compiler does not properly+ # handle '-M -o', and we need to detect this. Also, some Intel+ # versions had trouble with output in subdirs.+ am__obj=sub/conftest.${OBJEXT-o}+ am__minus_obj="-o $am__obj"+ case $depmode in+ gcc)+ # This depmode causes a compiler race in universal mode.+ test "$am__universal" = false || continue+ ;;+ nosideeffect)+ # After this tag, mechanisms are not by side-effect, so they'll+ # only be used when explicitly requested.+ if test "x$enable_dependency_tracking" = xyes; then+ continue+ else+ break+ fi+ ;;+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)+ # This compiler won't grok '-c -o', but also, the minuso test has+ # not run yet. These depmodes are late enough in the game, and+ # so weak that their functioning should not be impacted.+ am__obj=conftest.${OBJEXT-o}+ am__minus_obj=+ ;;+ none) break ;;+ esac+ if depmode=$depmode \+ source=sub/conftest.c object=$am__obj \+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \+ >/dev/null 2>conftest.err &&+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then+ # icc doesn't choke on unknown options, it will just issue warnings+ # or remarks (even with -Werror). So we grep stderr for any message+ # that says an option was ignored or not supported.+ # When given -MP, icc 7.0 and 7.1 complain thusly:+ # icc: Command line warning: ignoring option '-M'; no argument required+ # The diagnosis changed in icc 8.0:+ # icc: Command line remark: option '-MP' not supported+ if (grep 'ignoring option' conftest.err ||+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else+ am_cv_$1_dependencies_compiler_type=$depmode+ break+ fi+ fi+ done++ cd ..+ rm -rf conftest.dir+else+ am_cv_$1_dependencies_compiler_type=none+fi+])+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])+AM_CONDITIONAL([am__fastdep$1], [+ test "x$enable_dependency_tracking" != xno \+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])+])+++# AM_SET_DEPDIR+# -------------+# Choose a directory name for dependency files.+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.+AC_DEFUN([AM_SET_DEPDIR],+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl+])+++# AM_DEP_TRACK+# ------------+AC_DEFUN([AM_DEP_TRACK],+[AC_ARG_ENABLE([dependency-tracking], [dnl+AS_HELP_STRING(+ [--enable-dependency-tracking],+ [do not reject slow dependency extractors])+AS_HELP_STRING(+ [--disable-dependency-tracking],+ [speeds up one-time build])])+if test "x$enable_dependency_tracking" != xno; then+ am_depcomp="$ac_aux_dir/depcomp"+ AMDEPBACKSLASH='\'+ am__nodep='_no'+fi+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])+AC_SUBST([AMDEPBACKSLASH])dnl+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl+AC_SUBST([am__nodep])dnl+_AM_SUBST_NOTMAKE([am__nodep])dnl+])++# Generate code to set up dependency tracking. -*- Autoconf -*-++# Copyright (C) 1999-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# _AM_OUTPUT_DEPENDENCY_COMMANDS+# ------------------------------+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],+[{+ # Older Autoconf quotes --file arguments for eval, but not when files+ # are listed without --file. Let's play safe and only enable the eval+ # if we detect the quoting.+ # TODO: see whether this extra hack can be removed once we start+ # requiring Autoconf 2.70 or later.+ AS_CASE([$CONFIG_FILES],+ [*\'*], [eval set x "$CONFIG_FILES"],+ [*], [set x $CONFIG_FILES])+ shift+ # Used to flag and report bootstrapping failures.+ am_rc=0+ for am_mf+ do+ # Strip MF so we end up with the name of the file.+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`+ # Check whether this is an Automake generated Makefile which includes+ # dependency-tracking related rules and includes.+ # Grep'ing the whole file directly is not great: AIX grep has a line+ # limit of 2048, but all sed's we know have understand at least 4000.+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \+ || continue+ am_dirpart=`AS_DIRNAME(["$am_mf"])`+ am_filepart=`AS_BASENAME(["$am_mf"])`+ AM_RUN_LOG([cd "$am_dirpart" \+ && sed -e '/# am--include-marker/d' "$am_filepart" \+ | $MAKE -f - am--depfiles]) || am_rc=$?+ done+ if test $am_rc -ne 0; then+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments+ for automatic dependency tracking. If GNU make was not used, consider+ re-running the configure script with MAKE="gmake" (or whatever is+ necessary). You can also try re-running configure with the+ '--disable-dependency-tracking' option to at least be able to build+ the package (albeit without support for automatic dependency tracking).])+ fi+ AS_UNSET([am_dirpart])+ AS_UNSET([am_filepart])+ AS_UNSET([am_mf])+ AS_UNSET([am_rc])+ rm -f conftest-deps.mk+}+])# _AM_OUTPUT_DEPENDENCY_COMMANDS+++# AM_OUTPUT_DEPENDENCY_COMMANDS+# -----------------------------+# This macro should only be invoked once -- use via AC_REQUIRE.+#+# This code is only required when automatic dependency tracking is enabled.+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in+# order to bootstrap the dependency handling code.+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],+[AC_CONFIG_COMMANDS([depfiles],+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])++# Do all the work for Automake. -*- Autoconf -*-++# Copyright (C) 1996-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# This macro actually does too much. Some checks are only needed if+# your package does certain things. But this isn't really a big deal.++dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.+m4_define([AC_PROG_CC],+m4_defn([AC_PROG_CC])+[_AM_PROG_CC_C_O+])++# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])+# AM_INIT_AUTOMAKE([OPTIONS])+# -----------------------------------------------+# The call with PACKAGE and VERSION arguments is the old style+# call (pre autoconf-2.50), which is being phased out. PACKAGE+# and VERSION should now be passed to AC_INIT and removed from+# the call to AM_INIT_AUTOMAKE.+# We support both call styles for the transition. After+# the next Automake release, Autoconf can make the AC_INIT+# arguments mandatory, and then we can depend on a new Autoconf+# release and drop the old call support.+AC_DEFUN([AM_INIT_AUTOMAKE],+[AC_PREREQ([2.65])dnl+m4_ifdef([_$0_ALREADY_INIT],+ [m4_fatal([$0 expanded multiple times+]m4_defn([_$0_ALREADY_INIT]))],+ [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl+dnl Autoconf wants to disallow AM_ names. We explicitly allow+dnl the ones we care about.+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl+AC_REQUIRE([AC_PROG_INSTALL])dnl+if test "`cd $srcdir && pwd`" != "`pwd`"; then+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output+ # is not polluted with repeated "-I."+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl+ # test to see if srcdir already configured+ if test -f $srcdir/config.status; then+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])+ fi+fi++# test whether we have cygpath+if test -z "$CYGPATH_W"; then+ if (cygpath --version) >/dev/null 2>/dev/null; then+ CYGPATH_W='cygpath -w'+ else+ CYGPATH_W=echo+ fi+fi+AC_SUBST([CYGPATH_W])++# Define the identity of the package.+dnl Distinguish between old-style and new-style calls.+m4_ifval([$2],+[AC_DIAGNOSE([obsolete],+ [$0: two- and three-arguments forms are deprecated.])+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl+ AC_SUBST([PACKAGE], [$1])dnl+ AC_SUBST([VERSION], [$2])],+[_AM_SET_OPTIONS([$1])dnl+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.+m4_if(+ m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),+ [ok:ok],,+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl++_AM_IF_OPTION([no-define],,+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl++# Some tools Automake needs.+AC_REQUIRE([AM_SANITY_CHECK])dnl+AC_REQUIRE([AC_ARG_PROGRAM])dnl+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])+AM_MISSING_PROG([AUTOCONF], [autoconf])+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])+AM_MISSING_PROG([AUTOHEADER], [autoheader])+AM_MISSING_PROG([MAKEINFO], [makeinfo])+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl+AC_REQUIRE([AC_PROG_MKDIR_P])dnl+# For better backward compatibility. To be removed once Automake 1.9.x+# dies out for good. For more background, see:+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])+# We need awk for the "check" target (and possibly the TAP driver). The+# system "awk" is bad on some platforms.+AC_REQUIRE([AC_PROG_AWK])dnl+AC_REQUIRE([AC_PROG_MAKE_SET])dnl+AC_REQUIRE([AM_SET_LEADING_DOT])dnl+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],+ [_AM_PROG_TAR([v7])])])+_AM_IF_OPTION([no-dependencies],,+[AC_PROVIDE_IFELSE([AC_PROG_CC],+ [_AM_DEPENDENCIES([CC])],+ [m4_define([AC_PROG_CC],+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl+AC_PROVIDE_IFELSE([AC_PROG_CXX],+ [_AM_DEPENDENCIES([CXX])],+ [m4_define([AC_PROG_CXX],+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl+AC_PROVIDE_IFELSE([AC_PROG_OBJC],+ [_AM_DEPENDENCIES([OBJC])],+ [m4_define([AC_PROG_OBJC],+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],+ [_AM_DEPENDENCIES([OBJCXX])],+ [m4_define([AC_PROG_OBJCXX],+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl+])+# Variables for tags utilities; see am/tags.am+if test -z "$CTAGS"; then+ CTAGS=ctags+fi+AC_SUBST([CTAGS])+if test -z "$ETAGS"; then+ ETAGS=etags+fi+AC_SUBST([ETAGS])+if test -z "$CSCOPE"; then+ CSCOPE=cscope+fi+AC_SUBST([CSCOPE])++AC_REQUIRE([AM_SILENT_RULES])dnl+dnl The testsuite driver may need to know about EXEEXT, so add the+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.+AC_CONFIG_COMMANDS_PRE(dnl+[m4_provide_if([_AM_COMPILER_EXEEXT],+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl++# POSIX will say in a future version that running "rm -f" with no argument+# is OK; and we want to be able to make that assumption in our Makefile+# recipes. So use an aggressive probe to check that the usage we want is+# actually supported "in the wild" to an acceptable degree.+# See automake bug#10828.+# To make any issue more visible, cause the running configure to be aborted+# by default if the 'rm' program in use doesn't match our expectations; the+# user can still override this though.+if rm -f && rm -fr && rm -rf; then : OK; else+ cat >&2 <<'END'+Oops!++Your 'rm' program seems unable to run without file operands specified+on the command line, even when the '-f' option is present. This is contrary+to the behaviour of most rm programs out there, and not conforming with+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>++Please tell bug-automake@gnu.org about your system, including the value+of your $PATH and any error possibly output before this message. This+can help us improve future automake versions.++END+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then+ echo 'Configuration will proceed anyway, since you have set the' >&2+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2+ echo >&2+ else+ cat >&2 <<'END'+Aborting the configuration process, to ensure you take notice of the issue.++You can download and install GNU coreutils to get an 'rm' implementation+that behaves properly: <https://www.gnu.org/software/coreutils/>.++If you want to complete the configuration process using your problematic+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM+to "yes", and re-run configure.++END+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])+ fi+fi+dnl The trailing newline in this macro's definition is deliberate, for+dnl backward compatibility and to allow trailing 'dnl'-style comments+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.+])++dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further+dnl mangled by Autoconf and run in a shell conditional statement.+m4_define([_AC_COMPILER_EXEEXT],+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])++# When config.status generates a header, we must update the stamp-h file.+# This file resides in the same directory as the config header+# that is generated. The stamp files are numbered to have different names.++# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the+# loop where config.status creates the headers, so we can generate+# our stamp files there.+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],+[# Compute $1's index in $config_headers.+_am_arg=$1+_am_stamp_count=1+for _am_header in $config_headers :; do+ case $_am_header in+ $_am_arg | $_am_arg:* )+ break ;;+ * )+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;+ esac+done+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_PROG_INSTALL_SH+# ------------------+# Define $install_sh.+AC_DEFUN([AM_PROG_INSTALL_SH],+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl+if test x"${install_sh+set}" != xset; then+ case $am_aux_dir in+ *\ * | *\ *)+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;+ *)+ install_sh="\${SHELL} $am_aux_dir/install-sh"+ esac+fi+AC_SUBST([install_sh])])++# Copyright (C) 2003-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# Check whether the underlying file-system supports filenames+# with a leading dot. For instance MS-DOS doesn't.+AC_DEFUN([AM_SET_LEADING_DOT],+[rm -rf .tst 2>/dev/null+mkdir .tst 2>/dev/null+if test -d .tst; then+ am__leading_dot=.+else+ am__leading_dot=_+fi+rmdir .tst 2>/dev/null+AC_SUBST([am__leading_dot])])++# Add --enable-maintainer-mode option to configure. -*- Autoconf -*-+# From Jim Meyering++# Copyright (C) 1996-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_MAINTAINER_MODE([DEFAULT-MODE])+# ----------------------------------+# Control maintainer-specific portions of Makefiles.+# Default is to disable them, unless 'enable' is passed literally.+# For symmetry, 'disable' may be passed as well. Anyway, the user+# can override the default with the --enable/--disable switch.+AC_DEFUN([AM_MAINTAINER_MODE],+[m4_case(m4_default([$1], [disable]),+ [enable], [m4_define([am_maintainer_other], [disable])],+ [disable], [m4_define([am_maintainer_other], [enable])],+ [m4_define([am_maintainer_other], [enable])+ m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])])+AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])+ dnl maintainer-mode's default is 'disable' unless 'enable' is passed+ AC_ARG_ENABLE([maintainer-mode],+ [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode],+ am_maintainer_other[ make rules and dependencies not useful+ (and sometimes confusing) to the casual installer])],+ [USE_MAINTAINER_MODE=$enableval],+ [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))+ AC_MSG_RESULT([$USE_MAINTAINER_MODE])+ AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])+ MAINT=$MAINTAINER_MODE_TRUE+ AC_SUBST([MAINT])dnl+]+)++# Check to see how 'make' treats includes. -*- Autoconf -*-++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_MAKE_INCLUDE()+# -----------------+# Check whether make has an 'include' directive that can support all+# the idioms we need for our automatic dependency tracking code.+AC_DEFUN([AM_MAKE_INCLUDE],+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])+cat > confinc.mk << 'END'+am__doit:+ @echo this is the am__doit target >confinc.out+.PHONY: am__doit+END+am__include="#"+am__quote=+# BSD make does it like this.+echo '.include "confinc.mk" # ignored' > confmf.BSD+# Other make implementations (GNU, Solaris 10, AIX) do it like this.+echo 'include confinc.mk # ignored' > confmf.GNU+_am_result=no+for s in GNU BSD; do+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],+ ['0:this is the am__doit target'],+ [AS_CASE([$s],+ [BSD], [am__include='.include' am__quote='"'],+ [am__include='include' am__quote=''])])+ if test "$am__include" != "#"; then+ _am_result="yes ($s style)"+ break+ fi+done+rm -f confinc.* confmf.*+AC_MSG_RESULT([${_am_result}])+AC_SUBST([am__include])])+AC_SUBST([am__quote])])++# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-++# Copyright (C) 1997-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_MISSING_PROG(NAME, PROGRAM)+# ------------------------------+AC_DEFUN([AM_MISSING_PROG],+[AC_REQUIRE([AM_MISSING_HAS_RUN])+$1=${$1-"${am_missing_run}$2"}+AC_SUBST($1)])++# AM_MISSING_HAS_RUN+# ------------------+# Define MISSING if not defined so far and test if it is modern enough.+# If it is, set am_missing_run to use it, otherwise, to nothing.+AC_DEFUN([AM_MISSING_HAS_RUN],+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl+AC_REQUIRE_AUX_FILE([missing])dnl+if test x"${MISSING+set}" != xset; then+ MISSING="\${SHELL} '$am_aux_dir/missing'"+fi+# Use eval to expand $SHELL+if eval "$MISSING --is-lightweight"; then+ am_missing_run="$MISSING "+else+ am_missing_run=+ AC_MSG_WARN(['missing' script is too old or missing])+fi+])++# Helper functions for option handling. -*- Autoconf -*-++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# _AM_MANGLE_OPTION(NAME)+# -----------------------+AC_DEFUN([_AM_MANGLE_OPTION],+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])++# _AM_SET_OPTION(NAME)+# --------------------+# Set option NAME. Presently that only means defining a flag for this option.+AC_DEFUN([_AM_SET_OPTION],+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])++# _AM_SET_OPTIONS(OPTIONS)+# ------------------------+# OPTIONS is a space-separated list of Automake options.+AC_DEFUN([_AM_SET_OPTIONS],+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])++# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])+# -------------------------------------------+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.+AC_DEFUN([_AM_IF_OPTION],+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])++# Copyright (C) 1999-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# _AM_PROG_CC_C_O+# ---------------+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC+# to automatically call this.+AC_DEFUN([_AM_PROG_CC_C_O],+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl+AC_REQUIRE_AUX_FILE([compile])dnl+AC_LANG_PUSH([C])dnl+AC_CACHE_CHECK(+ [whether $CC understands -c and -o together],+ [am_cv_prog_cc_c_o],+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])+ # Make sure it works both with $CC and with simple cc.+ # Following AC_PROG_CC_C_O, we do the test twice because some+ # compilers refuse to overwrite an existing .o file with -o,+ # though they will create one.+ am_cv_prog_cc_c_o=yes+ for am_i in 1 2; do+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \+ && test -f conftest2.$ac_objext; then+ : OK+ else+ am_cv_prog_cc_c_o=no+ break+ fi+ done+ rm -f core conftest*+ unset am_i])+if test "$am_cv_prog_cc_c_o" != yes; then+ # Losing compiler, so override with the script.+ # FIXME: It is wrong to rewrite CC.+ # But if we don't then we get into trouble of one sort or another.+ # A longer-term fix would be to have automake use am__CC in this case,+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"+ CC="$am_aux_dir/compile $CC"+fi+AC_LANG_POP([C])])++# For backward compatibility.+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_RUN_LOG(COMMAND)+# -------------------+# Run COMMAND, save the exit status in ac_status, and log it.+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)+AC_DEFUN([AM_RUN_LOG],+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD+ ac_status=$?+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD+ (exit $ac_status); }])++# Check to make sure that the build environment is sane. -*- Autoconf -*-++# Copyright (C) 1996-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_SANITY_CHECK+# ---------------+AC_DEFUN([AM_SANITY_CHECK],+[AC_MSG_CHECKING([whether build environment is sane])+# Reject unsafe characters in $srcdir or the absolute working directory+# name. Accept space and tab only in the latter.+am_lf='+'+case `pwd` in+ *[[\\\"\#\$\&\'\`$am_lf]]*)+ AC_MSG_ERROR([unsafe absolute working directory name]);;+esac+case $srcdir in+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;+esac++# Do 'set' in a subshell so we don't clobber the current shell's+# arguments. Must try -L first in case configure is actually a+# symlink; some systems play weird games with the mod time of symlinks+# (eg FreeBSD returns the mod time of the symlink's containing+# directory).+if (+ am_has_slept=no+ for am_try in 1 2; do+ echo "timestamp, slept: $am_has_slept" > conftest.file+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`+ if test "$[*]" = "X"; then+ # -L didn't work.+ set X `ls -t "$srcdir/configure" conftest.file`+ fi+ if test "$[*]" != "X $srcdir/configure conftest.file" \+ && test "$[*]" != "X conftest.file $srcdir/configure"; then++ # If neither matched, then we have a broken ls. This can happen+ # if, for instance, CONFIG_SHELL is bash and it inherits a+ # broken ls alias from the environment. This has actually+ # happened. Such a system could not be considered "sane".+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken+ alias in your environment])+ fi+ if test "$[2]" = conftest.file || test $am_try -eq 2; then+ break+ fi+ # Just in case.+ sleep 1+ am_has_slept=yes+ done+ test "$[2]" = conftest.file+ )+then+ # Ok.+ :+else+ AC_MSG_ERROR([newly created file is older than distributed files!+Check your system clock])+fi+AC_MSG_RESULT([yes])+# If we didn't sleep, we still need to ensure time stamps of config.status and+# generated files are strictly newer.+am_sleep_pid=+if grep 'slept: no' conftest.file >/dev/null 2>&1; then+ ( sleep 1 ) &+ am_sleep_pid=$!+fi+AC_CONFIG_COMMANDS_PRE(+ [AC_MSG_CHECKING([that generated files are newer than configure])+ if test -n "$am_sleep_pid"; then+ # Hide warnings about reused PIDs.+ wait $am_sleep_pid 2>/dev/null+ fi+ AC_MSG_RESULT([done])])+rm -f conftest.file+])++# Copyright (C) 2009-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_SILENT_RULES([DEFAULT])+# --------------------------+# Enable less verbose build rules; with the default set to DEFAULT+# ("yes" being less verbose, "no" or empty being verbose).+AC_DEFUN([AM_SILENT_RULES],+[AC_ARG_ENABLE([silent-rules], [dnl+AS_HELP_STRING(+ [--enable-silent-rules],+ [less verbose build output (undo: "make V=1")])+AS_HELP_STRING(+ [--disable-silent-rules],+ [verbose build output (undo: "make V=0")])dnl+])+case $enable_silent_rules in @%:@ (((+ yes) AM_DEFAULT_VERBOSITY=0;;+ no) AM_DEFAULT_VERBOSITY=1;;+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;+esac+dnl+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)+dnl do not support nested variable expansions.+dnl See automake bug#9928 and bug#10237.+am_make=${MAKE-make}+AC_CACHE_CHECK([whether $am_make supports nested variables],+ [am_cv_make_support_nested_variables],+ [if AS_ECHO([['TRUE=$(BAR$(V))+BAR0=false+BAR1=true+V=1+am__doit:+ @$(TRUE)+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then+ am_cv_make_support_nested_variables=yes+else+ am_cv_make_support_nested_variables=no+fi])+if test $am_cv_make_support_nested_variables = yes; then+ dnl Using '$V' instead of '$(V)' breaks IRIX make.+ AM_V='$(V)'+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'+else+ AM_V=$AM_DEFAULT_VERBOSITY+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY+fi+AC_SUBST([AM_V])dnl+AM_SUBST_NOTMAKE([AM_V])dnl+AC_SUBST([AM_DEFAULT_V])dnl+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl+AM_BACKSLASH='\'+AC_SUBST([AM_BACKSLASH])dnl+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl+])++# Copyright (C) 2001-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# AM_PROG_INSTALL_STRIP+# ---------------------+# One issue with vendor 'install' (even GNU) is that you can't+# specify the program used to strip binaries. This is especially+# annoying in cross-compiling environments, where the build's strip+# is unlikely to handle the host's binaries.+# Fortunately install-sh will honor a STRIPPROG variable, so we+# always use install-sh in "make install-strip", and initialize+# STRIPPROG with the value of the STRIP variable (set by the user).+AC_DEFUN([AM_PROG_INSTALL_STRIP],+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl+# Installed binaries are usually stripped using 'strip' when the user+# run "make install-strip". However 'strip' might not be the right+# tool to use in cross-compilation environments, therefore Automake+# will honor the 'STRIP' environment variable to overrule this program.+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.+if test "$cross_compiling" != no; then+ AC_CHECK_TOOL([STRIP], [strip], :)+fi+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"+AC_SUBST([INSTALL_STRIP_PROGRAM])])++# Copyright (C) 2006-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# _AM_SUBST_NOTMAKE(VARIABLE)+# ---------------------------+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.+# This macro is traced by Automake.+AC_DEFUN([_AM_SUBST_NOTMAKE])++# AM_SUBST_NOTMAKE(VARIABLE)+# --------------------------+# Public sister of _AM_SUBST_NOTMAKE.+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])++# Check how to create a tarball. -*- Autoconf -*-++# Copyright (C) 2004-2021 Free Software Foundation, Inc.+#+# This file is free software; the Free Software Foundation+# gives unlimited permission to copy and/or distribute it,+# with or without modifications, as long as this notice is preserved.++# _AM_PROG_TAR(FORMAT)+# --------------------+# Check how to create a tarball in format FORMAT.+# FORMAT should be one of 'v7', 'ustar', or 'pax'.+#+# Substitute a variable $(am__tar) that is a command+# writing to stdout a FORMAT-tarball containing the directory+# $tardir.+# tardir=directory && $(am__tar) > result.tar+#+# Substitute a variable $(am__untar) that extract such+# a tarball read from stdin.+# $(am__untar) < result.tar+#+AC_DEFUN([_AM_PROG_TAR],+[# Always define AMTAR for backward compatibility. Yes, it's still used+# in the wild :-( We should find a proper way to deprecate it ...+AC_SUBST([AMTAR], ['$${TAR-tar}'])++# We'll loop over all known methods to create a tar archive until one works.+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'++m4_if([$1], [v7],+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],++ [m4_case([$1],+ [ustar],+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.+ # There is notably a 21 bits limit for the UID and the GID. In fact,+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343+ # and bug#13588).+ am_max_uid=2097151 # 2^21 - 1+ am_max_gid=$am_max_uid+ # The $UID and $GID variables are not portable, so we need to resort+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls+ # below are definitely unexpected, so allow the users to see them+ # (that is, avoid stderr redirection).+ am_uid=`id -u || echo unknown`+ am_gid=`id -g || echo unknown`+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])+ if test $am_uid -le $am_max_uid; then+ AC_MSG_RESULT([yes])+ else+ AC_MSG_RESULT([no])+ _am_tools=none+ fi+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])+ if test $am_gid -le $am_max_gid; then+ AC_MSG_RESULT([yes])+ else+ AC_MSG_RESULT([no])+ _am_tools=none+ fi],++ [pax],+ [],++ [m4_fatal([Unknown tar format])])++ AC_MSG_CHECKING([how to create a $1 tar archive])++ # Go ahead even if we have the value already cached. We do so because we+ # need to set the values for the 'am__tar' and 'am__untar' variables.+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}++ for _am_tool in $_am_tools; do+ case $_am_tool in+ gnutar)+ for _am_tar in tar gnutar gtar; do+ AM_RUN_LOG([$_am_tar --version]) && break+ done+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'+ am__untar="$_am_tar -xf -"+ ;;+ plaintar)+ # Must skip GNU tar: if it does not support --format= it doesn't create+ # ustar tarball either.+ (tar --version) >/dev/null 2>&1 && continue+ am__tar='tar chf - "$$tardir"'+ am__tar_='tar chf - "$tardir"'+ am__untar='tar xf -'+ ;;+ pax)+ am__tar='pax -L -x $1 -w "$$tardir"'+ am__tar_='pax -L -x $1 -w "$tardir"'+ am__untar='pax -r'+ ;;+ cpio)+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'+ am__untar='cpio -i -H $1 -d'+ ;;+ none)+ am__tar=false+ am__tar_=false+ am__untar=false+ ;;+ esac++ # If the value was cached, stop now. We just wanted to have am__tar+ # and am__untar set.+ test -n "${am_cv_prog_tar_$1}" && break++ # tar/untar a dummy directory, and stop if the command works.+ rm -rf conftest.dir+ mkdir conftest.dir+ echo GrepMe > conftest.dir/file+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])+ rm -rf conftest.dir+ if test -s conftest.tar; then+ AM_RUN_LOG([$am__untar <conftest.tar])+ AM_RUN_LOG([cat conftest.dir/file])+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break+ fi+ done+ rm -rf conftest.dir++ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])++AC_SUBST([am__tar])+AC_SUBST([am__untar])+]) # _AM_PROG_TAR++m4_include([m4/asmcfi.m4])+m4_include([m4/ax_cc_maxopt.m4])+m4_include([m4/ax_cflags_warn_all.m4])+m4_include([m4/ax_check_compile_flag.m4])+m4_include([m4/ax_compiler_vendor.m4])+m4_include([m4/ax_configure_args.m4])+m4_include([m4/ax_enable_builddir.m4])+m4_include([m4/ax_gcc_archflag.m4])+m4_include([m4/ax_gcc_x86_cpuid.m4])+m4_include([m4/ax_prepend_flag.m4])+m4_include([m4/ax_require_defined.m4])+m4_include([m4/libtool.m4]) m4_include([m4/ltoptions.m4]) m4_include([m4/ltsugar.m4]) m4_include([m4/ltversion.m4])
compile view
@@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2024-06-19.01; # UTC+scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2024 Free Software Foundation, Inc.+# Copyright (C) 1999-2021 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify@@ -143,7 +143,7 @@ # configure might choose to run compile as 'compile cc -o foo foo.c'. eat=1 case $2 in- *.o | *.lo | *.[oO][bB][jJ])+ *.o | *.[oO][bB][jJ]) func_file_conv "$2" set x "$@" -Fo"$file" shift@@ -248,17 +248,14 @@ right script to run: please start by reading the file 'INSTALL'. Report bugs to <bug-automake@gnu.org>.-GNU Automake home page: <https://www.gnu.org/software/automake/>.-General help using GNU software: <https://www.gnu.org/gethelp/>. EOF exit $? ;; -v | --v*)- echo "compile (GNU Automake) $scriptversion"+ echo "compile $scriptversion" exit $? ;; cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \- clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;;
config.guess view
@@ -1,10 +1,10 @@ #! /bin/sh # Attempt to guess a canonical system name.-# Copyright 1992-2024 Free Software Foundation, Inc.+# Copyright 1992-2022 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2024-01-01'+timestamp='2022-01-09' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by@@ -47,7 +47,7 @@ usage="\ Usage: $0 [OPTION] -Output the configuration name of the system '$me' is run on.+Output the configuration name of the system \`$me' is run on. Options: -h, --help print this help, then exit@@ -60,13 +60,13 @@ GNU config.guess ($timestamp) Originally written by Per Bothner.-Copyright 1992-2024 Free Software Foundation, Inc.+Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help="-Try '$me --help' for more information."+Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do@@ -102,8 +102,8 @@ # temporary files to be created and, as you can see below, it is a # headache to deal with in a portable fashion. -# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still-# use 'HOST_CC' if defined, but it is deprecated.+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still+# use `HOST_CC' if defined, but it is deprecated. # Portable tmp directory creation inspired by the Autoconf team. @@ -155,9 +155,6 @@ set_cc_for_build cat <<-EOF > "$dummy.c"- #if defined(__ANDROID__)- LIBC=android- #else #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc@@ -165,8 +162,6 @@ LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu- #elif defined(__LLVM_LIBC__)- LIBC=llvm #else #include <stdarg.h> /* First heuristic to detect musl libc. */@@ -174,7 +169,6 @@ LIBC=musl #endif #endif- #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc"@@ -465,7 +459,7 @@ UNAME_RELEASE=`uname -v` ;; esac- # Japanese Language versions have a version number like '4.1.3-JL'.+ # Japanese Language versions have a version number like `4.1.3-JL'. SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` GUESS=sparc-sun-sunos$SUN_REL ;;@@ -910,7 +904,7 @@ fi ;; *:FreeBSD:*:*)- UNAME_PROCESSOR=`uname -p`+ UNAME_PROCESSOR=`/usr/bin/uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;;@@ -972,37 +966,11 @@ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC ;;- x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*)- GUESS="$UNAME_MACHINE-pc-managarm-mlibc"- ;;- *:[Mm]anagarm:*:*)- GUESS="$UNAME_MACHINE-unknown-managarm-mlibc"- ;; *:Minix:*:*) GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*)- set_cc_for_build- CPU=$UNAME_MACHINE- LIBCABI=$LIBC- if test "$CC_FOR_BUILD" != no_compiler_found; then- ABI=64- sed 's/^ //' << EOF > "$dummy.c"- #ifdef __ARM_EABI__- #ifdef __ARM_PCS_VFP- ABI=eabihf- #else- ABI=eabi- #endif- #endif-EOF- cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`- eval "$cc_set_abi"- case $ABI in- eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;- esac- fi- GUESS=$CPU-unknown-linux-$LIBCABI+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be@@ -1068,16 +1036,7 @@ k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;;- kvx:Linux:*:*)- GUESS=$UNAME_MACHINE-unknown-linux-$LIBC- ;;- kvx:cos:*:*)- GUESS=$UNAME_MACHINE-unknown-cos- ;;- kvx:mbr:*:*)- GUESS=$UNAME_MACHINE-unknown-mbr- ;;- loongarch32:Linux:*:* | loongarch64:Linux:*:*)+ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; m32r*:Linux:*:*)@@ -1192,27 +1151,16 @@ ;; x86_64:Linux:*:*) set_cc_for_build- CPU=$UNAME_MACHINE LIBCABI=$LIBC if test "$CC_FOR_BUILD" != no_compiler_found; then- ABI=64- sed 's/^ //' << EOF > "$dummy.c"- #ifdef __i386__- ABI=x86- #else- #ifdef __ILP32__- ABI=x32- #endif- #endif-EOF- cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`- eval "$cc_set_abi"- case $ABI in- x86) CPU=i686 ;;- x32) LIBCABI=${LIBC}x32 ;;- esac+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \+ grep IS_X32 >/dev/null+ then+ LIBCABI=${LIBC}x32+ fi fi- GUESS=$CPU-pc-linux-$LIBCABI+ GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI ;; xtensa*:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC@@ -1232,7 +1180,7 @@ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION ;; i*86:OS/2:*:*)- # If we were able to find 'uname', then EMX Unix compatibility+ # If we were able to find `uname', then EMX Unix compatibility # is probably installed. GUESS=$UNAME_MACHINE-pc-os2-emx ;;@@ -1373,7 +1321,7 @@ GUESS=ns32k-sni-sysv fi ;;- PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort # says <Richard.M.Bartel@ccMail.Census.GOV> GUESS=i586-unisys-sysv4 ;;@@ -1419,11 +1367,8 @@ BePC:Haiku:*:*) # Haiku running on Intel PC compatible. GUESS=i586-pc-haiku ;;- ppc:Haiku:*:*) # Haiku running on Apple PowerPC- GUESS=powerpc-apple-haiku- ;;- *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat)- GUESS=$UNAME_MACHINE-unknown-haiku+ x86_64:Haiku:*:*)+ GUESS=x86_64-unknown-haiku ;; SX-4:SUPER-UX:*:*) GUESS=sx4-nec-superux$UNAME_RELEASE@@ -1594,9 +1539,6 @@ ;; *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE- ;;- *:Ironclad:*:*)- GUESS=$UNAME_MACHINE-unknown-ironclad ;; esac
config.sub view
@@ -1,10 +1,10 @@ #! /bin/sh # Configuration validation subroutine script.-# Copyright 1992-2024 Free Software Foundation, Inc.+# Copyright 1992-2022 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2024-01-01'+timestamp='2022-01-03' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by@@ -76,13 +76,13 @@ version="\ GNU config.sub ($timestamp) -Copyright 1992-2024 Free Software Foundation, Inc.+Copyright 1992-2022 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." help="-Try '$me --help' for more information."+Try \`$me --help' for more information." # Parse command line while test $# -gt 0 ; do@@ -130,7 +130,7 @@ # Separate into logical components for further validation case $1 in *-*-*-*-*)- echo "Invalid configuration '$1': more than four components" >&2+ echo Invalid configuration \`"$1"\': more than four components >&2 exit 1 ;; *-*-*-*)@@ -145,8 +145,7 @@ nto-qnx* | linux-* | uclinux-uclibc* \ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \- | storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \- | windows-* )+ | storm-chaos* | os2-emx* | rtmk-nova*) basic_machine=$field1 basic_os=$maybe_os ;;@@ -944,7 +943,7 @@ EOF IFS=$saved_IFS ;;- # We use 'pc' rather than 'unknown'+ # We use `pc' rather than `unknown' # because (1) that's what they normally are, and # (2) the word "unknown" tends to confuse beginning users. i*86 | x86_64)@@ -1076,7 +1075,7 @@ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) cpu=i586 ;;- pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) cpu=i686 ;; pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)@@ -1127,7 +1126,7 @@ xscale-* | xscalee[bl]-*) cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;;- arm64-* | arm64_32-* | aarch64le-*)+ arm64-* | aarch64le-*) cpu=aarch64 ;; @@ -1181,7 +1180,7 @@ case $cpu in 1750a | 580 \ | a29k \- | aarch64 | aarch64_be | aarch64c | arm64ec \+ | aarch64 | aarch64_be \ | abacus \ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \@@ -1200,29 +1199,50 @@ | d10v | d30v | dlx | dsp16xx \ | e2k | elxsi | epiphany \ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \- | javascript \ | h8300 | h8500 \ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ | hexagon \ | i370 | i*86 | i860 | i960 | ia16 | ia64 \ | ip2k | iq2000 \ | k1om \- | kvx \ | le32 | le64 \ | lm32 \- | loongarch32 | loongarch64 \+ | loongarch32 | loongarch64 | loongarchx32 \ | m32c | m32r | m32rle \ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \ | m88110 | m88k | maxq | mb | mcore | mep | metag \ | microblaze | microblazeel \- | mips* \+ | mips | mipsbe | mipseb | mipsel | mipsle \+ | mips16 \+ | mips64 | mips64eb | mips64el \+ | mips64octeon | mips64octeonel \+ | mips64orion | mips64orionel \+ | mips64r5900 | mips64r5900el \+ | mips64vr | mips64vrel \+ | mips64vr4100 | mips64vr4100el \+ | mips64vr4300 | mips64vr4300el \+ | mips64vr5000 | mips64vr5000el \+ | mips64vr5900 | mips64vr5900el \+ | mipsisa32 | mipsisa32el \+ | mipsisa32r2 | mipsisa32r2el \+ | mipsisa32r3 | mipsisa32r3el \+ | mipsisa32r5 | mipsisa32r5el \+ | mipsisa32r6 | mipsisa32r6el \+ | mipsisa64 | mipsisa64el \+ | mipsisa64r2 | mipsisa64r2el \+ | mipsisa64r3 | mipsisa64r3el \+ | mipsisa64r5 | mipsisa64r5el \+ | mipsisa64r6 | mipsisa64r6el \+ | mipsisa64sb1 | mipsisa64sb1el \+ | mipsisa64sr71k | mipsisa64sr71kel \+ | mipsr5900 | mipsr5900el \+ | mipstx39 | mipstx39el \ | mmix \ | mn10200 | mn10300 \ | moxie \ | mt \ | msp430 \- | nanomips* \ | nds32 | nds32le | nds32be \ | nfp \ | nios | nios2 | nios2eb | nios2el \@@ -1254,7 +1274,6 @@ | ubicom32 \ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ | vax \- | vc4 \ | visium \ | w65 \ | wasm32 | wasm64 \@@ -1266,7 +1285,7 @@ ;; *)- echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 exit 1 ;; esac@@ -1287,12 +1306,11 @@ # Decode manufacturer-specific aliases for certain operating systems. -if test x"$basic_os" != x+if test x$basic_os != x then # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just # set os.-obj= case $basic_os in gnu/linux*) kernel=linux@@ -1323,10 +1341,6 @@ kernel=linux os=`echo "$basic_os" | sed -e 's|linux|gnu|'` ;;- managarm*)- kernel=managarm- os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`- ;; *) kernel= os=$basic_os@@ -1492,16 +1506,10 @@ os=eabi ;; *)- os=- obj=elf+ os=elf ;; esac ;;- aout* | coff* | elf* | pe*)- # These are machine code file formats, not OSes- obj=$os- os=- ;; *) # No normalization, but not necessarily accepted, that comes below. ;;@@ -1520,15 +1528,12 @@ # system, and we'll never get to this point. kernel=-obj= case $cpu-$vendor in score-*)- os=- obj=elf+ os=elf ;; spu-*)- os=- obj=elf+ os=elf ;; *-acorn) os=riscix1.2@@ -1538,35 +1543,28 @@ os=gnu ;; arm*-semi)- os=- obj=aout+ os=aout ;; c4x-* | tic4x-*)- os=- obj=coff+ os=coff ;; c8051-*)- os=- obj=elf+ os=elf ;; clipper-intergraph) os=clix ;; hexagon-*)- os=- obj=elf+ os=elf ;; tic54x-*)- os=- obj=coff+ os=coff ;; tic55x-*)- os=- obj=coff+ os=coff ;; tic6x-*)- os=- obj=coff+ os=coff ;; # This must come before the *-dec entry. pdp10-*)@@ -1588,24 +1586,19 @@ os=sunos3 ;; m68*-cisco)- os=- obj=aout+ os=aout ;; mep-*)- os=- obj=elf+ os=elf ;; mips*-cisco)- os=- obj=elf+ os=elf ;;- mips*-*|nanomips*-*)- os=- obj=elf+ mips*-*)+ os=elf ;; or32-*)- os=- obj=coff+ os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. os=sysv3@@ -1614,8 +1607,7 @@ os=sunos4.1.1 ;; pru-*)- os=- obj=elf+ os=elf ;; *-be) os=beos@@ -1696,12 +1688,10 @@ os=uxpv ;; *-rom68k)- os=- obj=coff+ os=coff ;; *-*bug)- os=- obj=coff+ os=coff ;; *-apple) os=macos@@ -1719,11 +1709,10 @@ fi -# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).-+# Now, validate our (potentially fixed-up) OS. case $os in # Sometimes we do "kernel-libc", so those need to count as OSes.- llvm* | musl* | newlib* | relibc* | uclibc*)+ musl* | newlib* | relibc* | uclibc*) ;; # Likewise for "kernel-abi" eabi* | gnueabi*)@@ -1731,9 +1720,6 @@ # VxWorks passes extra cpu info in the 4th filed. simlinux | simwindows | spe) ;;- # See `case $cpu-$os` validation below- ghcjs)- ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number.@@ -1742,7 +1728,7 @@ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \ | hiux* | abug | nacl* | netware* | windows* \- | os9* | macos* | osx* | ios* | tvos* | watchos* \+ | os9* | macos* | osx* | ios* \ | mpw* | magic* | mmixware* | mon960* | lnews* \ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ | aos* | aros* | cloudabi* | sortix* | twizzler* \@@ -1751,11 +1737,11 @@ | mirbsd* | netbsd* | dicos* | openedition* | ose* \ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \- | bosx* | nextstep* | cxux* | oabi* \- | ptx* | ecoff* | winnt* | domain* | vsta* \+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ | udi* | lites* | ieee* | go32* | aux* | hcos* \ | chorusrdb* | cegcc* | glidix* | serenity* \- | cygwin* | msys* | moss* | proelf* | rtems* \+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ | midipix* | mingw32* | mingw64* | mint* \ | uxpv* | beos* | mpeix* | udk* | moxiebox* \ | interix* | uwin* | mks* | rhapsody* | darwin* \@@ -1768,118 +1754,49 @@ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \- | fiwix* | mlibc* | cos* | mbr* | ironclad* )+ | fiwix* ) ;; # This one is extra strict with allowed versions sco3.2v2 | sco3.2v[4-9]* | sco5v6*) # Don't forget version if it is 3.2v4 or newer. ;;- # This refers to builds using the UEFI calling convention- # (which depends on the architecture) and PE file format.- # Note that this is both a different calling convention and- # different file format than that of GNU-EFI- # (x86_64-w64-mingw32).- uefi)- ;; none) ;;- kernel* | msvc* )- # Restricted further below- ;;- '')- if test x"$obj" = x- then- echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2- fi- ;; *)- echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2- exit 1- ;;-esac--case $obj in- aout* | coff* | elf* | pe*)- ;;- '')- # empty is fine- ;;- *)- echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2- exit 1- ;;-esac--# Here we handle the constraint that a (synthetic) cpu and os are-# valid only in combination with each other and nowhere else.-case $cpu-$os in- # The "javascript-unknown-ghcjs" triple is used by GHC; we- # accept it here in order to tolerate that, but reject any- # variations.- javascript-ghcjs)- ;;- javascript-* | *-ghcjs)- echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2 exit 1 ;; esac # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel.-case $kernel-$os-$obj in- linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \- | linux-mlibc*- | linux-musl*- | linux-newlib*- \- | linux-relibc*- | linux-uclibc*- )- ;;- uclinux-uclibc*- )- ;;- managarm-mlibc*- | managarm-kernel*- )+case $kernel-$os in+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \+ | linux-musl* | linux-relibc* | linux-uclibc* ) ;;- windows*-msvc*-)+ uclinux-uclibc* ) ;;- -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \- | -uclibc*- )+ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel.- echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2- exit 1- ;;- -kernel*- )- echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2- exit 1- ;;- *-kernel*- )- echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2- exit 1- ;;- *-msvc*- )- echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2 exit 1 ;;- kfreebsd*-gnu*- | kopensolaris*-gnu*-)- ;;- vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)+ kfreebsd*-gnu* | kopensolaris*-gnu*) ;;- nto-qnx*-)+ vxworks-simlinux | vxworks-simwindows | vxworks-spe) ;;- os2-emx-)+ nto-qnx*) ;;- ios*-simulator* | tvos*-simulator* | watchos*-simulator*)- ;; - *-eabi*- | *-gnueabi*-)+ os2-emx) ;;- none--*)- # None (no kernel, i.e. freestanding / bare metal),- # can be paired with an machine code file format+ *-eabi* | *-gnueabi*) ;;- -*-)+ -*) # Blank kernel with real OS is always fine. ;;- --*)- # Blank kernel and OS with real machine code file format is always fine.- ;;- *-*-*)- echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2+ *-*)+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2 exit 1 ;; esac@@ -1962,7 +1879,7 @@ ;; esac -echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"+echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables:
configure view
@@ -1,23128 +1,20822 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.72 for libffi 3.5.2.-#-# Report bugs to <http://github.com/libffi/libffi/issues>.-#-#-# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,-# Inc.-#-#-# This configure script is free software; the Free Software Foundation-# gives unlimited permission to copy, distribute and modify it.-## -------------------- ##-## M4sh Initialization. ##-## -------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1-then :- emulate sh- NULLCMD=:- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which- # is contrary to our usage. Disable this feature.- alias -g '${1+"$@"}'='"$@"'- setopt NO_GLOB_SUBST-else case e in #(- e) case `(set -o) 2>/dev/null` in #(- *posix*) :- set -o posix ;; #(- *) :- ;;-esac ;;-esac-fi----# Reset variables that may have inherited troublesome values from-# the environment.--# IFS needs to be set, to space, tab, and newline, in precisely that order.-# (If _AS_PATH_WALK were called with IFS unset, it would have the-# side effect of setting IFS to empty, thus disabling word splitting.)-# Quoting is to prevent editors from complaining about space-tab.-as_nl='-'-export as_nl-IFS=" "" $as_nl"--PS1='$ '-PS2='> '-PS4='+ '--# Ensure predictable behavior from utilities with locale-dependent output.-LC_ALL=C-export LC_ALL-LANGUAGE=C-export LANGUAGE--# We cannot yet rely on "unset" to work, but we need these variables-# to be unset--not just set to an empty or harmless value--now, to-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct-# also avoids known problems related to "unset" and subshell syntax-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH-do eval test \${$as_var+y} \- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :-done--# Ensure that fds 0, 1, and 2 are open.-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi-if (exec 3>&2) ; then :; else exec 2>/dev/null; fi--# The user is always right.-if ${PATH_SEPARATOR+false} :; then- PATH_SEPARATOR=:- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||- PATH_SEPARATOR=';'- }-fi---# Find who we are. Look in the path if we contain no directory separator.-as_myself=-case $0 in #((- *[\\/]* ) as_myself=$0 ;;- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- test -r "$as_dir$0" && as_myself=$as_dir$0 && break- done-IFS=$as_save_IFS-- ;;-esac-# We did not find ourselves, most probably we were run as 'sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then- as_myself=$0-fi-if test ! -f "$as_myself"; then- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2- exit 1-fi---# Use a proper internal environment variable to ensure we don't fall- # into an infinite loop, continuously re-executing ourselves.- if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then- _as_can_reexec=no; export _as_can_reexec;- # We cannot yet assume a decent shell, so we have to provide a-# neutralization value for shells without unset; and this also-# works around shells that cannot unset nonexistent variables.-# Preserve -v and -x to the replacement shell.-BASH_ENV=/dev/null-ENV=/dev/null-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV-case $- in # ((((- *v*x* | *x*v* ) as_opts=-vx ;;- *v* ) as_opts=-v ;;- *x* ) as_opts=-x ;;- * ) as_opts= ;;-esac-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}-# Admittedly, this is quite paranoid, since all the known shells bail-# out after a failed 'exec'.-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2-exit 255- fi- # We don't want this to propagate to other subprocesses.- { _as_can_reexec=; unset _as_can_reexec;}-if test "x$CONFIG_SHELL" = x; then- as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1-then :- emulate sh- NULLCMD=:- # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which- # is contrary to our usage. Disable this feature.- alias -g '\${1+\"\$@\"}'='\"\$@\"'- setopt NO_GLOB_SUBST-else case e in #(- e) case \`(set -o) 2>/dev/null\` in #(- *posix*) :- set -o posix ;; #(- *) :- ;;-esac ;;-esac-fi-"- as_required="as_fn_return () { (exit \$1); }-as_fn_success () { as_fn_return 0; }-as_fn_failure () { as_fn_return 1; }-as_fn_ret_success () { return 0; }-as_fn_ret_failure () { return 1; }--exitcode=0-as_fn_success || { exitcode=1; echo as_fn_success failed.; }-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }-if ( set x; as_fn_ret_success y && test x = \"\$1\" )-then :--else case e in #(- e) exitcode=1; echo positional parameters were not saved. ;;-esac-fi-test x\$exitcode = x0 || exit 1-blah=\$(echo \$(echo blah))-test x\"\$blah\" = xblah || exit 1-test -x / || exit 1"- as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO- as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO- eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&- test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1-test \$(( 1 + 1 )) = 2 || exit 1-- test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (- ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO- ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO- PATH=/empty FPATH=/empty; export PATH FPATH- test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\- || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"- if (eval "$as_required") 2>/dev/null-then :- as_have_required=yes-else case e in #(- e) as_have_required=no ;;-esac-fi- if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null-then :--else case e in #(- e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-as_found=false-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- as_found=:- case $as_dir in #(- /*)- for as_base in sh bash ksh sh5; do- # Try only shells that exist, to save several forks.- as_shell=$as_dir$as_base- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&- as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null-then :- CONFIG_SHELL=$as_shell as_have_required=yes- if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null-then :- break 2-fi-fi- done;;- esac- as_found=false-done-IFS=$as_save_IFS-if $as_found-then :--else case e in #(- e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&- as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null-then :- CONFIG_SHELL=$SHELL as_have_required=yes-fi ;;-esac-fi--- if test "x$CONFIG_SHELL" != x-then :- export CONFIG_SHELL- # We cannot yet assume a decent shell, so we have to provide a-# neutralization value for shells without unset; and this also-# works around shells that cannot unset nonexistent variables.-# Preserve -v and -x to the replacement shell.-BASH_ENV=/dev/null-ENV=/dev/null-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV-case $- in # ((((- *v*x* | *x*v* ) as_opts=-vx ;;- *v* ) as_opts=-v ;;- *x* ) as_opts=-x ;;- * ) as_opts= ;;-esac-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}-# Admittedly, this is quite paranoid, since all the known shells bail-# out after a failed 'exec'.-printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2-exit 255-fi-- if test x$as_have_required = xno-then :- printf "%s\n" "$0: This script requires a shell more modern than all"- printf "%s\n" "$0: the shells that I found on your system."- if test ${ZSH_VERSION+y} ; then- printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"- printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."- else- printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and-$0: http://github.com/libffi/libffi/issues about your-$0: system, including any error possibly output before this-$0: message. Then install a modern shell, or manually run-$0: the script under such a shell if you do have one."- fi- exit 1-fi ;;-esac-fi-fi-SHELL=${CONFIG_SHELL-/bin/sh}-export SHELL-# Unset more variables known to interfere with behavior of common tools.-CLICOLOR_FORCE= GREP_OPTIONS=-unset CLICOLOR_FORCE GREP_OPTIONS--## --------------------- ##-## M4sh Shell Functions. ##-## --------------------- ##-# as_fn_unset VAR-# ----------------# Portably unset VAR.-as_fn_unset ()-{- { eval $1=; unset $1;}-}-as_unset=as_fn_unset---# as_fn_set_status STATUS-# ------------------------# Set $? to STATUS, without forking.-as_fn_set_status ()-{- return $1-} # as_fn_set_status--# as_fn_exit STATUS-# ------------------# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.-as_fn_exit ()-{- set +e- as_fn_set_status $1- exit $1-} # as_fn_exit--# as_fn_mkdir_p-# --------------# Create "$as_dir" as a directory, including parents if necessary.-as_fn_mkdir_p ()-{-- case $as_dir in #(- -*) as_dir=./$as_dir;;- esac- test -d "$as_dir" || eval $as_mkdir_p || {- as_dirs=- while :; do- case $as_dir in #(- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(- *) as_qdir=$as_dir;;- esac- as_dirs="'$as_qdir' $as_dirs"- as_dir=`$as_dirname -- "$as_dir" ||-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$as_dir" : 'X\(//\)[^/]' \| \- X"$as_dir" : 'X\(//\)$' \| \- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X"$as_dir" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- test -d "$as_dir" && break- done- test -z "$as_dirs" || eval "mkdir $as_dirs"- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"---} # as_fn_mkdir_p--# as_fn_executable_p FILE-# ------------------------# Test if FILE is an executable regular file.-as_fn_executable_p ()-{- test -f "$1" && test -x "$1"-} # as_fn_executable_p-# as_fn_append VAR VALUE-# -----------------------# Append the text in VALUE to the end of the definition contained in VAR. Take-# advantage of any shell optimizations that allow amortized linear growth over-# repeated appends, instead of the typical quadratic growth present in naive-# implementations.-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null-then :- eval 'as_fn_append ()- {- eval $1+=\$2- }'-else case e in #(- e) as_fn_append ()- {- eval $1=\$$1\$2- } ;;-esac-fi # as_fn_append--# as_fn_arith ARG...-# -------------------# Perform arithmetic evaluation on the ARGs, and store the result in the-# global $as_val. Take advantage of shells that can avoid forks. The arguments-# must be portable across $(()) and expr.-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null-then :- eval 'as_fn_arith ()- {- as_val=$(( $* ))- }'-else case e in #(- e) as_fn_arith ()- {- as_val=`expr "$@" || test $? -eq 1`- } ;;-esac-fi # as_fn_arith---# as_fn_error STATUS ERROR [LINENO LOG_FD]-# -----------------------------------------# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the-# script with STATUS, using 1 if that was 0.-as_fn_error ()-{- as_status=$1; test $as_status -eq 0 && as_status=1- if test "$4"; then- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4- fi- printf "%s\n" "$as_me: error: $2" >&2- as_fn_exit $as_status-} # as_fn_error--if expr a : '\(a\)' >/dev/null 2>&1 &&- test "X`expr 00001 : '.*\(...\)'`" = X001; then- as_expr=expr-else- as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then- as_basename=basename-else- as_basename=false-fi--if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then- as_dirname=dirname-else- as_dirname=false-fi--as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \- X"$0" : 'X\(//\)$' \| \- X"$0" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X/"$0" |- sed '/^.*\/\([^/][^/]*\)\/*$/{- s//\1/- q- }- /^X\/\(\/\/\)$/{- s//\1/- q- }- /^X\/\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`--# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits--- as_lineno_1=$LINENO as_lineno_1a=$LINENO- as_lineno_2=$LINENO as_lineno_2a=$LINENO- eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&- test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {- # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)- sed -n '- p- /[$]LINENO/=- ' <$as_myself |- sed '- t clear- :clear- s/[$]LINENO.*/&-/- t lineno- b- :lineno- N- :loop- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/- t loop- s/-\n.*//- ' >$as_me.lineno &&- chmod +x "$as_me.lineno" ||- { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }-- # If we had to re-execute with $CONFIG_SHELL, we're ensured to have- # already done that, so ensure we don't try to do so again and fall- # in an infinite loop. This has already happened in practice.- _as_can_reexec=no; export _as_can_reexec- # Don't try to exec as it changes $[0], causing all sort of problems- # (the dirname of $[0] is not the place where we might find the- # original and so on. Autoconf is especially sensitive to this).- . "./$as_me.lineno"- # Exit status is that of the last command.- exit-}---# Determine whether it's possible to make 'echo' print without a newline.-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed-# for compatibility with existing Makefiles.-ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in #(((((--n*)- case `echo 'xy\c'` in- *c*) ECHO_T=' ';; # ECHO_T is single tab character.- xy) ECHO_C='\c';;- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null- ECHO_T=' ';;- esac;;-*)- ECHO_N='-n';;-esac--# For backward compatibility with old third-party macros, we provide-# the shell variables $as_echo and $as_echo_n. New code should use-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.-as_echo='printf %s\n'-as_echo_n='printf %s'--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then- rm -f conf$$.dir/conf$$.file-else- rm -f conf$$.dir- mkdir conf$$.dir 2>/dev/null-fi-if (echo >conf$$.file) 2>/dev/null; then- if ln -s conf$$.file conf$$ 2>/dev/null; then- as_ln_s='ln -s'- # ... but there are two gotchas:- # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.- # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.- # In both cases, we have to default to 'cp -pR'.- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||- as_ln_s='cp -pR'- elif ln conf$$.file conf$$ 2>/dev/null; then- as_ln_s=ln- else- as_ln_s='cp -pR'- fi-else- as_ln_s='cp -pR'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null--if mkdir -p . 2>/dev/null; then- as_mkdir_p='mkdir -p "$as_dir"'-else- test -d ./-p && rmdir ./-p- as_mkdir_p=false-fi--as_test_x='test -x'-as_executable_p=as_fn_executable_p--# Sed expression to map a string onto a valid CPP name.-as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"-as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated--# Sed expression to map a string onto a valid variable name.-as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"-as_tr_sh="eval sed '$as_sed_sh'" # deprecated--SHELL=${CONFIG_SHELL-/bin/sh}---test -n "$DJDIR" || exec 7<&0 </dev/null-exec 6>&1--# Name of the host.-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,-# so uname gets run too.-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`--#-# Initializations.-#-ac_default_prefix=/usr/local-ac_clean_files=-ac_config_libobj_dir=.-LIBOBJS=-cross_compiling=no-subdirs=-MFLAGS=-MAKEFLAGS=--# Identity of this package.-PACKAGE_NAME='libffi'-PACKAGE_TARNAME='libffi'-PACKAGE_VERSION='3.5.2'-PACKAGE_STRING='libffi 3.5.2'-PACKAGE_BUGREPORT='http://github.com/libffi/libffi/issues'-PACKAGE_URL=''--# Factoring default headers for most tests.-ac_includes_default="\-#include <stddef.h>-#ifdef HAVE_STDIO_H-# include <stdio.h>-#endif-#ifdef HAVE_STDLIB_H-# include <stdlib.h>-#endif-#ifdef HAVE_STRING_H-# include <string.h>-#endif-#ifdef HAVE_INTTYPES_H-# include <inttypes.h>-#endif-#ifdef HAVE_STDINT_H-# include <stdint.h>-#endif-#ifdef HAVE_STRINGS_H-# include <strings.h>-#endif-#ifdef HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif-#ifdef HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif-#ifdef HAVE_UNISTD_H-# include <unistd.h>-#endif"--ac_header_c_list=-ac_subst_vars='LTLIBOBJS-LIBOBJS-EXTRA_LIBS-LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE-LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE-LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE-LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE-LIBFFI_BUILD_VERSIONED_SHLIB_FALSE-LIBFFI_BUILD_VERSIONED_SHLIB_TRUE-OPT_LDFLAGS-SECTION_LDFLAGS-FFI_DEBUG_FALSE-FFI_DEBUG_TRUE-EXTRA_ASM_SOURCES-EXTRA_SOURCES-TARGETDIR-TARGET-FFI_EXEC_TRAMPOLINE_TABLE-FFI_EXEC_TRAMPOLINE_TABLE_FALSE-FFI_EXEC_TRAMPOLINE_TABLE_TRUE-sys_symbol_underscore-WASM64_MEMORY64-HAVE_LONG_DOUBLE_VARIANT-HAVE_LONG_DOUBLE-AM_LTLDFLAGS-AM_RUNTESTFLAGS-MAINT-MAINTAINER_MODE_FALSE-MAINTAINER_MODE_TRUE-PRTDIAG-CXXCPP-LT_SYS_LIBRARY_PATH-OTOOL64-OTOOL-LIPO-NMEDIT-DSYMUTIL-MANIFEST_TOOL-AWK-RANLIB-STRIP-ac_ct_AR-AR-DLLTOOL-OBJDUMP-FILECMD-LN_S-NM-ac_ct_DUMPBIN-DUMPBIN-LD-FGREP-SED-LIBTOOL-EGREP-GREP-am__fastdepCCAS_FALSE-am__fastdepCCAS_TRUE-CCASDEPMODE-am__nodep-AMDEPBACKSLASH-AMDEP_FALSE-AMDEP_TRUE-am__include-DEPDIR-am__leading_dot-CCASFLAGS-CCAS-ac_ct_CXX-CXXFLAGS-CXX-OBJEXT-EXEEXT-ac_ct_CC-CPPFLAGS-LDFLAGS-CFLAGS-CC-ax_enable_builddir_sed-target_os-target_vendor-target_cpu-target-host_os-host_vendor-host_cpu-host-build_os-build_vendor-build_cpu-build-FFI_VERSION_NUMBER-FFI_VERSION_STRING-target_alias-host_alias-build_alias-LIBS-ECHO_T-ECHO_N-ECHO_C-DEFS-mandir-localedir-libdir-psdir-pdfdir-dvidir-htmldir-infodir-docdir-oldincludedir-includedir-runstatedir-localstatedir-sharedstatedir-sysconfdir-datadir-datarootdir-libexecdir-sbindir-bindir-program_transform_name-prefix-exec_prefix-PACKAGE_URL-PACKAGE_BUGREPORT-PACKAGE_STRING-PACKAGE_VERSION-PACKAGE_TARNAME-PACKAGE_NAME-PATH_SEPARATOR-SHELL-am__quote'-ac_subst_files=''-ac_user_opts='-enable_option_checking-enable_builddir-enable_dependency_tracking-enable_shared-enable_static-enable_pic-with_pic-enable_fast_install-enable_aix_soname-with_aix_soname-with_gnu_ld-with_sysroot-enable_libtool_lock-enable_portable_binary-with_gcc_arch-enable_maintainer_mode-enable_pax_emutramp-enable_debug-enable_structs-enable_raw_api-enable_exec_static_tramp-enable_purify_safety-enable_symvers-'- ac_precious_vars='build_alias-host_alias-target_alias-CCAS-CCASFLAGS-LT_SYS_LIBRARY_PATH-CXXCPP-CPPFLAGS-WASM64_MEMORY64'---# Initialize some variables set by options.-ac_init_help=-ac_init_version=false-ac_unrecognized_opts=-ac_unrecognized_sep=-# The variables have the same names as the options, with-# dashes changed to underlines.-cache_file=/dev/null-exec_prefix=NONE-no_create=-no_recursion=-prefix=NONE-program_prefix=NONE-program_suffix=NONE-program_transform_name=s,x,x,-silent=-site=-srcdir=-verbose=-x_includes=NONE-x_libraries=NONE--# Installation directory options.-# These are left unexpanded so users can "make install exec_prefix=/foo"-# and all the variables that are supposed to be based on exec_prefix-# by default will actually change.-# Use braces instead of parens because sh, perl, etc. also accept them.-# (The list follows the same order as the GNU Coding Standards.)-bindir='${exec_prefix}/bin'-sbindir='${exec_prefix}/sbin'-libexecdir='${exec_prefix}/libexec'-datarootdir='${prefix}/share'-datadir='${datarootdir}'-sysconfdir='${prefix}/etc'-sharedstatedir='${prefix}/com'-localstatedir='${prefix}/var'-runstatedir='${localstatedir}/run'-includedir='${prefix}/include'-oldincludedir='/usr/include'-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'-infodir='${datarootdir}/info'-htmldir='${docdir}'-dvidir='${docdir}'-pdfdir='${docdir}'-psdir='${docdir}'-libdir='${exec_prefix}/lib'-localedir='${datarootdir}/locale'-mandir='${datarootdir}/man'--ac_prev=-ac_dashdash=-for ac_option-do- # If the previous option needs an argument, assign it.- if test -n "$ac_prev"; then- eval $ac_prev=\$ac_option- ac_prev=- continue- fi-- case $ac_option in- *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;- *=) ac_optarg= ;;- *) ac_optarg=yes ;;- esac-- case $ac_dashdash$ac_option in- --)- ac_dashdash=yes ;;-- -bindir | --bindir | --bindi | --bind | --bin | --bi)- ac_prev=bindir ;;- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)- bindir=$ac_optarg ;;-- -build | --build | --buil | --bui | --bu)- ac_prev=build_alias ;;- -build=* | --build=* | --buil=* | --bui=* | --bu=*)- build_alias=$ac_optarg ;;-- -cache-file | --cache-file | --cache-fil | --cache-fi \- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)- ac_prev=cache_file ;;- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)- cache_file=$ac_optarg ;;-- --config-cache | -C)- cache_file=config.cache ;;-- -datadir | --datadir | --datadi | --datad)- ac_prev=datadir ;;- -datadir=* | --datadir=* | --datadi=* | --datad=*)- datadir=$ac_optarg ;;-- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \- | --dataroo | --dataro | --datar)- ac_prev=datarootdir ;;- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)- datarootdir=$ac_optarg ;;-- -disable-* | --disable-*)- ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&- as_fn_error $? "invalid feature name: '$ac_useropt'"- ac_useropt_orig=$ac_useropt- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`- case $ac_user_opts in- *"-"enable_$ac_useropt"-"*) ;;- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"- ac_unrecognized_sep=', ';;- esac- eval enable_$ac_useropt=no ;;-- -docdir | --docdir | --docdi | --doc | --do)- ac_prev=docdir ;;- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)- docdir=$ac_optarg ;;-- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)- ac_prev=dvidir ;;- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)- dvidir=$ac_optarg ;;-- -enable-* | --enable-*)- ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&- as_fn_error $? "invalid feature name: '$ac_useropt'"- ac_useropt_orig=$ac_useropt- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`- case $ac_user_opts in- *"-"enable_$ac_useropt"-"*) ;;- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"- ac_unrecognized_sep=', ';;- esac- eval enable_$ac_useropt=\$ac_optarg ;;-- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \- | --exec | --exe | --ex)- ac_prev=exec_prefix ;;- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \- | --exec=* | --exe=* | --ex=*)- exec_prefix=$ac_optarg ;;-- -gas | --gas | --ga | --g)- # Obsolete; use --with-gas.- with_gas=yes ;;-- -help | --help | --hel | --he | -h)- ac_init_help=long ;;- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)- ac_init_help=recursive ;;- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)- ac_init_help=short ;;-- -host | --host | --hos | --ho)- ac_prev=host_alias ;;- -host=* | --host=* | --hos=* | --ho=*)- host_alias=$ac_optarg ;;-- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)- ac_prev=htmldir ;;- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \- | --ht=*)- htmldir=$ac_optarg ;;-- -includedir | --includedir | --includedi | --included | --include \- | --includ | --inclu | --incl | --inc)- ac_prev=includedir ;;- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \- | --includ=* | --inclu=* | --incl=* | --inc=*)- includedir=$ac_optarg ;;-- -infodir | --infodir | --infodi | --infod | --info | --inf)- ac_prev=infodir ;;- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)- infodir=$ac_optarg ;;-- -libdir | --libdir | --libdi | --libd)- ac_prev=libdir ;;- -libdir=* | --libdir=* | --libdi=* | --libd=*)- libdir=$ac_optarg ;;-- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \- | --libexe | --libex | --libe)- ac_prev=libexecdir ;;- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \- | --libexe=* | --libex=* | --libe=*)- libexecdir=$ac_optarg ;;-- -localedir | --localedir | --localedi | --localed | --locale)- ac_prev=localedir ;;- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)- localedir=$ac_optarg ;;-- -localstatedir | --localstatedir | --localstatedi | --localstated \- | --localstate | --localstat | --localsta | --localst | --locals)- ac_prev=localstatedir ;;- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)- localstatedir=$ac_optarg ;;-- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)- ac_prev=mandir ;;- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)- mandir=$ac_optarg ;;-- -nfp | --nfp | --nf)- # Obsolete; use --without-fp.- with_fp=no ;;-- -no-create | --no-create | --no-creat | --no-crea | --no-cre \- | --no-cr | --no-c | -n)- no_create=yes ;;-- -no-recursion | --no-recursion | --no-recursio | --no-recursi \- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)- no_recursion=yes ;;-- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \- | --oldin | --oldi | --old | --ol | --o)- ac_prev=oldincludedir ;;- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)- oldincludedir=$ac_optarg ;;-- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)- ac_prev=prefix ;;- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)- prefix=$ac_optarg ;;-- -program-prefix | --program-prefix | --program-prefi | --program-pref \- | --program-pre | --program-pr | --program-p)- ac_prev=program_prefix ;;- -program-prefix=* | --program-prefix=* | --program-prefi=* \- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)- program_prefix=$ac_optarg ;;-- -program-suffix | --program-suffix | --program-suffi | --program-suff \- | --program-suf | --program-su | --program-s)- ac_prev=program_suffix ;;- -program-suffix=* | --program-suffix=* | --program-suffi=* \- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)- program_suffix=$ac_optarg ;;-- -program-transform-name | --program-transform-name \- | --program-transform-nam | --program-transform-na \- | --program-transform-n | --program-transform- \- | --program-transform | --program-transfor \- | --program-transfo | --program-transf \- | --program-trans | --program-tran \- | --progr-tra | --program-tr | --program-t)- ac_prev=program_transform_name ;;- -program-transform-name=* | --program-transform-name=* \- | --program-transform-nam=* | --program-transform-na=* \- | --program-transform-n=* | --program-transform-=* \- | --program-transform=* | --program-transfor=* \- | --program-transfo=* | --program-transf=* \- | --program-trans=* | --program-tran=* \- | --progr-tra=* | --program-tr=* | --program-t=*)- program_transform_name=$ac_optarg ;;-- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)- ac_prev=pdfdir ;;- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)- pdfdir=$ac_optarg ;;-- -psdir | --psdir | --psdi | --psd | --ps)- ac_prev=psdir ;;- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)- psdir=$ac_optarg ;;-- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil)- silent=yes ;;-- -runstatedir | --runstatedir | --runstatedi | --runstated \- | --runstate | --runstat | --runsta | --runst | --runs \- | --run | --ru | --r)- ac_prev=runstatedir ;;- -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \- | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \- | --run=* | --ru=* | --r=*)- runstatedir=$ac_optarg ;;-- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)- ac_prev=sbindir ;;- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \- | --sbi=* | --sb=*)- sbindir=$ac_optarg ;;-- -sharedstatedir | --sharedstatedir | --sharedstatedi \- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \- | --sharedst | --shareds | --shared | --share | --shar \- | --sha | --sh)- ac_prev=sharedstatedir ;;- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \- | --sha=* | --sh=*)- sharedstatedir=$ac_optarg ;;-- -site | --site | --sit)- ac_prev=site ;;- -site=* | --site=* | --sit=*)- site=$ac_optarg ;;-- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)- ac_prev=srcdir ;;- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)- srcdir=$ac_optarg ;;-- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \- | --syscon | --sysco | --sysc | --sys | --sy)- ac_prev=sysconfdir ;;- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)- sysconfdir=$ac_optarg ;;-- -target | --target | --targe | --targ | --tar | --ta | --t)- ac_prev=target_alias ;;- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)- target_alias=$ac_optarg ;;-- -v | -verbose | --verbose | --verbos | --verbo | --verb)- verbose=yes ;;-- -version | --version | --versio | --versi | --vers | -V)- ac_init_version=: ;;-- -with-* | --with-*)- ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&- as_fn_error $? "invalid package name: '$ac_useropt'"- ac_useropt_orig=$ac_useropt- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`- case $ac_user_opts in- *"-"with_$ac_useropt"-"*) ;;- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"- ac_unrecognized_sep=', ';;- esac- eval with_$ac_useropt=\$ac_optarg ;;-- -without-* | --without-*)- ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&- as_fn_error $? "invalid package name: '$ac_useropt'"- ac_useropt_orig=$ac_useropt- ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`- case $ac_user_opts in- *"-"with_$ac_useropt"-"*) ;;- *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"- ac_unrecognized_sep=', ';;- esac- eval with_$ac_useropt=no ;;-- --x)- # Obsolete; use --with-x.- with_x=yes ;;-- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \- | --x-incl | --x-inc | --x-in | --x-i)- ac_prev=x_includes ;;- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)- x_includes=$ac_optarg ;;-- -x-libraries | --x-libraries | --x-librarie | --x-librari \- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)- ac_prev=x_libraries ;;- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)- x_libraries=$ac_optarg ;;-- -*) as_fn_error $? "unrecognized option: '$ac_option'-Try '$0 --help' for more information"- ;;-- *=*)- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`- # Reject names that are not valid shell variable names.- case $ac_envvar in #(- '' | [0-9]* | *[!_$as_cr_alnum]* )- as_fn_error $? "invalid variable name: '$ac_envvar'" ;;- esac- eval $ac_envvar=\$ac_optarg- export $ac_envvar ;;-- *)- # FIXME: should be removed in autoconf 3.0.- printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&- printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2- : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"- ;;-- esac-done--if test -n "$ac_prev"; then- ac_option=--`echo $ac_prev | sed 's/_/-/g'`- as_fn_error $? "missing argument to $ac_option"-fi--if test -n "$ac_unrecognized_opts"; then- case $enable_option_checking in- no) ;;- fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;- *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;- esac-fi--# Check all directory arguments for consistency.-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \- datadir sysconfdir sharedstatedir localstatedir includedir \- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \- libdir localedir mandir runstatedir-do- eval ac_val=\$$ac_var- # Remove trailing slashes.- case $ac_val in- */ )- ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`- eval $ac_var=\$ac_val;;- esac- # Be sure to have absolute directory names.- case $ac_val in- [\\/$]* | ?:[\\/]* ) continue;;- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;- esac- as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"-done--# There might be people who depend on the old broken behavior: '$host'-# used to hold the argument of --host etc.-# FIXME: To remove some day.-build=$build_alias-host=$host_alias-target=$target_alias--# FIXME: To remove some day.-if test "x$host_alias" != x; then- if test "x$build_alias" = x; then- cross_compiling=maybe- elif test "x$build_alias" != "x$host_alias"; then- cross_compiling=yes- fi-fi--ac_tool_prefix=-test -n "$host_alias" && ac_tool_prefix=$host_alias---test "$silent" = yes && exec 6>/dev/null---ac_pwd=`pwd` && test -n "$ac_pwd" &&-ac_ls_di=`ls -di .` &&-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||- as_fn_error $? "working directory cannot be determined"-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||- as_fn_error $? "pwd does not report name of working directory"---# Find the source files, if location was not specified.-if test -z "$srcdir"; then- ac_srcdir_defaulted=yes- # Try the directory containing this script, then the parent directory.- ac_confdir=`$as_dirname -- "$as_myself" ||-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$as_myself" : 'X\(//\)[^/]' \| \- X"$as_myself" : 'X\(//\)$' \| \- X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X"$as_myself" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- srcdir=$ac_confdir- if test ! -r "$srcdir/$ac_unique_file"; then- srcdir=..- fi-else- ac_srcdir_defaulted=no-fi-if test ! -r "$srcdir/$ac_unique_file"; then- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."- as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"-fi-ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work"-ac_abs_confdir=`(- cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"- pwd)`-# When building in place, set srcdir=.-if test "$ac_abs_confdir" = "$ac_pwd"; then- srcdir=.-fi-# Remove unnecessary trailing slashes from srcdir.-# Double slashes in file names in object file debugging info-# mess up M-x gdb in Emacs.-case $srcdir in-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;-esac-for ac_var in $ac_precious_vars; do- eval ac_env_${ac_var}_set=\${${ac_var}+set}- eval ac_env_${ac_var}_value=\$${ac_var}- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}- eval ac_cv_env_${ac_var}_value=\$${ac_var}-done--#-# Report the --help message.-#-if test "$ac_init_help" = "long"; then- # Omit some internal or obsolete options to make the list less imposing.- # This message is too long to be a string in the A/UX 3.1 sh.- cat <<_ACEOF-'configure' configures libffi 3.5.2 to adapt to many kinds of systems.--Usage: $0 [OPTION]... [VAR=VALUE]...--To assign environment variables (e.g., CC, CFLAGS...), specify them as-VAR=VALUE. See below for descriptions of some of the useful variables.--Defaults for the options are specified in brackets.--Configuration:- -h, --help display this help and exit- --help=short display options specific to this package- --help=recursive display the short help of all the included packages- -V, --version display version information and exit- -q, --quiet, --silent do not print 'checking ...' messages- --cache-file=FILE cache test results in FILE [disabled]- -C, --config-cache alias for '--cache-file=config.cache'- -n, --no-create do not create output files- --srcdir=DIR find the sources in DIR [configure dir or '..']--Installation directories:- --prefix=PREFIX install architecture-independent files in PREFIX- [$ac_default_prefix]- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX- [PREFIX]--By default, 'make install' will install all the files in-'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc. You can specify-an installation prefix other than '$ac_default_prefix' using '--prefix',-for instance '--prefix=\$HOME'.--For better control, use the options below.--Fine tuning of the installation directories:- --bindir=DIR user executables [EPREFIX/bin]- --sbindir=DIR system admin executables [EPREFIX/sbin]- --libexecdir=DIR program executables [EPREFIX/libexec]- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]- --localstatedir=DIR modifiable single-machine data [PREFIX/var]- --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]- --libdir=DIR object code libraries [EPREFIX/lib]- --includedir=DIR C header files [PREFIX/include]- --oldincludedir=DIR C header files for non-gcc [/usr/include]- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]- --infodir=DIR info documentation [DATAROOTDIR/info]- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]- --mandir=DIR man documentation [DATAROOTDIR/man]- --docdir=DIR documentation root [DATAROOTDIR/doc/libffi]- --htmldir=DIR html documentation [DOCDIR]- --dvidir=DIR dvi documentation [DOCDIR]- --pdfdir=DIR pdf documentation [DOCDIR]- --psdir=DIR ps documentation [DOCDIR]-_ACEOF-- cat <<\_ACEOF--System types:- --build=BUILD configure for building on BUILD [guessed]- --host=HOST cross-compile to build programs to run on HOST [BUILD]- --target=TARGET configure for building compilers for TARGET [HOST]-_ACEOF-fi--if test -n "$ac_init_help"; then- case $ac_init_help in- short | recursive ) echo "Configuration of libffi 3.5.2:";;- esac- cat <<\_ACEOF--Optional Features:- --disable-option-checking ignore unrecognized --enable/--with options- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]- --disable-builddir disable automatic build in subdir of sources-- --enable-dependency-tracking- do not reject slow dependency extractors- --disable-dependency-tracking- speeds up one-time build- --enable-shared[=PKGS] build shared libraries [default=yes]- --enable-static[=PKGS] build static libraries [default=yes]- --enable-pic[=PKGS] try to use only PIC/non-PIC objects [default=use- both]- --enable-fast-install[=PKGS]- optimize for fast installation [default=yes]- --enable-aix-soname=aix|svr4|both- shared library versioning (aka "SONAME") variant to- provide on AIX, [default=aix].- --disable-libtool-lock avoid locking (might break parallel builds)- --enable-portable-binary- disable compiler optimizations that would produce- unportable binaries- --enable-maintainer-mode- enable make rules and dependencies not useful (and- sometimes confusing) to the casual installer- --enable-pax_emutramp enable pax emulated trampolines (experimental)- --enable-debug debugging mode- --disable-structs omit code for struct support- --disable-raw-api make the raw api unavailable- --disable-exec-static-tramp disable use of static exec trampolines (enabled by default)- --enable-purify-safety purify-safe mode- --enable-symvers=STYLE enables symbol versioning of the shared library- [default=yes]--Optional Packages:- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)- --with-gnu-ld assume the C compiler uses GNU ld [default=no]- --with-sysroot[=DIR] Search for dependent libraries within DIR (or the- compiler's sysroot if not specified).- --with-gcc-arch=<arch> use architecture <arch> for gcc -march/-mtune,- instead of guessing--Some influential environment variables:- CC C compiler command- CFLAGS C compiler flags- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a- nonstandard directory <lib dir>- LIBS libraries to pass to the linker, e.g. -l<library>- CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if- you have headers in a nonstandard directory <include dir>- CXX C++ compiler command- CXXFLAGS C++ compiler flags- CCAS assembler compiler command (defaults to CC)- CCASFLAGS assembler compiler flags (defaults to CFLAGS)- LT_SYS_LIBRARY_PATH- User-defined run-time library search path.- CXXCPP C++ preprocessor- WASM64_MEMORY64- Used only for the wasm64 target. Set to 1 (default) or 2 for- Emscripten's -sMEMORY64 mode--Use these variables to override the choices made by 'configure' or to help-it to find libraries and programs with nonstandard names/locations.--Report bugs to <http://github.com/libffi/libffi/issues>.-_ACEOF-ac_status=$?-fi--if test "$ac_init_help" = "recursive"; then- # If there are subdirs, report their specific --help.- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue- test -d "$ac_dir" ||- { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||- continue- ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`- # A ".." for each directory in $ac_dir_suffix.- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`- case $ac_top_builddir_sub in- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;- esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in- .) # We are building in place.- ac_srcdir=.- ac_top_srcdir=$ac_top_builddir_sub- ac_abs_top_srcdir=$ac_pwd ;;- [\\/]* | ?:[\\/]* ) # Absolute name.- ac_srcdir=$srcdir$ac_dir_suffix;- ac_top_srcdir=$srcdir- ac_abs_top_srcdir=$srcdir ;;- *) # Relative name.- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix- ac_top_srcdir=$ac_top_build_prefix$srcdir- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix-- cd "$ac_dir" || { ac_status=$?; continue; }- # Check for configure.gnu first; this name is used for a wrapper for- # Metaconfig's "Configure" on case-insensitive file systems.- if test -f "$ac_srcdir/configure.gnu"; then- echo &&- $SHELL "$ac_srcdir/configure.gnu" --help=recursive- elif test -f "$ac_srcdir/configure"; then- echo &&- $SHELL "$ac_srcdir/configure" --help=recursive- else- printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2- fi || ac_status=$?- cd "$ac_pwd" || { ac_status=$?; break; }- done-fi--test -n "$ac_init_help" && exit $ac_status-if $ac_init_version; then- cat <<\_ACEOF-libffi configure 3.5.2-generated by GNU Autoconf 2.72--Copyright (C) 2023 Free Software Foundation, Inc.-This configure script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it.-_ACEOF- exit-fi--## ------------------------ ##-## Autoconf initialization. ##-## ------------------------ ##--# ac_fn_c_try_compile LINENO-# ---------------------------# Try to compile conftest.$ac_ext, and return whether this succeeded.-ac_fn_c_try_compile ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- rm -f conftest.$ac_objext conftest.beam- if { { ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_compile") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- grep -v '^ *+' conftest.err >conftest.er1- cat conftest.er1 >&5- mv -f conftest.er1 conftest.err- fi- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext-then :- ac_retval=0-else case e in #(- e) printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_retval=1 ;;-esac-fi- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_c_try_compile--# ac_fn_cxx_try_compile LINENO-# -----------------------------# Try to compile conftest.$ac_ext, and return whether this succeeded.-ac_fn_cxx_try_compile ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- rm -f conftest.$ac_objext conftest.beam- if { { ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_compile") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- grep -v '^ *+' conftest.err >conftest.er1- cat conftest.er1 >&5- mv -f conftest.er1 conftest.err- fi- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && {- test -z "$ac_cxx_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext-then :- ac_retval=0-else case e in #(- e) printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_retval=1 ;;-esac-fi- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_cxx_try_compile--# ac_fn_c_try_link LINENO-# ------------------------# Try to link conftest.$ac_ext, and return whether this succeeded.-ac_fn_c_try_link ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext- if { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_link") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- grep -v '^ *+' conftest.err >conftest.er1- cat conftest.er1 >&5- mv -f conftest.er1 conftest.err- fi- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext && {- test "$cross_compiling" = yes ||- test -x conftest$ac_exeext- }-then :- ac_retval=0-else case e in #(- e) printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_retval=1 ;;-esac-fi- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would- # interfere with the next link command; also delete a directory that is- # left behind by Apple's compiler. We do this before executing the actions.- rm -rf conftest.dSYM conftest_ipa8_conftest.oo- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_c_try_link--# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES-# --------------------------------------------------------# Tests whether HEADER exists and can be compiled using the include files in-# INCLUDES, setting the cache variable VAR accordingly.-ac_fn_c_check_header_compile ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5-printf %s "checking for $2... " >&6; }-if eval test \${$3+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-#include <$2>-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- eval "$3=yes"-else case e in #(- e) eval "$3=no" ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-eval ac_res=\$$3- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-printf "%s\n" "$ac_res" >&6; }- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno--} # ac_fn_c_check_header_compile--# ac_fn_c_check_func LINENO FUNC VAR-# -----------------------------------# Tests whether FUNC exists, setting the cache variable VAR accordingly-ac_fn_c_check_func ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5-printf %s "checking for $2... " >&6; }-if eval test \${$3+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.- For example, HP-UX 11i <limits.h> declares gettimeofday. */-#define $2 innocuous_$2--/* System header to define __stub macros and hopefully few prototypes,- which can conflict with char $2 (void); below. */--#include <limits.h>-#undef $2--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply. */-#ifdef __cplusplus-extern "C"-#endif-char $2 (void);-/* The GNU C library defines this for functions which it implements- to always fail with ENOSYS. Some functions are actually named- something starting with __ and the normal name is an alias. */-#if defined __stub_$2 || defined __stub___$2-choke me-#endif--int-main (void)-{-return $2 ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- eval "$3=yes"-else case e in #(- e) eval "$3=no" ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext ;;-esac-fi-eval ac_res=\$$3- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-printf "%s\n" "$ac_res" >&6; }- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno--} # ac_fn_c_check_func--# ac_fn_cxx_try_cpp LINENO-# -------------------------# Try to preprocess conftest.$ac_ext, and return whether this succeeded.-ac_fn_cxx_try_cpp ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- if { { ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- grep -v '^ *+' conftest.err >conftest.er1- cat conftest.er1 >&5- mv -f conftest.er1 conftest.err- fi- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } > conftest.i && {- test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||- test ! -s conftest.err- }-then :- ac_retval=0-else case e in #(- e) printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_retval=1 ;;-esac-fi- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_cxx_try_cpp--# ac_fn_cxx_try_link LINENO-# --------------------------# Try to link conftest.$ac_ext, and return whether this succeeded.-ac_fn_cxx_try_link ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext- if { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_link") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- grep -v '^ *+' conftest.err >conftest.er1- cat conftest.er1 >&5- mv -f conftest.er1 conftest.err- fi- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && {- test -z "$ac_cxx_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext && {- test "$cross_compiling" = yes ||- test -x conftest$ac_exeext- }-then :- ac_retval=0-else case e in #(- e) printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_retval=1 ;;-esac-fi- # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information- # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would- # interfere with the next link command; also delete a directory that is- # left behind by Apple's compiler. We do this before executing the actions.- rm -rf conftest.dSYM conftest_ipa8_conftest.oo- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_cxx_try_link--# ac_fn_c_try_run LINENO-# -----------------------# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that-# executables *can* be run.-ac_fn_c_try_run ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- if { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_link") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'- { { case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_try") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; }-then :- ac_retval=0-else case e in #(- e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5- printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_retval=$ac_status ;;-esac-fi- rm -rf conftest.dSYM conftest_ipa8_conftest.oo- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_c_try_run--# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES-# ---------------------------------------------# Tries to find the compile-time value of EXPR in a program that includes-# INCLUDES, setting VAR accordingly. Returns whether the value could be-# computed-ac_fn_c_compute_int ()-{- as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- if test "$cross_compiling" = yes; then- # Depending upon the size, compute the lo and hi bounds.-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main (void)-{-static int test_array [1 - 2 * !(($2) >= 0)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_lo=0 ac_mid=0- while :; do- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main (void)-{-static int test_array [1 - 2 * !(($2) <= $ac_mid)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_hi=$ac_mid; break-else case e in #(- e) as_fn_arith $ac_mid + 1 && ac_lo=$as_val- if test $ac_lo -le $ac_mid; then- ac_lo= ac_hi=- break- fi- as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- done-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main (void)-{-static int test_array [1 - 2 * !(($2) < 0)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_hi=-1 ac_mid=-1- while :; do- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main (void)-{-static int test_array [1 - 2 * !(($2) >= $ac_mid)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_lo=$ac_mid; break-else case e in #(- e) as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val- if test $ac_mid -le $ac_hi; then- ac_lo= ac_hi=- break- fi- as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- done-else case e in #(- e) ac_lo= ac_hi= ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext-# Binary search between lo and hi bounds.-while test "x$ac_lo" != "x$ac_hi"; do- as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-int-main (void)-{-static int test_array [1 - 2 * !(($2) <= $ac_mid)];-test_array [0] = 0;-return test_array [0];-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_hi=$ac_mid-else case e in #(- e) as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext-done-case $ac_lo in #((-?*) eval "$3=\$ac_lo"; ac_retval=0 ;;-'') ac_retval=1 ;;-esac- else- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$4-static long int longval (void) { return $2; }-static unsigned long int ulongval (void) { return $2; }-#include <stdio.h>-#include <stdlib.h>-int-main (void)-{-- FILE *f = fopen ("conftest.val", "w");- if (! f)- return 1;- if (($2) < 0)- {- long int i = longval ();- if (i != ($2))- return 1;- fprintf (f, "%ld", i);- }- else- {- unsigned long int i = ulongval ();- if (i != ($2))- return 1;- fprintf (f, "%lu", i);- }- /* Do not output a trailing newline, as this causes \r\n confusion- on some platforms. */- return ferror (f) || fclose (f) != 0;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- echo >>conftest.val; read $3 <conftest.val; ac_retval=0-else case e in #(- e) ac_retval=1 ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext-rm -f conftest.val-- fi- eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno- as_fn_set_status $ac_retval--} # ac_fn_c_compute_int-ac_configure_args_raw=-for ac_arg-do- case $ac_arg in- *\'*)- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;- esac- as_fn_append ac_configure_args_raw " '$ac_arg'"-done--case $ac_configure_args_raw in- *$as_nl*)- ac_safe_unquote= ;;- *)- ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.- ac_unsafe_a="$ac_unsafe_z#~"- ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"- ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;-esac--cat >config.log <<_ACEOF-This file contains any messages produced by compilers while-running configure, to aid debugging if configure makes a mistake.--It was created by libffi $as_me 3.5.2, which was-generated by GNU Autoconf 2.72. Invocation command line was-- $ $0$ac_configure_args_raw--_ACEOF-exec 5>>config.log-{-cat <<_ASUNAME-## --------- ##-## Platform. ##-## --------- ##--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`-uname -m = `(uname -m) 2>/dev/null || echo unknown`-uname -r = `(uname -r) 2>/dev/null || echo unknown`-uname -s = `(uname -s) 2>/dev/null || echo unknown`-uname -v = `(uname -v) 2>/dev/null || echo unknown`--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`--/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`--_ASUNAME--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- printf "%s\n" "PATH: $as_dir"- done-IFS=$as_save_IFS--} >&5--cat >&5 <<_ACEOF---## ----------- ##-## Core tests. ##-## ----------- ##--_ACEOF---# Keep a trace of the command line.-# Strip out --no-create and --no-recursion so they do not pile up.-# Strip out --silent because we don't want to record it for future runs.-# Also quote any args containing shell meta-characters.-# Make two passes to allow for proper duplicate-argument suppression.-ac_configure_args=-ac_configure_args0=-ac_configure_args1=-ac_must_keep_next=false-for ac_pass in 1 2-do- for ac_arg- do- case $ac_arg in- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil)- continue ;;- *\'*)- ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;- esac- case $ac_pass in- 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;- 2)- as_fn_append ac_configure_args1 " '$ac_arg'"- if test $ac_must_keep_next = true; then- ac_must_keep_next=false # Got value, back to normal.- else- case $ac_arg in- *=* | --config-cache | -C | -disable-* | --disable-* \- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \- | -with-* | --with-* | -without-* | --without-* | --x)- case "$ac_configure_args0 " in- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;- esac- ;;- -* ) ac_must_keep_next=true ;;- esac- fi- as_fn_append ac_configure_args " '$ac_arg'"- ;;- esac- done-done-{ ac_configure_args0=; unset ac_configure_args0;}-{ ac_configure_args1=; unset ac_configure_args1;}--# When interrupted or exit'd, cleanup temporary files, and complete-# config.log. We remove comments because anyway the quotes in there-# would cause problems or look ugly.-# WARNING: Use '\'' to represent an apostrophe within the trap.-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.-trap 'exit_status=$?- # Sanitize IFS.- IFS=" "" $as_nl"- # Save into config.log some information that might help in debugging.- {- echo-- printf "%s\n" "## ---------------- ##-## Cache variables. ##-## ---------------- ##"- echo- # The following way of writing the cache mishandles newlines in values,-(- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do- eval ac_val=\$$ac_var- case $ac_val in #(- *${as_nl}*)- case $ac_var in #(- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;- esac- case $ac_var in #(- _ | IFS | as_nl) ;; #(- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(- *) { eval $ac_var=; unset $ac_var;} ;;- esac ;;- esac- done- (set) 2>&1 |- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(- *${as_nl}ac_space=\ *)- sed -n \- "s/'\''/'\''\\\\'\'''\''/g;- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"- ;; #(- *)- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"- ;;- esac |- sort-)- echo-- printf "%s\n" "## ----------------- ##-## Output variables. ##-## ----------------- ##"- echo- for ac_var in $ac_subst_vars- do- eval ac_val=\$$ac_var- case $ac_val in- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;- esac- printf "%s\n" "$ac_var='\''$ac_val'\''"- done | sort- echo-- if test -n "$ac_subst_files"; then- printf "%s\n" "## ------------------- ##-## File substitutions. ##-## ------------------- ##"- echo- for ac_var in $ac_subst_files- do- eval ac_val=\$$ac_var- case $ac_val in- *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;- esac- printf "%s\n" "$ac_var='\''$ac_val'\''"- done | sort- echo- fi-- if test -s confdefs.h; then- printf "%s\n" "## ----------- ##-## confdefs.h. ##-## ----------- ##"- echo- cat confdefs.h- echo- fi- test "$ac_signal" != 0 &&- printf "%s\n" "$as_me: caught signal $ac_signal"- printf "%s\n" "$as_me: exit $exit_status"- } >&5- rm -f core *.core core.conftest.* &&- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&- exit $exit_status-' 0-for ac_signal in 1 2 13 15; do- trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal-done-ac_signal=0--# confdefs.h avoids OS command line length limits that DEFS can exceed.-rm -f -r conftest* confdefs.h--printf "%s\n" "/* confdefs.h */" > confdefs.h--# Predefined preprocessor variables.--printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h--printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h--printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h--printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h--printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h--printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h---# Let the site file select an alternate cache file if it wants to.-# Prefer an explicitly selected file to automatically selected ones.-if test -n "$CONFIG_SITE"; then- ac_site_files="$CONFIG_SITE"-elif test "x$prefix" != xNONE; then- ac_site_files="$prefix/share/config.site $prefix/etc/config.site"-else- ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"-fi--for ac_site_file in $ac_site_files-do- case $ac_site_file in #(- */*) :- ;; #(- *) :- ac_site_file=./$ac_site_file ;;-esac- if test -f "$ac_site_file" && test -r "$ac_site_file"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5-printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}- sed 's/^/| /' "$ac_site_file" >&5- . "$ac_site_file" \- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error $? "failed to load site script $ac_site_file-See 'config.log' for more details" "$LINENO" 5; }- fi-done--if test -r "$cache_file"; then- # Some versions of bash will fail to source /dev/null (special files- # actually), so we avoid doing that. DJGPP emulates it as a regular file.- if test /dev/null != "$cache_file" && test -f "$cache_file"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5-printf "%s\n" "$as_me: loading cache $cache_file" >&6;}- case $cache_file in- [\\/]* | ?:[\\/]* ) . "$cache_file";;- *) . "./$cache_file";;- esac- fi-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5-printf "%s\n" "$as_me: creating cache $cache_file" >&6;}- >$cache_file-fi--# Test code for whether the C compiler supports C89 (global declarations)-ac_c_conftest_c89_globals='-/* Does the compiler advertise C89 conformance?- Do not test the value of __STDC__, because some compilers set it to 0- while being otherwise adequately conformant. */-#if !defined __STDC__-# error "Compiler does not advertise C89 conformance"-#endif--#include <stddef.h>-#include <stdarg.h>-struct stat;-/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */-struct buf { int x; };-struct buf * (*rcsopen) (struct buf *, struct stat *, int);-static char *e (char **p, int i)-{- return p[i];-}-static char *f (char * (*g) (char **, int), char **p, ...)-{- char *s;- va_list v;- va_start (v,p);- s = g (p, va_arg (v,int));- va_end (v);- return s;-}--/* C89 style stringification. */-#define noexpand_stringify(a) #a-const char *stringified = noexpand_stringify(arbitrary+token=sequence);--/* C89 style token pasting. Exercises some of the corner cases that- e.g. old MSVC gets wrong, but not very hard. */-#define noexpand_concat(a,b) a##b-#define expand_concat(a,b) noexpand_concat(a,b)-extern int vA;-extern int vbee;-#define aye A-#define bee B-int *pvA = &expand_concat(v,aye);-int *pvbee = &noexpand_concat(v,bee);--/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has- function prototypes and stuff, but not \xHH hex character constants.- These do not provoke an error unfortunately, instead are silently treated- as an "x". The following induces an error, until -std is added to get- proper ANSI mode. Curiously \x00 != x always comes out true, for an- array size at least. It is necessary to write \x00 == 0 to get something- that is true only with -std. */-int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];--/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters- inside strings and character constants. */-#define FOO(x) '\''x'\''-int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];--int test (int i, double x);-struct s1 {int (*f) (int a);};-struct s2 {int (*f) (double a);};-int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),- int, int);'--# Test code for whether the C compiler supports C89 (body of main).-ac_c_conftest_c89_main='-ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);-'--# Test code for whether the C compiler supports C99 (global declarations)-ac_c_conftest_c99_globals='-/* Does the compiler advertise C99 conformance? */-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L-# error "Compiler does not advertise C99 conformance"-#endif--// See if C++-style comments work.--#include <stdbool.h>-extern int puts (const char *);-extern int printf (const char *, ...);-extern int dprintf (int, const char *, ...);-extern void *malloc (size_t);-extern void free (void *);--// Check varargs macros. These examples are taken from C99 6.10.3.5.-// dprintf is used instead of fprintf to avoid needing to declare-// FILE and stderr.-#define debug(...) dprintf (2, __VA_ARGS__)-#define showlist(...) puts (#__VA_ARGS__)-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))-static void-test_varargs_macros (void)-{- int x = 1234;- int y = 5678;- debug ("Flag");- debug ("X = %d\n", x);- showlist (The first, second, and third items.);- report (x>y, "x is %d but y is %d", x, y);-}--// Check long long types.-#define BIG64 18446744073709551615ull-#define BIG32 4294967295ul-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)-#if !BIG_OK- #error "your preprocessor is broken"-#endif-#if BIG_OK-#else- #error "your preprocessor is broken"-#endif-static long long int bignum = -9223372036854775807LL;-static unsigned long long int ubignum = BIG64;--struct incomplete_array-{- int datasize;- double data[];-};--struct named_init {- int number;- const wchar_t *name;- double average;-};--typedef const char *ccp;--static inline int-test_restrict (ccp restrict text)-{- // Iterate through items via the restricted pointer.- // Also check for declarations in for loops.- for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)- continue;- return 0;-}--// Check varargs and va_copy.-static bool-test_varargs (const char *format, ...)-{- va_list args;- va_start (args, format);- va_list args_copy;- va_copy (args_copy, args);-- const char *str = "";- int number = 0;- float fnumber = 0;-- while (*format)- {- switch (*format++)- {- case '\''s'\'': // string- str = va_arg (args_copy, const char *);- break;- case '\''d'\'': // int- number = va_arg (args_copy, int);- break;- case '\''f'\'': // float- fnumber = va_arg (args_copy, double);- break;- default:- break;- }- }- va_end (args_copy);- va_end (args);-- return *str && number && fnumber;-}-'--# Test code for whether the C compiler supports C99 (body of main).-ac_c_conftest_c99_main='- // Check bool.- _Bool success = false;- success |= (argc != 0);-- // Check restrict.- if (test_restrict ("String literal") == 0)- success = true;- char *restrict newvar = "Another string";-- // Check varargs.- success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);- test_varargs_macros ();-- // Check flexible array members.- struct incomplete_array *ia =- malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));- ia->datasize = 10;- for (int i = 0; i < ia->datasize; ++i)- ia->data[i] = i * 1.234;- // Work around memory leak warnings.- free (ia);-- // Check named initializers.- struct named_init ni = {- .number = 34,- .name = L"Test wide string",- .average = 543.34343,- };-- ni.number = 58;-- int dynamic_array[ni.number];- dynamic_array[0] = argv[0][0];- dynamic_array[ni.number - 1] = 543;-- // work around unused variable warnings- ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''- || dynamic_array[ni.number - 1] != 543);-'--# Test code for whether the C compiler supports C11 (global declarations)-ac_c_conftest_c11_globals='-/* Does the compiler advertise C11 conformance? */-#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L-# error "Compiler does not advertise C11 conformance"-#endif--// Check _Alignas.-char _Alignas (double) aligned_as_double;-char _Alignas (0) no_special_alignment;-extern char aligned_as_int;-char _Alignas (0) _Alignas (int) aligned_as_int;--// Check _Alignof.-enum-{- int_alignment = _Alignof (int),- int_array_alignment = _Alignof (int[100]),- char_alignment = _Alignof (char)-};-_Static_assert (0 < -_Alignof (int), "_Alignof is signed");--// Check _Noreturn.-int _Noreturn does_not_return (void) { for (;;) continue; }--// Check _Static_assert.-struct test_static_assert-{- int x;- _Static_assert (sizeof (int) <= sizeof (long int),- "_Static_assert does not work in struct");- long int y;-};--// Check UTF-8 literals.-#define u8 syntax error!-char const utf8_literal[] = u8"happens to be ASCII" "another string";--// Check duplicate typedefs.-typedef long *long_ptr;-typedef long int *long_ptr;-typedef long_ptr long_ptr;--// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.-struct anonymous-{- union {- struct { int i; int j; };- struct { int k; long int l; } w;- };- int m;-} v1;-'--# Test code for whether the C compiler supports C11 (body of main).-ac_c_conftest_c11_main='- _Static_assert ((offsetof (struct anonymous, i)- == offsetof (struct anonymous, w.k)),- "Anonymous union alignment botch");- v1.i = 2;- v1.w.k = 5;- ok |= v1.i != 5;-'--# Test code for whether the C compiler supports C11 (complete).-ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}-${ac_c_conftest_c99_globals}-${ac_c_conftest_c11_globals}--int-main (int argc, char **argv)-{- int ok = 0;- ${ac_c_conftest_c89_main}- ${ac_c_conftest_c99_main}- ${ac_c_conftest_c11_main}- return ok;-}-"--# Test code for whether the C compiler supports C99 (complete).-ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}-${ac_c_conftest_c99_globals}--int-main (int argc, char **argv)-{- int ok = 0;- ${ac_c_conftest_c89_main}- ${ac_c_conftest_c99_main}- return ok;-}-"--# Test code for whether the C compiler supports C89 (complete).-ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}--int-main (int argc, char **argv)-{- int ok = 0;- ${ac_c_conftest_c89_main}- return ok;-}-"--# Test code for whether the C++ compiler supports C++98 (global declarations)-ac_cxx_conftest_cxx98_globals='-// Does the compiler advertise C++98 conformance?-#if !defined __cplusplus || __cplusplus < 199711L-# error "Compiler does not advertise C++98 conformance"-#endif--// These inclusions are to reject old compilers that-// lack the unsuffixed header files.-#include <cstdlib>-#include <exception>--// <cassert> and <cstring> are *not* freestanding headers in C++98.-extern void assert (int);-namespace std {- extern int strcmp (const char *, const char *);-}--// Namespaces, exceptions, and templates were all added after "C++ 2.0".-using std::exception;-using std::strcmp;--namespace {--void test_exception_syntax()-{- try {- throw "test";- } catch (const char *s) {- // Extra parentheses suppress a warning when building autoconf itself,- // due to lint rules shared with more typical C programs.- assert (!(strcmp) (s, "test"));- }-}--template <typename T> struct test_template-{- T const val;- explicit test_template(T t) : val(t) {}- template <typename U> T add(U u) { return static_cast<T>(u) + val; }-};--} // anonymous namespace-'--# Test code for whether the C++ compiler supports C++98 (body of main)-ac_cxx_conftest_cxx98_main='- assert (argc);- assert (! argv[0]);-{- test_exception_syntax ();- test_template<double> tt (2.0);- assert (tt.add (4) == 6.0);- assert (true && !false);-}-'--# Test code for whether the C++ compiler supports C++11 (global declarations)-ac_cxx_conftest_cxx11_globals='-// Does the compiler advertise C++ 2011 conformance?-#if !defined __cplusplus || __cplusplus < 201103L-# error "Compiler does not advertise C++11 conformance"-#endif--namespace cxx11test-{- constexpr int get_val() { return 20; }-- struct testinit- {- int i;- double d;- };-- class delegate- {- public:- delegate(int n) : n(n) {}- delegate(): delegate(2354) {}-- virtual int getval() { return this->n; };- protected:- int n;- };-- class overridden : public delegate- {- public:- overridden(int n): delegate(n) {}- virtual int getval() override final { return this->n * 2; }- };-- class nocopy- {- public:- nocopy(int i): i(i) {}- nocopy() = default;- nocopy(const nocopy&) = delete;- nocopy & operator=(const nocopy&) = delete;- private:- int i;- };-- // for testing lambda expressions- template <typename Ret, typename Fn> Ret eval(Fn f, Ret v)- {- return f(v);- }-- // for testing variadic templates and trailing return types- template <typename V> auto sum(V first) -> V- {- return first;- }- template <typename V, typename... Args> auto sum(V first, Args... rest) -> V- {- return first + sum(rest...);- }-}-'--# Test code for whether the C++ compiler supports C++11 (body of main)-ac_cxx_conftest_cxx11_main='-{- // Test auto and decltype- auto a1 = 6538;- auto a2 = 48573953.4;- auto a3 = "String literal";-- int total = 0;- for (auto i = a3; *i; ++i) { total += *i; }-- decltype(a2) a4 = 34895.034;-}-{- // Test constexpr- short sa[cxx11test::get_val()] = { 0 };-}-{- // Test initializer lists- cxx11test::testinit il = { 4323, 435234.23544 };-}-{- // Test range-based for- int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3,- 14, 19, 17, 8, 6, 20, 16, 2, 11, 1};- for (auto &x : array) { x += 23; }-}-{- // Test lambda expressions- using cxx11test::eval;- assert (eval ([](int x) { return x*2; }, 21) == 42);- double d = 2.0;- assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0);- assert (d == 5.0);- assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0);- assert (d == 5.0);-}-{- // Test use of variadic templates- using cxx11test::sum;- auto a = sum(1);- auto b = sum(1, 2);- auto c = sum(1.0, 2.0, 3.0);-}-{- // Test constructor delegation- cxx11test::delegate d1;- cxx11test::delegate d2();- cxx11test::delegate d3(45);-}-{- // Test override and final- cxx11test::overridden o1(55464);-}-{- // Test nullptr- char *c = nullptr;-}-{- // Test template brackets- test_template<::test_template<int>> v(test_template<int>(12));-}-{- // Unicode literals- char const *utf8 = u8"UTF-8 string \u2500";- char16_t const *utf16 = u"UTF-8 string \u2500";- char32_t const *utf32 = U"UTF-32 string \u2500";-}-'--# Test code for whether the C compiler supports C++11 (complete).-ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals}-${ac_cxx_conftest_cxx11_globals}--int-main (int argc, char **argv)-{- int ok = 0;- ${ac_cxx_conftest_cxx98_main}- ${ac_cxx_conftest_cxx11_main}- return ok;-}-"--# Test code for whether the C compiler supports C++98 (complete).-ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals}-int-main (int argc, char **argv)-{- int ok = 0;- ${ac_cxx_conftest_cxx98_main}- return ok;-}-"--as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"-as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"-as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"-as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"-as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"-as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"-as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"-as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"-as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"--# Auxiliary files required by this configure script.-ac_aux_files="ltmain.sh compile config.guess config.sub"--# Locations in which to look for auxiliary files.-ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."--# Search for a directory containing all of the required auxiliary files,-# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.-# If we don't find one directory that contains all the files we need,-# we report the set of missing files from the *first* directory in-# $ac_aux_dir_candidates and give up.-ac_missing_aux_files=""-ac_first_candidate=:-printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-as_found=false-for as_dir in $ac_aux_dir_candidates-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- as_found=:-- printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5- ac_aux_dir_found=yes- ac_install_sh=- for ac_aux in $ac_aux_files- do- # As a special case, if "install-sh" is required, that requirement- # can be satisfied by any of "install-sh", "install.sh", or "shtool",- # and $ac_install_sh is set appropriately for whichever one is found.- if test x"$ac_aux" = x"install-sh"- then- if test -f "${as_dir}install-sh"; then- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5- ac_install_sh="${as_dir}install-sh -c"- elif test -f "${as_dir}install.sh"; then- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5- ac_install_sh="${as_dir}install.sh -c"- elif test -f "${as_dir}shtool"; then- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5- ac_install_sh="${as_dir}shtool install -c"- else- ac_aux_dir_found=no- if $ac_first_candidate; then- ac_missing_aux_files="${ac_missing_aux_files} install-sh"- else- break- fi- fi- else- if test -f "${as_dir}${ac_aux}"; then- printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5- else- ac_aux_dir_found=no- if $ac_first_candidate; then- ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"- else- break- fi- fi- fi- done- if test "$ac_aux_dir_found" = yes; then- ac_aux_dir="$as_dir"- break- fi- ac_first_candidate=false-- as_found=false-done-IFS=$as_save_IFS-if $as_found-then :--else case e in #(- e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;;-esac-fi---# These three variables are undocumented and unsupported,-# and are intended to be withdrawn in a future Autoconf release.-# They can cause serious problems if a builder's source tree is in a directory-# whose full name contains unusual characters.-if test -f "${ac_aux_dir}config.guess"; then- ac_config_guess="$SHELL ${ac_aux_dir}config.guess"-fi-if test -f "${ac_aux_dir}config.sub"; then- ac_config_sub="$SHELL ${ac_aux_dir}config.sub"-fi-if test -f "$ac_aux_dir/configure"; then- ac_configure="$SHELL ${ac_aux_dir}configure"-fi--# Check that the precious variables saved in the cache have kept the same-# value.-ac_cache_corrupted=false-for ac_var in $ac_precious_vars; do- eval ac_old_set=\$ac_cv_env_${ac_var}_set- eval ac_new_set=\$ac_env_${ac_var}_set- eval ac_old_val=\$ac_cv_env_${ac_var}_value- eval ac_new_val=\$ac_env_${ac_var}_value- case $ac_old_set,$ac_new_set in- set,)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5-printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}- ac_cache_corrupted=: ;;- ,set)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5-printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}- ac_cache_corrupted=: ;;- ,);;- *)- if test "x$ac_old_val" != "x$ac_new_val"; then- # differences in whitespace do not lead to failure.- ac_old_val_w=`echo x $ac_old_val`- ac_new_val_w=`echo x $ac_new_val`- if test "$ac_old_val_w" != "$ac_new_val_w"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5-printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}- ac_cache_corrupted=:- else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5-printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}- eval $ac_var=\$ac_old_val- fi- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5-printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5-printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;}- fi;;- esac- # Pass precious variables to config.status.- if test "$ac_new_set" = set; then- case $ac_new_val in- *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;- *) ac_arg=$ac_var=$ac_new_val ;;- esac- case " $ac_configure_args " in- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.- *) as_fn_append ac_configure_args " '$ac_arg'" ;;- esac- fi-done-if $ac_cache_corrupted; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5-printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}- as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'- and start over" "$LINENO" 5-fi-## -------------------- ##-## Main body of script. ##-## -------------------- ##--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---ac_config_headers="$ac_config_headers fficonfig.h"---FFI_VERSION_STRING="3.5.2"-FFI_VERSION_NUMBER=30502------- # Make sure we can run config.sub.-$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||- as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5-printf %s "checking build system type... " >&6; }-if test ${ac_cv_build+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_build_alias=$build_alias-test "x$ac_build_alias" = x &&- ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`-test "x$ac_build_alias" = x &&- as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5-ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5-printf "%s\n" "$ac_cv_build" >&6; }-case $ac_cv_build in-*-*-*) ;;-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;-esac-build=$ac_cv_build-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_build-shift-build_cpu=$1-build_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-build_os=$*-IFS=$ac_save_IFS-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5-printf %s "checking host system type... " >&6; }-if test ${ac_cv_host+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test "x$host_alias" = x; then- ac_cv_host=$ac_cv_build-else- ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5-printf "%s\n" "$ac_cv_host" >&6; }-case $ac_cv_host in-*-*-*) ;;-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;-esac-host=$ac_cv_host-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_host-shift-host_cpu=$1-host_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-host_os=$*-IFS=$ac_save_IFS-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking target system type" >&5-printf %s "checking target system type... " >&6; }-if test ${ac_cv_target+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test "x$target_alias" = x; then- ac_cv_target=$ac_cv_host-else- ac_cv_target=`$SHELL "${ac_aux_dir}config.sub" $target_alias` ||- as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $target_alias failed" "$LINENO" 5-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5-printf "%s\n" "$ac_cv_target" >&6; }-case $ac_cv_target in-*-*-*) ;;-*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;-esac-target=$ac_cv_target-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_target-shift-target_cpu=$1-target_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-target_os=$*-IFS=$ac_save_IFS-case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac---# The aliases save the names the user supplied, while $host etc.-# will get canonicalized.-test -n "$target_alias" &&- test "$program_prefix$program_suffix$program_transform_name" = \- NONENONEs,x,x, &&- program_prefix=${target_alias}--target_alias=${target_alias-$host_alias}--case "${host}" in- frv*-elf)- LDFLAGS=`echo $LDFLAGS | sed "s/\-B^ *libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/- ;;-esac--- # [$]@ is unusable in 2.60+ but earlier autoconf had no ac_configure_args- if test "${ac_configure_args+set}" != "set" ; then- ac_configure_args=- for ac_arg in ${1+"$@"}; do- ac_configure_args="$ac_configure_args '$ac_arg'"- done- fi---# Expand $ac_aux_dir to an absolute path.-am_aux_dir=`cd "$ac_aux_dir" && pwd`---ax_enable_builddir="."-# Check whether --enable-builddir was given.-if test ${enable_builddir+y}-then :- enableval=$enable_builddir; ax_enable_builddir="$enableval"-else case e in #(- e) ax_enable_builddir="auto" ;;-esac-fi--if test ".$ac_srcdir_defaulted" != ".no" ; then-if test ".$srcdir" = ".." ; then- if test -f config.status ; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: toplevel srcdir already configured... skipping subdir build" >&5-printf "%s\n" "$as_me: toplevel srcdir already configured... skipping subdir build" >&6;}- else- test ".$ax_enable_builddir" = "." && ax_enable_builddir="."- test ".$ax_enable_builddir" = ".no" && ax_enable_builddir="."- test ".$TARGET" = "." && TARGET="$target"- test ".$ax_enable_builddir" = ".auto" && ax_enable_builddir="$TARGET"- if test ".$ax_enable_builddir" != ".." ; then # we know where to go and- as_dir=$ax_enable_builddir; as_fn_mkdir_p- echo __.$ax_enable_builddir.__ > $ax_enable_builddir/conftest.tmp- cd $ax_enable_builddir- if grep __.$ax_enable_builddir.__ conftest.tmp >/dev/null 2>/dev/null ; then- rm conftest.tmp- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: continue configure in default builddir \"./$ax_enable_builddir\"" >&5-printf "%s\n" "continue configure in default builddir \"./$ax_enable_builddir\"" >&6; }- else- as_fn_error $? "could not change to default builddir \"./$ax_enable_builddir\"" "$LINENO" 5- fi- srcdir=`echo "$ax_enable_builddir" |- sed -e 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g;s,[/]$,,;'`- # going to restart from subdirectory location- test -f $srcdir/config.log && mv $srcdir/config.log .- test -f $srcdir/confdefs.h && mv $srcdir/confdefs.h .- test -f $srcdir/conftest.log && mv $srcdir/conftest.log .- test -f $srcdir/$cache_file && mv $srcdir/$cache_file .- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ....exec $SHELL $srcdir/$0 \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" ${1+\"$@\"}" >&5-printf "%s\n" "....exec $SHELL $srcdir/$0 \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" ${1+\"$@\"}" >&6; }- case "$0" in # restart- [\\/]* | ?:[\\/]*) # Absolute name- eval $SHELL "'$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;;- *) eval $SHELL "'$srcdir/$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;;- esac ; exit $?- fi- fi-fi fi-test ".$ax_enable_builddir" = ".auto" && ax_enable_builddir="."-# Extract the first word of "gsed sed", so it can be a program name with args.-set dummy gsed sed; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_path_ax_enable_builddir_sed+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) case $ax_enable_builddir_sed in- [\\/]* | ?:[\\/]*)- ac_cv_path_ax_enable_builddir_sed="$ax_enable_builddir_sed" # Let the user override the test with a path.- ;;- *)- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_path_ax_enable_builddir_sed="$as_dir$ac_word$ac_exec_ext"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS-- test -z "$ac_cv_path_ax_enable_builddir_sed" && ac_cv_path_ax_enable_builddir_sed="sed"- ;;-esac ;;-esac-fi-ax_enable_builddir_sed=$ac_cv_path_ax_enable_builddir_sed-if test -n "$ax_enable_builddir_sed"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_enable_builddir_sed" >&5-printf "%s\n" "$ax_enable_builddir_sed" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---ax_enable_builddir_auxdir="$am_aux_dir"-ac_config_commands="$ac_config_commands buildir"---# The same as in boehm-gc and libstdc++. Have to borrow it from there.-# We must force CC to /not/ be precious variables; otherwise-# the wrong, non-multilib-adjusted value will be used in multilibs.-# As a side effect, we have to subst CFLAGS ourselves.-# Also save and restore CFLAGS, since AC_PROG_CC will come up with-# defaults of its own if none are provided.----save_CFLAGS=$CFLAGS----------ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.-set dummy ${ac_tool_prefix}gcc; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="${ac_tool_prefix}gcc"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-printf "%s\n" "$CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_CC"; then- ac_ct_CC=$CC- # Extract the first word of "gcc", so it can be a program name with args.-set dummy gcc; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_CC="gcc"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-printf "%s\n" "$ac_ct_CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-else- CC="$ac_cv_prog_CC"-fi--if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.-set dummy ${ac_tool_prefix}cc; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="${ac_tool_prefix}cc"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-printf "%s\n" "$CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- fi-fi-if test -z "$CC"; then- # Extract the first word of "cc", so it can be a program name with args.-set dummy cc; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else- ac_prog_rejected=no-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then- ac_prog_rejected=yes- continue- fi- ac_cv_prog_CC="cc"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--if test $ac_prog_rejected = yes; then- # We found a bogon in the path, so make sure we never use it.- set dummy $ac_cv_prog_CC- shift- if test $# != 0; then- # We chose a different compiler from the bogus one.- # However, it has the same basename, so the bogon will be chosen- # first if we set CC to just the basename; use the full file name.- shift- ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"- fi-fi-fi ;;-esac-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-printf "%s\n" "$CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- for ac_prog in cl.exe- do- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-printf "%s\n" "$CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$CC" && break- done-fi-if test -z "$CC"; then- ac_ct_CC=$CC- for ac_prog in cl.exe-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_CC="$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-printf "%s\n" "$ac_ct_CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$ac_ct_CC" && break-done-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-fi--fi-if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.-set dummy ${ac_tool_prefix}clang; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_CC="${ac_tool_prefix}clang"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5-printf "%s\n" "$CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_CC"; then- ac_ct_CC=$CC- # Extract the first word of "clang", so it can be a program name with args.-set dummy clang; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_CC+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_CC="clang"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5-printf "%s\n" "$ac_ct_CC" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-else- CC="$ac_cv_prog_CC"-fi--fi---test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error $? "no acceptable C compiler found in \$PATH-See 'config.log' for more details" "$LINENO" 5; }--# Provide some information about the compiler.-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5-set X $ac_compile-ac_compiler=$2-for ac_option in --version -v -V -qversion -version; do- { { ac_try="$ac_compiler $ac_option >&5"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_compiler $ac_option >&5") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- sed '10a\-... rest of stderr output deleted ...- 10q' conftest.err >conftest.er1- cat conftest.er1 >&5- fi- rm -f conftest.er1 conftest.err- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }-done--cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"-# Try to create an executable without -o first, disregard a.out.-# It will help us diagnose broken compilers, and finding out an intuition-# of exeext.-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5-printf %s "checking whether the C compiler works... " >&6; }-ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`--# The possible output files:-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"--ac_rmfiles=-for ac_file in $ac_files-do- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;- * ) ac_rmfiles="$ac_rmfiles $ac_file";;- esac-done-rm -f $ac_rmfiles--if { { ac_try="$ac_link_default"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_link_default") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }-then :- # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.-# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no'-# in a Makefile. We should not override ac_cv_exeext if it was cached,-# so that the user can short-circuit this test for compilers unknown to-# Autoconf.-for ac_file in $ac_files ''-do- test -f "$ac_file" || continue- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )- ;;- [ab].out )- # We found the default executable, but exeext='' is most- # certainly right.- break;;- *.* )- if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;- then :; else- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`- fi- # We set ac_cv_exeext here because the later test for it is not- # safe: cross compilers may not add the suffix if given an '-o'- # argument, so we may need to know it at that point already.- # Even if this section looks crufty: it has the advantage of- # actually working.- break;;- * )- break;;- esac-done-test "$ac_cv_exeext" = no && ac_cv_exeext=--else case e in #(- e) ac_file='' ;;-esac-fi-if test -z "$ac_file"-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error 77 "C compiler cannot create executables-See 'config.log' for more details" "$LINENO" 5; }-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5-printf "%s\n" "yes" >&6; } ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5-printf %s "checking for C compiler default output file name... " >&6; }-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5-printf "%s\n" "$ac_file" >&6; }-ac_exeext=$ac_cv_exeext--rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out-ac_clean_files=$ac_clean_files_save-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5-printf %s "checking for suffix of executables... " >&6; }-if { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_link") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }-then :- # If both 'conftest.exe' and 'conftest' are 'present' (well, observable)-# catch 'conftest.exe'. For instance with Cygwin, 'ls conftest' will-# work properly (i.e., refer to 'conftest.exe'), while it won't with-# 'rm'.-for ac_file in conftest.exe conftest conftest.*; do- test -f "$ac_file" || continue- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`- break;;- * ) break;;- esac-done-else case e in #(- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error $? "cannot compute suffix of executables: cannot compile and link-See 'config.log' for more details" "$LINENO" 5; } ;;-esac-fi-rm -f conftest conftest$ac_cv_exeext-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5-printf "%s\n" "$ac_cv_exeext" >&6; }--rm -f conftest.$ac_ext-EXEEXT=$ac_cv_exeext-ac_exeext=$EXEEXT-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdio.h>-int-main (void)-{-FILE *f = fopen ("conftest.out", "w");- if (!f)- return 1;- return ferror (f) || fclose (f) != 0;-- ;- return 0;-}-_ACEOF-ac_clean_files="$ac_clean_files conftest.out"-# Check that the compiler produces executables we can run. If not, either-# the compiler is broken, or we cross compile.-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5-printf %s "checking whether we are cross compiling... " >&6; }-if test "$cross_compiling" != yes; then- { { ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_link") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- if { ac_try='./conftest$ac_cv_exeext'- { { case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_try") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; }; then- cross_compiling=no- else- if test "$cross_compiling" = maybe; then- cross_compiling=yes- else- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error 77 "cannot run C compiled programs.-If you meant to cross compile, use '--host'.-See 'config.log' for more details" "$LINENO" 5; }- fi- fi-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5-printf "%s\n" "$cross_compiling" >&6; }--rm -f conftest.$ac_ext conftest$ac_cv_exeext \- conftest.o conftest.obj conftest.out-ac_clean_files=$ac_clean_files_save-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5-printf %s "checking for suffix of object files... " >&6; }-if test ${ac_cv_objext+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-rm -f conftest.o conftest.obj-if { { ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_compile") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }-then :- for ac_file in conftest.o conftest.obj conftest.*; do- test -f "$ac_file" || continue;- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`- break;;- esac-done-else case e in #(- e) printf "%s\n" "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error $? "cannot compute suffix of object files: cannot compile-See 'config.log' for more details" "$LINENO" 5; } ;;-esac-fi-rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5-printf "%s\n" "$ac_cv_objext" >&6; }-OBJEXT=$ac_cv_objext-ac_objext=$OBJEXT-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5-printf %s "checking whether the compiler supports GNU C... " >&6; }-if test ${ac_cv_c_compiler_gnu+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-#ifndef __GNUC__- choke me-#endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_compiler_gnu=yes-else case e in #(- e) ac_compiler_gnu=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext-ac_cv_c_compiler_gnu=$ac_compiler_gnu- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5-printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }-ac_compiler_gnu=$ac_cv_c_compiler_gnu--if test $ac_compiler_gnu = yes; then- GCC=yes-else- GCC=-fi-ac_test_CFLAGS=${CFLAGS+y}-ac_save_CFLAGS=$CFLAGS-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5-printf %s "checking whether $CC accepts -g... " >&6; }-if test ${ac_cv_prog_cc_g+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_save_c_werror_flag=$ac_c_werror_flag- ac_c_werror_flag=yes- ac_cv_prog_cc_g=no- CFLAGS="-g"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_prog_cc_g=yes-else case e in #(- e) CFLAGS=""- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :--else case e in #(- e) ac_c_werror_flag=$ac_save_c_werror_flag- CFLAGS="-g"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_prog_cc_g=yes-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ac_c_werror_flag=$ac_save_c_werror_flag ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5-printf "%s\n" "$ac_cv_prog_cc_g" >&6; }-if test $ac_test_CFLAGS; then- CFLAGS=$ac_save_CFLAGS-elif test $ac_cv_prog_cc_g = yes; then- if test "$GCC" = yes; then- CFLAGS="-g -O2"- else- CFLAGS="-g"- fi-else- if test "$GCC" = yes; then- CFLAGS="-O2"- else- CFLAGS=- fi-fi-ac_prog_cc_stdc=no-if test x$ac_prog_cc_stdc = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5-printf %s "checking for $CC option to enable C11 features... " >&6; }-if test ${ac_cv_prog_cc_c11+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_cv_prog_cc_c11=no-ac_save_CC=$CC-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$ac_c_conftest_c11_program-_ACEOF-for ac_arg in '' -std=gnu11-do- CC="$ac_save_CC $ac_arg"- if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_prog_cc_c11=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam- test "x$ac_cv_prog_cc_c11" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC ;;-esac-fi--if test "x$ac_cv_prog_cc_c11" = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-printf "%s\n" "unsupported" >&6; }-else case e in #(- e) if test "x$ac_cv_prog_cc_c11" = x-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-printf "%s\n" "none needed" >&6; }-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5-printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }- CC="$CC $ac_cv_prog_cc_c11" ;;-esac-fi- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11- ac_prog_cc_stdc=c11 ;;-esac-fi-fi-if test x$ac_prog_cc_stdc = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5-printf %s "checking for $CC option to enable C99 features... " >&6; }-if test ${ac_cv_prog_cc_c99+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_cv_prog_cc_c99=no-ac_save_CC=$CC-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$ac_c_conftest_c99_program-_ACEOF-for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=-do- CC="$ac_save_CC $ac_arg"- if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_prog_cc_c99=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam- test "x$ac_cv_prog_cc_c99" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC ;;-esac-fi--if test "x$ac_cv_prog_cc_c99" = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-printf "%s\n" "unsupported" >&6; }-else case e in #(- e) if test "x$ac_cv_prog_cc_c99" = x-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-printf "%s\n" "none needed" >&6; }-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5-printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }- CC="$CC $ac_cv_prog_cc_c99" ;;-esac-fi- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99- ac_prog_cc_stdc=c99 ;;-esac-fi-fi-if test x$ac_prog_cc_stdc = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5-printf %s "checking for $CC option to enable C89 features... " >&6; }-if test ${ac_cv_prog_cc_c89+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_cv_prog_cc_c89=no-ac_save_CC=$CC-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$ac_c_conftest_c89_program-_ACEOF-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"-do- CC="$ac_save_CC $ac_arg"- if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_prog_cc_c89=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam- test "x$ac_cv_prog_cc_c89" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC ;;-esac-fi--if test "x$ac_cv_prog_cc_c89" = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-printf "%s\n" "unsupported" >&6; }-else case e in #(- e) if test "x$ac_cv_prog_cc_c89" = x-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-printf "%s\n" "none needed" >&6; }-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5-printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }- CC="$CC $ac_cv_prog_cc_c89" ;;-esac-fi- ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89- ac_prog_cc_stdc=c89 ;;-esac-fi-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--- ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5-printf %s "checking whether $CC understands -c and -o together... " >&6; }-if test ${am_cv_prog_cc_c_o+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF- # Make sure it works both with $CC and with simple cc.- # Following AC_PROG_CC_C_O, we do the test twice because some- # compilers refuse to overwrite an existing .o file with -o,- # though they will create one.- am_cv_prog_cc_c_o=yes- for am_i in 1 2; do- if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5- ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } \- && test -f conftest2.$ac_objext; then- : OK- else- am_cv_prog_cc_c_o=no- break- fi- done- # aligned with autoconf, so not including core; see bug#72225.- rm -f -r a.out a.exe b.out conftest.$ac_ext conftest.$ac_objext \- conftest.dSYM conftest1.$ac_ext conftest1.$ac_objext conftest1.dSYM \- conftest2.$ac_ext conftest2.$ac_objext conftest2.dSYM- unset am_i ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5-printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }-if test "$am_cv_prog_cc_c_o" != yes; then- # Losing compiler, so override with the script.- # FIXME: It is wrong to rewrite CC.- # But if we don't then we get into trouble of one sort or another.- # A longer-term fix would be to have automake use am__CC in this case,- # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"- CC="$am_aux_dir/compile $CC"-fi-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---------ac_ext=cpp-ac_cpp='$CXXCPP $CPPFLAGS'-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu-if test -z "$CXX"; then- if test -n "$CCC"; then- CXX=$CCC- else- if test -n "$ac_tool_prefix"; then- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++- do- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$CXX"; then- ac_cv_prog_CXX="$CXX" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-CXX=$ac_cv_prog_CXX-if test -n "$CXX"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5-printf "%s\n" "$CXX" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$CXX" && break- done-fi-if test -z "$CXX"; then- ac_ct_CXX=$CXX- for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_CXX"; then- ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_CXX="$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX-if test -n "$ac_ct_CXX"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5-printf "%s\n" "$ac_ct_CXX" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$ac_ct_CXX" && break-done-- if test "x$ac_ct_CXX" = x; then- CXX="g++"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- CXX=$ac_ct_CXX- fi-fi-- fi-fi-# Provide some information about the compiler.-printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5-set X $ac_compile-ac_compiler=$2-for ac_option in --version -v -V -qversion; do- { { ac_try="$ac_compiler $ac_option >&5"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""-printf "%s\n" "$ac_try_echo"; } >&5- (eval "$ac_compiler $ac_option >&5") 2>conftest.err- ac_status=$?- if test -s conftest.err; then- sed '10a\-... rest of stderr output deleted ...- 10q' conftest.err >conftest.er1- cat conftest.er1 >&5- fi- rm -f conftest.er1 conftest.err- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }-done--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5-printf %s "checking whether the compiler supports GNU C++... " >&6; }-if test ${ac_cv_cxx_compiler_gnu+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-#ifndef __GNUC__- choke me-#endif-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_compile "$LINENO"-then :- ac_compiler_gnu=yes-else case e in #(- e) ac_compiler_gnu=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5-printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; }-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu--if test $ac_compiler_gnu = yes; then- GXX=yes-else- GXX=-fi-ac_test_CXXFLAGS=${CXXFLAGS+y}-ac_save_CXXFLAGS=$CXXFLAGS-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5-printf %s "checking whether $CXX accepts -g... " >&6; }-if test ${ac_cv_prog_cxx_g+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_save_cxx_werror_flag=$ac_cxx_werror_flag- ac_cxx_werror_flag=yes- ac_cv_prog_cxx_g=no- CXXFLAGS="-g"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_compile "$LINENO"-then :- ac_cv_prog_cxx_g=yes-else case e in #(- e) CXXFLAGS=""- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_compile "$LINENO"-then :--else case e in #(- e) ac_cxx_werror_flag=$ac_save_cxx_werror_flag- CXXFLAGS="-g"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_compile "$LINENO"-then :- ac_cv_prog_cxx_g=yes-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ac_cxx_werror_flag=$ac_save_cxx_werror_flag ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5-printf "%s\n" "$ac_cv_prog_cxx_g" >&6; }-if test $ac_test_CXXFLAGS; then- CXXFLAGS=$ac_save_CXXFLAGS-elif test $ac_cv_prog_cxx_g = yes; then- if test "$GXX" = yes; then- CXXFLAGS="-g -O2"- else- CXXFLAGS="-g"- fi-else- if test "$GXX" = yes; then- CXXFLAGS="-O2"- else- CXXFLAGS=- fi-fi-ac_prog_cxx_stdcxx=no-if test x$ac_prog_cxx_stdcxx = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5-printf %s "checking for $CXX option to enable C++11 features... " >&6; }-if test ${ac_cv_prog_cxx_cxx11+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_cv_prog_cxx_cxx11=no-ac_save_CXX=$CXX-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$ac_cxx_conftest_cxx11_program-_ACEOF-for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA-do- CXX="$ac_save_CXX $ac_arg"- if ac_fn_cxx_try_compile "$LINENO"-then :- ac_cv_prog_cxx_cxx11=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam- test "x$ac_cv_prog_cxx_cxx11" != "xno" && break-done-rm -f conftest.$ac_ext-CXX=$ac_save_CXX ;;-esac-fi--if test "x$ac_cv_prog_cxx_cxx11" = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-printf "%s\n" "unsupported" >&6; }-else case e in #(- e) if test "x$ac_cv_prog_cxx_cxx11" = x-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-printf "%s\n" "none needed" >&6; }-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5-printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; }- CXX="$CXX $ac_cv_prog_cxx_cxx11" ;;-esac-fi- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11- ac_prog_cxx_stdcxx=cxx11 ;;-esac-fi-fi-if test x$ac_prog_cxx_stdcxx = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5-printf %s "checking for $CXX option to enable C++98 features... " >&6; }-if test ${ac_cv_prog_cxx_cxx98+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_cv_prog_cxx_cxx98=no-ac_save_CXX=$CXX-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$ac_cxx_conftest_cxx98_program-_ACEOF-for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA-do- CXX="$ac_save_CXX $ac_arg"- if ac_fn_cxx_try_compile "$LINENO"-then :- ac_cv_prog_cxx_cxx98=$ac_arg-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam- test "x$ac_cv_prog_cxx_cxx98" != "xno" && break-done-rm -f conftest.$ac_ext-CXX=$ac_save_CXX ;;-esac-fi--if test "x$ac_cv_prog_cxx_cxx98" = xno-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5-printf "%s\n" "unsupported" >&6; }-else case e in #(- e) if test "x$ac_cv_prog_cxx_cxx98" = x-then :- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5-printf "%s\n" "none needed" >&6; }-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5-printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; }- CXX="$CXX $ac_cv_prog_cxx_cxx98" ;;-esac-fi- ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98- ac_prog_cxx_stdcxx=cxx98 ;;-esac-fi-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--CFLAGS=$save_CFLAGS------rm -rf .tst 2>/dev/null-mkdir .tst 2>/dev/null-if test -d .tst; then- am__leading_dot=.-else- am__leading_dot=_-fi-rmdir .tst 2>/dev/null--DEPDIR="${am__leading_dot}deps"--ac_config_commands="$ac_config_commands depfiles"--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5-printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }-cat > confinc.mk << 'END'-am__doit:- @echo this is the am__doit target >confinc.out-.PHONY: am__doit-END-am__include="#"-am__quote=-# BSD make does it like this.-echo '.include "confinc.mk" # ignored' > confmf.BSD-# Other make implementations (GNU, Solaris 10, AIX) do it like this.-echo 'include confinc.mk # ignored' > confmf.GNU-_am_result=no-for s in GNU BSD; do- { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5- (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }- case $?:`cat confinc.out 2>/dev/null` in #(- '0:this is the am__doit target') :- case $s in #(- BSD) :- am__include='.include' am__quote='"' ;; #(- *) :- am__include='include' am__quote='' ;;-esac ;; #(- *) :- ;;-esac- if test "$am__include" != "#"; then- _am_result="yes ($s style)"- break- fi-done-rm -f confinc.* confmf.*-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5-printf "%s\n" "${_am_result}" >&6; }--# Check whether --enable-dependency-tracking was given.-if test ${enable_dependency_tracking+y}-then :- enableval=$enable_dependency_tracking;-fi--if test "x$enable_dependency_tracking" != xno; then- am_depcomp="$ac_aux_dir/depcomp"- AMDEPBACKSLASH='\'- am__nodep='_no'-fi- if test "x$enable_dependency_tracking" != xno; then- AMDEP_TRUE=- AMDEP_FALSE='#'-else- AMDEP_TRUE='#'- AMDEP_FALSE=-fi---# By default we simply use the C compiler to build assembly code.--test "${CCAS+set}" = set || CCAS=$CC-test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS----depcc="$CCAS" am_compiler_list=--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5-printf %s "checking dependency style of $depcc... " >&6; }-if test ${am_cv_CCAS_dependencies_compiler_type+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then- # We make a subdir and do the tests there. Otherwise we can end up- # making bogus files that we don't know about and never remove. For- # instance it was reported that on HP-UX the gcc test will end up- # making a dummy file named 'D' -- because '-MD' means "put the output- # in D".- rm -rf conftest.dir- mkdir conftest.dir- # Copy depcomp to subdir because otherwise we won't find it if we're- # using a relative directory.- cp "$am_depcomp" conftest.dir- cd conftest.dir- # We will build objects and dependencies in a subdirectory because- # it helps to detect inapplicable dependency modes. For instance- # both Tru64's cc and ICC support -MD to output dependencies as a- # side effect of compilation, but ICC will put the dependencies in- # the current directory while Tru64 will put them in the object- # directory.- mkdir sub-- am_cv_CCAS_dependencies_compiler_type=none- if test "$am_compiler_list" = ""; then- am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`- fi- am__universal=false--- for depmode in $am_compiler_list; do- # Setup a source with many dependencies, because some compilers- # like to wrap large dependency lists on column 80 (with \), and- # we should not choose a depcomp mode which is confused by this.- #- # We need to recreate these files for each test, as the compiler may- # overwrite some of them when testing with obscure command lines.- # This happens at least with the AIX C compiler.- : > sub/conftest.c- for i in 1 2 3 4 5 6; do- echo '#include "conftst'$i'.h"' >> sub/conftest.c- # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with- # Solaris 10 /bin/sh.- echo '/* dummy */' > sub/conftst$i.h- done- echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf-- # We check with '-c' and '-o' for the sake of the "dashmstdout"- # mode. It turns out that the SunPro C++ compiler does not properly- # handle '-M -o', and we need to detect this. Also, some Intel- # versions had trouble with output in subdirs.- am__obj=sub/conftest.${OBJEXT-o}- am__minus_obj="-o $am__obj"- case $depmode in- gcc)- # This depmode causes a compiler race in universal mode.- test "$am__universal" = false || continue- ;;- nosideeffect)- # After this tag, mechanisms are not by side-effect, so they'll- # only be used when explicitly requested.- if test "x$enable_dependency_tracking" = xyes; then- continue- else- break- fi- ;;- msvc7 | msvc7msys | msvisualcpp | msvcmsys)- # This compiler won't grok '-c -o', but also, the minuso test has- # not run yet. These depmodes are late enough in the game, and- # so weak that their functioning should not be impacted.- am__obj=conftest.${OBJEXT-o}- am__minus_obj=- ;;- none) break ;;- esac- if depmode=$depmode \- source=sub/conftest.c object=$am__obj \- depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \- $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \- >/dev/null 2>conftest.err &&- grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&- grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&- grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&- ${MAKE-make} -s -f confmf > /dev/null 2>&1; then- # icc doesn't choke on unknown options, it will just issue warnings- # or remarks (even with -Werror). So we grep stderr for any message- # that says an option was ignored or not supported.- # When given -MP, icc 7.0 and 7.1 complain thus:- # icc: Command line warning: ignoring option '-M'; no argument required- # The diagnosis changed in icc 8.0:- # icc: Command line remark: option '-MP' not supported- if (grep 'ignoring option' conftest.err ||- grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else- am_cv_CCAS_dependencies_compiler_type=$depmode- break- fi- fi- done-- cd ..- rm -rf conftest.dir-else- am_cv_CCAS_dependencies_compiler_type=none-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5-printf "%s\n" "$am_cv_CCAS_dependencies_compiler_type" >&6; }-CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type-- if- test "x$enable_dependency_tracking" != xno \- && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then- am__fastdepCCAS_TRUE=- am__fastdepCCAS_FALSE='#'-else- am__fastdepCCAS_TRUE='#'- am__fastdepCCAS_FALSE=-fi----{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5-printf %s "checking for grep that handles long lines and -e... " >&6; }-if test ${ac_cv_path_GREP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -z "$GREP"; then- ac_path_GREP_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_prog in grep ggrep- do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_GREP" || continue-# Check for GNU ac_path_GREP and select it if it is found.- # Check for GNU $ac_path_GREP-case `"$ac_path_GREP" --version 2>&1` in #(-*GNU*)- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;-#(-*)- ac_count=0- printf %s 0123456789 >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- printf "%s\n" 'GREP' >> "conftest.nl"- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- as_fn_arith $ac_count + 1 && ac_count=$as_val- if test $ac_count -gt ${ac_path_GREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_GREP="$ac_path_GREP"- ac_path_GREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac-- $ac_path_GREP_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_GREP"; then- as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5- fi-else- ac_cv_path_GREP=$GREP-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5-printf "%s\n" "$ac_cv_path_GREP" >&6; }- GREP="$ac_cv_path_GREP"---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5-printf %s "checking for egrep... " >&6; }-if test ${ac_cv_path_EGREP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if echo a | $GREP -E '(a|b)' >/dev/null 2>&1- then ac_cv_path_EGREP="$GREP -E"- else- if test -z "$EGREP"; then- ac_path_EGREP_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_prog in egrep- do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_EGREP" || continue-# Check for GNU ac_path_EGREP and select it if it is found.- # Check for GNU $ac_path_EGREP-case `"$ac_path_EGREP" --version 2>&1` in #(-*GNU*)- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;-#(-*)- ac_count=0- printf %s 0123456789 >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- printf "%s\n" 'EGREP' >> "conftest.nl"- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- as_fn_arith $ac_count + 1 && ac_count=$as_val- if test $ac_count -gt ${ac_path_EGREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_EGREP="$ac_path_EGREP"- ac_path_EGREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac-- $ac_path_EGREP_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_EGREP"; then- as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5- fi-else- ac_cv_path_EGREP=$EGREP-fi-- fi ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5-printf "%s\n" "$ac_cv_path_EGREP" >&6; }- EGREP="$ac_cv_path_EGREP"-- EGREP_TRADITIONAL=$EGREP- ac_cv_path_EGREP_TRADITIONAL=$EGREP--case `pwd` in- *\ * | *\ *)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5-printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;-esac----macro_version='2.5.4'-macro_revision='2.5.4'---------------ltmain=$ac_aux_dir/ltmain.sh--# Backslashify metacharacters that are still active within-# double-quoted strings.-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'--# Same as above, but do not quote variable references.-double_quote_subst='s/\(["`\\]\)/\\\1/g'--# Sed substitution to delay expansion of an escaped shell variable in a-# double_quote_subst'ed string.-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'--# Sed substitution to delay expansion of an escaped single quote.-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'--# Sed substitution to avoid accidental globbing in evaled expressions-no_glob_subst='s/\*/\\\*/g'--ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5-printf %s "checking how to print strings... " >&6; }-# Test print first, because it will be a builtin if present.-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \- test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then- ECHO='print -r --'-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then- ECHO='printf %s\n'-else- # Use this function as a fallback that always works.- func_fallback_echo ()- {- eval 'cat <<_LTECHO_EOF-$1-_LTECHO_EOF'- }- ECHO='func_fallback_echo'-fi--# func_echo_all arg...-# Invoke $ECHO with all args, space-separated.-func_echo_all ()-{- $ECHO ""-}--case $ECHO in- printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5-printf "%s\n" "printf" >&6; } ;;- print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5-printf "%s\n" "print -r" >&6; } ;;- *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5-printf "%s\n" "cat" >&6; } ;;-esac---------------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5-printf %s "checking for a sed that does not truncate output... " >&6; }-if test ${ac_cv_path_SED+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/- for ac_i in 1 2 3 4 5 6 7; do- ac_script="$ac_script$as_nl$ac_script"- done- echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed- { ac_script=; unset ac_script;}- if test -z "$SED"; then- ac_path_SED_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_prog in sed gsed- do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_SED="$as_dir$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_SED" || continue-# Check for GNU ac_path_SED and select it if it is found.- # Check for GNU $ac_path_SED-case `"$ac_path_SED" --version 2>&1` in #(-*GNU*)- ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;-#(-*)- ac_count=0- printf %s 0123456789 >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- printf "%s\n" '' >> "conftest.nl"- "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- as_fn_arith $ac_count + 1 && ac_count=$as_val- if test $ac_count -gt ${ac_path_SED_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_SED="$ac_path_SED"- ac_path_SED_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac-- $ac_path_SED_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_SED"; then- as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5- fi-else- ac_cv_path_SED=$SED-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5-printf "%s\n" "$ac_cv_path_SED" >&6; }- SED="$ac_cv_path_SED"- rm -f conftest.sed--test -z "$SED" && SED=sed-Xsed="$SED -e 1s/^X//"------------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5-printf %s "checking for fgrep... " >&6; }-if test ${ac_cv_path_FGREP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1- then ac_cv_path_FGREP="$GREP -F"- else- if test -z "$FGREP"; then- ac_path_FGREP_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_prog in fgrep- do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_FGREP" || continue-# Check for GNU ac_path_FGREP and select it if it is found.- # Check for GNU $ac_path_FGREP-case `"$ac_path_FGREP" --version 2>&1` in #(-*GNU*)- ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;-#(-*)- ac_count=0- printf %s 0123456789 >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- printf "%s\n" 'FGREP' >> "conftest.nl"- "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- as_fn_arith $ac_count + 1 && ac_count=$as_val- if test $ac_count -gt ${ac_path_FGREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_FGREP="$ac_path_FGREP"- ac_path_FGREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac-- $ac_path_FGREP_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_FGREP"; then- as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5- fi-else- ac_cv_path_FGREP=$FGREP-fi-- fi ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5-printf "%s\n" "$ac_cv_path_FGREP" >&6; }- FGREP="$ac_cv_path_FGREP"---test -z "$GREP" && GREP=grep--------------------# Check whether --with-gnu-ld was given.-if test ${with_gnu_ld+y}-then :- withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes-else case e in #(- e) with_gnu_ld=no ;;-esac-fi--ac_prog=ld-if test yes = "$GCC"; then- # Check if gcc -print-prog-name=ld gives a path.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5-printf %s "checking for ld used by $CC... " >&6; }- case $host in- *-*-mingw* | *-*-windows*)- # gcc leaves a trailing carriage return, which upsets mingw- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;- *)- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;- esac- case $ac_prog in- # Accept absolute paths.- [\\/]* | ?:[\\/]*)- re_direlt='/[^/][^/]*/\.\./'- # Canonicalize the pathname of ld- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`- done- test -z "$LD" && LD=$ac_prog- ;;- "")- # If it fails, then pretend we aren't using GCC.- ac_prog=ld- ;;- *)- # If it is relative, then search for the first ld in PATH.- with_gnu_ld=unknown- ;;- esac-elif test yes = "$with_gnu_ld"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5-printf %s "checking for GNU ld... " >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5-printf %s "checking for non-GNU ld... " >&6; }-fi-if test ${lt_cv_path_LD+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -z "$LD"; then- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR- for ac_dir in $PATH; do- IFS=$lt_save_ifs- test -z "$ac_dir" && ac_dir=.- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then- lt_cv_path_LD=$ac_dir/$ac_prog- # Check to see if the program is GNU ld. I'd rather use --version,- # but apparently some variants of GNU ld only accept -v.- # Break only if it was the GNU/non-GNU ld that we prefer.- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in- *GNU* | *'with BFD'*)- test no != "$with_gnu_ld" && break- ;;- *)- test yes != "$with_gnu_ld" && break- ;;- esac- fi- done- IFS=$lt_save_ifs-else- lt_cv_path_LD=$LD # Let the user override the test with a path.-fi ;;-esac-fi--LD=$lt_cv_path_LD-if test -n "$LD"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5-printf "%s\n" "$LD" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5-printf %s "checking if the linker ($LD) is GNU ld... " >&6; }-if test ${lt_cv_prog_gnu_ld+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) # I'd rather use --version here, but apparently some GNU lds only accept -v.-case `$LD -v 2>&1 </dev/null` in-*GNU* | *'with BFD'*)- lt_cv_prog_gnu_ld=yes- ;;-*)- lt_cv_prog_gnu_ld=no- ;;-esac ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5-printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }-with_gnu_ld=$lt_cv_prog_gnu_ld----------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5-printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }-if test ${lt_cv_path_NM+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$NM"; then- # Let the user override the test.- lt_cv_path_NM=$NM-else- lt_nm_to_check=${ac_tool_prefix}nm- if test -n "$ac_tool_prefix" && test "$build" = "$host"; then- lt_nm_to_check="$lt_nm_to_check nm"- fi- for lt_tmp_nm in $lt_nm_to_check; do- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR- for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do- IFS=$lt_save_ifs- test -z "$ac_dir" && ac_dir=.- tmp_nm=$ac_dir/$lt_tmp_nm- if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then- # Check to see if the nm accepts a BSD-compat flag.- # Adding the 'sed 1q' prevents false positives on HP-UX, which says:- # nm: unknown option "B" ignored- # Tru64's nm complains that /dev/null is an invalid object file- # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty- case $build_os in- mingw* | windows*) lt_bad_file=conftest.nm/nofile ;;- *) lt_bad_file=/dev/null ;;- esac- case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in- *$lt_bad_file* | *'Invalid file or object type'*)- lt_cv_path_NM="$tmp_nm -B"- break 2- ;;- *)- case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in- */dev/null*)- lt_cv_path_NM="$tmp_nm -p"- break 2- ;;- *)- lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but- continue # so that we can try to find one that supports BSD flags- ;;- esac- ;;- esac- fi- done- IFS=$lt_save_ifs- done- : ${lt_cv_path_NM=no}-fi ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5-printf "%s\n" "$lt_cv_path_NM" >&6; }-if test no != "$lt_cv_path_NM"; then- NM=$lt_cv_path_NM-else- # Didn't find any BSD compatible name lister, look for dumpbin.- if test -n "$DUMPBIN"; then :- # Let the user override the test.- else- if test -n "$ac_tool_prefix"; then- for ac_prog in dumpbin "link -dump"- do- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_DUMPBIN+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$DUMPBIN"; then- ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-DUMPBIN=$ac_cv_prog_DUMPBIN-if test -n "$DUMPBIN"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5-printf "%s\n" "$DUMPBIN" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$DUMPBIN" && break- done-fi-if test -z "$DUMPBIN"; then- ac_ct_DUMPBIN=$DUMPBIN- for ac_prog in dumpbin "link -dump"-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_DUMPBIN+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_DUMPBIN"; then- ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN-if test -n "$ac_ct_DUMPBIN"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5-printf "%s\n" "$ac_ct_DUMPBIN" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$ac_ct_DUMPBIN" && break-done-- if test "x$ac_ct_DUMPBIN" = x; then- DUMPBIN=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- DUMPBIN=$ac_ct_DUMPBIN- fi-fi-- case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in- *COFF*)- DUMPBIN="$DUMPBIN -symbols -headers"- ;;- *)- DUMPBIN=:- ;;- esac- fi-- if test : != "$DUMPBIN"; then- NM=$DUMPBIN- fi-fi-test -z "$NM" && NM=nm-------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5-printf %s "checking the name lister ($NM) interface... " >&6; }-if test ${lt_cv_nm_interface+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_nm_interface="BSD nm"- echo "int some_variable = 0;" > conftest.$ac_ext- (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)- (eval "$ac_compile" 2>conftest.err)- cat conftest.err >&5- (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)- (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)- cat conftest.err >&5- (eval echo "\"\$as_me:$LINENO: output\"" >&5)- cat conftest.out >&5- if $GREP 'External.*some_variable' conftest.out > /dev/null; then- lt_cv_nm_interface="MS dumpbin"- fi- rm -f conftest* ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5-printf "%s\n" "$lt_cv_nm_interface" >&6; }--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5-printf %s "checking whether ln -s works... " >&6; }-LN_S=$as_ln_s-if test "$LN_S" = "ln -s"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5-printf "%s\n" "yes" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5-printf "%s\n" "no, using $LN_S" >&6; }-fi--# find the maximum length of command line arguments-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5-printf %s "checking the maximum length of command line arguments... " >&6; }-if test ${lt_cv_sys_max_cmd_len+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) i=0- teststring=ABCD-- case $build_os in- msdosdjgpp*)- # On DJGPP, this test can blow up pretty badly due to problems in libc- # (any single argument exceeding 2000 bytes causes a buffer overrun- # during glob expansion). Even if it were fixed, the result of this- # check would be larger than it should be.- lt_cv_sys_max_cmd_len=12288; # 12K is about right- ;;-- gnu* | ironclad*)- # Under GNU Hurd and Ironclad, this test is not required because there- # is no limit to the length of command line arguments.- # Libtool will interpret -1 as no limit whatsoever- lt_cv_sys_max_cmd_len=-1;- ;;-- cygwin* | mingw* | windows* | cegcc*)- # On Win9x/ME, this test blows up -- it succeeds, but takes- # about 5 minutes as the teststring grows exponentially.- # Worse, since 9x/ME are not pre-emptively multitasking,- # you end up with a "frozen" computer, even though with patience- # the test eventually succeeds (with a max line length of 256k).- # Instead, let's just punt: use the minimum linelength reported by- # all of the supported platforms: 8192 (on NT/2K/XP).- lt_cv_sys_max_cmd_len=8192;- ;;-- mint*)- # On MiNT this can take a long time and run out of memory.- lt_cv_sys_max_cmd_len=8192;- ;;-- amigaos*)- # On AmigaOS with pdksh, this test takes hours, literally.- # So we just punt and use a minimum line length of 8192.- lt_cv_sys_max_cmd_len=8192;- ;;-- darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)- # This has been around since 386BSD, at least. Likely further.- if test -x /sbin/sysctl; then- lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`- elif test -x /usr/sbin/sysctl; then- lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`- else- lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs- fi- # And add a safety zone- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`- ;;-- interix*)- # We know the value 262144 and hardcode it with a safety zone (like BSD)- lt_cv_sys_max_cmd_len=196608- ;;-- os2*)- # The test takes a long time on OS/2.- lt_cv_sys_max_cmd_len=8192- ;;-- osf*)- # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure- # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not- # nice to cause kernel panics so lets avoid the loop below.- # First set a reasonable default.- lt_cv_sys_max_cmd_len=16384- #- if test -x /sbin/sysconfig; then- case `/sbin/sysconfig -q proc exec_disable_arg_limit` in- *1*) lt_cv_sys_max_cmd_len=-1 ;;- esac- fi- ;;- sco3.2v5*)- lt_cv_sys_max_cmd_len=102400- ;;- sysv5* | sco5v6* | sysv4.2uw2*)- kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`- if test -n "$kargmax"; then- lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`- else- lt_cv_sys_max_cmd_len=32768- fi- ;;- *)- lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`- if test -n "$lt_cv_sys_max_cmd_len" && \- test undefined != "$lt_cv_sys_max_cmd_len"; then- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`- else- # Make teststring a little bigger before we do anything with it.- # a 1K string should be a reasonable start.- for i in 1 2 3 4 5 6 7 8; do- teststring=$teststring$teststring- done- SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}- # If test is not a shell built-in, we'll probably end up computing a- # maximum length that is only half of the actual maximum length, but- # we can't tell.- while { test X`env echo "$teststring$teststring" 2>/dev/null` \- = "X$teststring$teststring"; } >/dev/null 2>&1 &&- test 17 != "$i" # 1/2 MB should be enough- do- i=`expr $i + 1`- teststring=$teststring$teststring- done- # Only check the string length outside the loop.- lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`- teststring=- # Add a significant safety factor because C++ compilers can tack on- # massive amounts of additional arguments before passing them to the- # linker. It appears as though 1/2 is a usable value.- lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`- fi- ;;- esac- ;;-esac-fi--if test -n "$lt_cv_sys_max_cmd_len"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5-printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5-printf "%s\n" "none" >&6; }-fi-max_cmd_len=$lt_cv_sys_max_cmd_len-------: ${CP="cp -f"}-: ${MV="mv -f"}-: ${RM="rm -f"}--if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then- lt_unset=unset-else- lt_unset=false-fi------# test EBCDIC or ASCII-case `echo X|tr X '\101'` in- A) # ASCII based system- # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr- lt_SP2NL='tr \040 \012'- lt_NL2SP='tr \015\012 \040\040'- ;;- *) # EBCDIC based system- lt_SP2NL='tr \100 \n'- lt_NL2SP='tr \r\n \100\100'- ;;-esac----------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5-printf %s "checking how to convert $build file names to $host format... " >&6; }-if test ${lt_cv_to_host_file_cmd+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) case $host in- *-*-mingw* )- case $build in- *-*-mingw* | *-*-windows* ) # actually msys- lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32- ;;- *-*-cygwin* )- lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32- ;;- * ) # otherwise, assume *nix- lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32- ;;- esac- ;;- *-*-cygwin* )- case $build in- *-*-mingw* | *-*-windows* ) # actually msys- lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin- ;;- *-*-cygwin* )- lt_cv_to_host_file_cmd=func_convert_file_noop- ;;- * ) # otherwise, assume *nix- lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin- ;;- esac- ;;- * ) # unhandled hosts (and "normal" native builds)- lt_cv_to_host_file_cmd=func_convert_file_noop- ;;-esac- ;;-esac-fi--to_host_file_cmd=$lt_cv_to_host_file_cmd-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5-printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5-printf %s "checking how to convert $build file names to toolchain format... " >&6; }-if test ${lt_cv_to_tool_file_cmd+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) #assume ordinary cross tools, or native build.-lt_cv_to_tool_file_cmd=func_convert_file_noop-case $host in- *-*-mingw* | *-*-windows* )- case $build in- *-*-mingw* | *-*-windows* ) # actually msys- lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32- ;;- esac- ;;-esac- ;;-esac-fi--to_tool_file_cmd=$lt_cv_to_tool_file_cmd-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5-printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5-printf %s "checking for $LD option to reload object files... " >&6; }-if test ${lt_cv_ld_reload_flag+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_ld_reload_flag='-r' ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5-printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }-reload_flag=$lt_cv_ld_reload_flag-case $reload_flag in-"" | " "*) ;;-*) reload_flag=" $reload_flag" ;;-esac-reload_cmds='$LD$reload_flag -o $output$reload_objs'-case $host_os in- cygwin* | mingw* | windows* | pw32* | cegcc*)- if test yes != "$GCC"; then- reload_cmds=false- fi- ;;- darwin*)- if test yes = "$GCC"; then- reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'- else- reload_cmds='$LD$reload_flag -o $output$reload_objs'- fi- ;;-esac----------# Extract the first word of "file", so it can be a program name with args.-set dummy file; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_FILECMD+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$FILECMD"; then- ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_FILECMD="file"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS-- test -z "$ac_cv_prog_FILECMD" && ac_cv_prog_FILECMD=":"-fi ;;-esac-fi-FILECMD=$ac_cv_prog_FILECMD-if test -n "$FILECMD"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5-printf "%s\n" "$FILECMD" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---------if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.-set dummy ${ac_tool_prefix}objdump; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_OBJDUMP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$OBJDUMP"; then- ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-OBJDUMP=$ac_cv_prog_OBJDUMP-if test -n "$OBJDUMP"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5-printf "%s\n" "$OBJDUMP" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_OBJDUMP"; then- ac_ct_OBJDUMP=$OBJDUMP- # Extract the first word of "objdump", so it can be a program name with args.-set dummy objdump; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_OBJDUMP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_OBJDUMP"; then- ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_OBJDUMP="objdump"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP-if test -n "$ac_ct_OBJDUMP"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5-printf "%s\n" "$ac_ct_OBJDUMP" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_OBJDUMP" = x; then- OBJDUMP="false"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- OBJDUMP=$ac_ct_OBJDUMP- fi-else- OBJDUMP="$ac_cv_prog_OBJDUMP"-fi--test -z "$OBJDUMP" && OBJDUMP=objdump----------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5-printf %s "checking how to recognize dependent libraries... " >&6; }-if test ${lt_cv_deplibs_check_method+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_file_magic_cmd='$MAGIC_CMD'-lt_cv_file_magic_test_file=-lt_cv_deplibs_check_method='unknown'-# Need to set the preceding variable on all platforms that support-# interlibrary dependencies.-# 'none' -- dependencies not supported.-# 'unknown' -- same as none, but documents that we really don't know.-# 'pass_all' -- all dependencies passed with no checks.-# 'file_magic [[regex]]' -- check by looking for files in library path-# that responds to the $file_magic_cmd with a given extended regex.-# If you have 'file' or equivalent on your system and you're not sure-# whether 'pass_all' will *always* work, you probably want this one.--case $host_os in-aix[4-9]*)- lt_cv_deplibs_check_method=pass_all- ;;--beos*)- lt_cv_deplibs_check_method=pass_all- ;;--bsdi[45]*)- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'- lt_cv_file_magic_cmd='$FILECMD -L'- lt_cv_file_magic_test_file=/shlib/libc.so- ;;--cygwin*)- # func_win32_libid is a shell function defined in ltmain.sh- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'- lt_cv_file_magic_cmd='func_win32_libid'- ;;--mingw* | windows* | pw32*)- # Base MSYS/MinGW do not provide the 'file' command needed by- # func_win32_libid shell function, so use a weaker test based on 'objdump',- # unless we find 'file', for example because we are cross-compiling.- if ( file / ) >/dev/null 2>&1; then- lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'- lt_cv_file_magic_cmd='func_win32_libid'- else- # Keep this pattern in sync with the one in func_win32_libid.- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)'- lt_cv_file_magic_cmd='$OBJDUMP -f'- fi- ;;--cegcc*)- # use the weaker test based on 'objdump'. See mingw*.- lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'- lt_cv_file_magic_cmd='$OBJDUMP -f'- ;;--darwin* | rhapsody*)- lt_cv_deplibs_check_method=pass_all- ;;--freebsd* | dragonfly* | midnightbsd*)- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then- case $host_cpu in- i*86 )- # Not sure whether the presence of OpenBSD here was a mistake.- # Let's accept both of them until this is cleared up.- lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'- lt_cv_file_magic_cmd=$FILECMD- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`- ;;- esac- else- lt_cv_deplibs_check_method=pass_all- fi- ;;--haiku*)- lt_cv_deplibs_check_method=pass_all- ;;--hpux10.20* | hpux11*)- lt_cv_file_magic_cmd=$FILECMD- case $host_cpu in- ia64*)- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'- lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so- ;;- hppa*64*)- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'- lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl- ;;- *)- lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'- lt_cv_file_magic_test_file=/usr/lib/libc.sl- ;;- esac- ;;--interix[3-9]*)- # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'- ;;--irix5* | irix6* | nonstopux*)- case $LD in- *-32|*"-32 ") libmagic=32-bit;;- *-n32|*"-n32 ") libmagic=N32;;- *-64|*"-64 ") libmagic=64-bit;;- *) libmagic=never-match;;- esac- lt_cv_deplibs_check_method=pass_all- ;;--# This must be glibc/ELF.-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- lt_cv_deplibs_check_method=pass_all- ;;--*-mlibc)- lt_cv_deplibs_check_method=pass_all- ;;--netbsd* | netbsdelf*-gnu)- if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'- else- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'- fi- ;;--newos6*)- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'- lt_cv_file_magic_cmd=$FILECMD- lt_cv_file_magic_test_file=/usr/lib/libnls.so- ;;--*nto* | *qnx*)- lt_cv_deplibs_check_method=pass_all- ;;--openbsd*)- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'- else- lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'- fi- ;;--osf3* | osf4* | osf5*)- lt_cv_deplibs_check_method=pass_all- ;;--rdos*)- lt_cv_deplibs_check_method=pass_all- ;;--serenity*)- lt_cv_deplibs_check_method=pass_all- ;;--solaris*)- lt_cv_deplibs_check_method=pass_all- ;;--sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)- lt_cv_deplibs_check_method=pass_all- ;;--sysv4 | sysv4.3*)- case $host_vendor in- motorola)- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'- lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`- ;;- ncr)- lt_cv_deplibs_check_method=pass_all- ;;- sequent)- lt_cv_file_magic_cmd='/bin/file'- lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'- ;;- sni)- lt_cv_file_magic_cmd='/bin/file'- lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"- lt_cv_file_magic_test_file=/lib/libc.so- ;;- siemens)- lt_cv_deplibs_check_method=pass_all- ;;- pc)- lt_cv_deplibs_check_method=pass_all- ;;- esac- ;;--tpf*)- lt_cv_deplibs_check_method=pass_all- ;;-os2*)- lt_cv_deplibs_check_method=pass_all- ;;-esac- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5-printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }--file_magic_glob=-want_nocaseglob=no-if test "$build" = "$host"; then- case $host_os in- mingw* | windows* | pw32*)- if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then- want_nocaseglob=yes- else- file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`- fi- ;;- esac-fi--file_magic_cmd=$lt_cv_file_magic_cmd-deplibs_check_method=$lt_cv_deplibs_check_method-test -z "$deplibs_check_method" && deplibs_check_method=unknown-----------------------if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.-set dummy ${ac_tool_prefix}dlltool; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_DLLTOOL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$DLLTOOL"; then- ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-DLLTOOL=$ac_cv_prog_DLLTOOL-if test -n "$DLLTOOL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5-printf "%s\n" "$DLLTOOL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_DLLTOOL"; then- ac_ct_DLLTOOL=$DLLTOOL- # Extract the first word of "dlltool", so it can be a program name with args.-set dummy dlltool; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_DLLTOOL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_DLLTOOL"; then- ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_DLLTOOL="dlltool"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL-if test -n "$ac_ct_DLLTOOL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5-printf "%s\n" "$ac_ct_DLLTOOL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_DLLTOOL" = x; then- DLLTOOL="false"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- DLLTOOL=$ac_ct_DLLTOOL- fi-else- DLLTOOL="$ac_cv_prog_DLLTOOL"-fi--test -z "$DLLTOOL" && DLLTOOL=dlltool-----------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5-printf %s "checking how to associate runtime and link libraries... " >&6; }-if test ${lt_cv_sharedlib_from_linklib_cmd+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_sharedlib_from_linklib_cmd='unknown'--case $host_os in-cygwin* | mingw* | windows* | pw32* | cegcc*)- # two different shell functions defined in ltmain.sh;- # decide which one to use based on capabilities of $DLLTOOL- case `$DLLTOOL --help 2>&1` in- *--identify-strict*)- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib- ;;- *)- lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback- ;;- esac- ;;-*)- # fallback: assume linklib IS sharedlib- lt_cv_sharedlib_from_linklib_cmd=$ECHO- ;;-esac- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5-printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO---------if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.-set dummy ${ac_tool_prefix}ranlib; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_RANLIB+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$RANLIB"; then- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-RANLIB=$ac_cv_prog_RANLIB-if test -n "$RANLIB"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5-printf "%s\n" "$RANLIB" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_RANLIB"; then- ac_ct_RANLIB=$RANLIB- # Extract the first word of "ranlib", so it can be a program name with args.-set dummy ranlib; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_RANLIB+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_RANLIB"; then- ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_RANLIB="ranlib"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB-if test -n "$ac_ct_RANLIB"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5-printf "%s\n" "$ac_ct_RANLIB" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_RANLIB" = x; then- RANLIB=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- RANLIB=$ac_ct_RANLIB- fi-else- RANLIB="$ac_cv_prog_RANLIB"-fi--if test -n "$ac_tool_prefix"; then- for ac_prog in ar- do- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_AR+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$AR"; then- ac_cv_prog_AR="$AR" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_AR="$ac_tool_prefix$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-AR=$ac_cv_prog_AR-if test -n "$AR"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5-printf "%s\n" "$AR" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$AR" && break- done-fi-if test -z "$AR"; then- ac_ct_AR=$AR- for ac_prog in ar-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_AR+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_AR"; then- ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_AR="$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_AR=$ac_cv_prog_ac_ct_AR-if test -n "$ac_ct_AR"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5-printf "%s\n" "$ac_ct_AR" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$ac_ct_AR" && break-done-- if test "x$ac_ct_AR" = x; then- AR="false"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- AR=$ac_ct_AR- fi-fi--: ${AR=ar}-------# Use ARFLAGS variable as AR's operation code to sync the variable naming with-# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have-# higher priority because that's what people were doing historically (setting-# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS-# variable obsoleted/removed.--test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}-lt_ar_flags=$AR_FLAGS-------# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override-# by AR_FLAGS because that was never working and AR_FLAGS is about to die.-------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5-printf %s "checking for archiver @FILE support... " >&6; }-if test ${lt_cv_ar_at_file+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_ar_at_file=no- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- echo conftest.$ac_objext > conftest.lst- lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5- (eval $lt_ar_try) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- if test 0 -eq "$ac_status"; then- # Ensure the archiver fails upon bogus file names.- rm -f conftest.$ac_objext libconftest.a- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5- (eval $lt_ar_try) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- if test 0 -ne "$ac_status"; then- lt_cv_ar_at_file=@- fi- fi- rm -f conftest.* libconftest.a--fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5-printf "%s\n" "$lt_cv_ar_at_file" >&6; }--if test no = "$lt_cv_ar_at_file"; then- archiver_list_spec=-else- archiver_list_spec=$lt_cv_ar_at_file-fi--------if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.-set dummy ${ac_tool_prefix}strip; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_STRIP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$STRIP"; then- ac_cv_prog_STRIP="$STRIP" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_STRIP="${ac_tool_prefix}strip"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-STRIP=$ac_cv_prog_STRIP-if test -n "$STRIP"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5-printf "%s\n" "$STRIP" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_STRIP"; then- ac_ct_STRIP=$STRIP- # Extract the first word of "strip", so it can be a program name with args.-set dummy strip; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_STRIP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_STRIP"; then- ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_STRIP="strip"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP-if test -n "$ac_ct_STRIP"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5-printf "%s\n" "$ac_ct_STRIP" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_STRIP" = x; then- STRIP=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- STRIP=$ac_ct_STRIP- fi-else- STRIP="$ac_cv_prog_STRIP"-fi--test -z "$STRIP" && STRIP=:--------test -z "$RANLIB" && RANLIB=:-------# Determine commands to create old-style static archives.-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'-old_postinstall_cmds='chmod 644 $oldlib'-old_postuninstall_cmds=--if test -n "$RANLIB"; then- old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"-fi--case $host_os in- darwin*)- lock_old_archive_extraction=yes ;;- *)- lock_old_archive_extraction=no ;;-esac----------------------for ac_prog in gawk mawk nawk awk-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_AWK+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$AWK"; then- ac_cv_prog_AWK="$AWK" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_AWK="$ac_prog"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-AWK=$ac_cv_prog_AWK-if test -n "$AWK"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5-printf "%s\n" "$AWK" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- test -n "$AWK" && break-done--------------------# If no C compiler was specified, use CC.-LTCC=${LTCC-"$CC"}--# If no C compiler flags were specified, use CFLAGS.-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}--# Allow CC to be a program name with arguments.-compiler=$CC---# Check for command to grab the raw symbol name followed by C symbol from nm.-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5-printf %s "checking command to parse $NM output from $compiler object... " >&6; }-if test ${lt_cv_sys_global_symbol_pipe+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)-# These are sane defaults that work on at least a few old systems.-# [They come from Ultrix. What could be older than Ultrix?!! ;)]--# Character class describing NM global symbol codes.-symcode='[BCDEGRST]'--# Regexp to match symbols that can be accessed directly from C.-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'--# Define system-specific variables.-case $host_os in-aix*)- symcode='[BCDT]'- ;;-cygwin* | mingw* | windows* | pw32* | cegcc*)- symcode='[ABCDGISTW]'- ;;-hpux*)- if test ia64 = "$host_cpu"; then- symcode='[ABCDEGRST]'- fi- ;;-irix* | nonstopux*)- symcode='[BCDEGRST]'- ;;-osf*)- symcode='[BCDEGQRST]'- ;;-solaris*)- symcode='[BCDRT]'- ;;-sco3.2v5*)- symcode='[DT]'- ;;-sysv4.2uw2*)- symcode='[DT]'- ;;-sysv5* | sco5v6* | unixware* | OpenUNIX*)- symcode='[ABDT]'- ;;-sysv4)- symcode='[DFNSTU]'- ;;-esac--# If we're using GNU nm, then use its standard symbol codes.-case `$NM -V 2>&1` in-*GNU* | *'with BFD'*)- symcode='[ABCDGIRSTW]' ;;-esac--if test "$lt_cv_nm_interface" = "MS dumpbin"; then- # Gets list of data symbols to import.- lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"- # Adjust the below global symbol transforms to fixup imported variables.- lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"- lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"- lt_c_name_lib_hook="\- -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\- -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"-else- # Disable hooks by default.- lt_cv_sys_global_symbol_to_import=- lt_cdecl_hook=- lt_c_name_hook=- lt_c_name_lib_hook=-fi--# Transform an extracted symbol line into a proper C declaration.-# Some systems (esp. on ia64) link data and code symbols differently,-# so use this general approach.-lt_cv_sys_global_symbol_to_cdecl="$SED -n"\-$lt_cdecl_hook\-" -e 's/^T .* \(.*\)$/extern int \1();/p'"\-" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"--# Transform an extracted symbol line into symbol name and symbol address-lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\-$lt_c_name_hook\-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"--# Transform an extracted symbol line into symbol name with lib prefix and-# symbol address.-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\-$lt_c_name_lib_hook\-" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\-" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\-" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"--# Handle CRLF in mingw tool chain-opt_cr=-case $build_os in-mingw* | windows*)- opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp- ;;-esac--# Try without a prefix underscore, then with it.-for ac_symprfx in "" "_"; do-- # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.- symxfrm="\\1 $ac_symprfx\\2 \\2"-- # Write the raw and C identifiers.- if test "$lt_cv_nm_interface" = "MS dumpbin"; then- # Fake it for dumpbin and say T for any non-static function,- # D for any global variable and I for any imported variable.- # Also find C++ and __fastcall symbols from MSVC++ or ICC,- # which start with @ or ?.- lt_cv_sys_global_symbol_pipe="$AWK '"\-" {last_section=section; section=\$ 3};"\-" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\-" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\-" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\-" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\-" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\-" \$ 0!~/External *\|/{next};"\-" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\-" {if(hide[section]) next};"\-" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\-" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\-" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\-" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\-" ' prfx=^$ac_symprfx"- else- lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"- fi- lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"-- # Check to see that the pipe works correctly.- pipe_works=no-- rm -f conftest*- cat > conftest.$ac_ext <<_LT_EOF-#ifdef __cplusplus-extern "C" {-#endif-char nm_test_var;-void nm_test_func(void);-void nm_test_func(void){}-#ifdef __cplusplus-}-#endif-int main(void){nm_test_var='a';nm_test_func();return(0);}-_LT_EOF-- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- # Now try to grab the symbols.- nlist=conftest.nm- $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5- if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then- # Try sorting and uniquifying the output.- if sort "$nlist" | uniq > "$nlist"T; then- mv -f "$nlist"T "$nlist"- else- rm -f "$nlist"T- fi-- # Make sure that we snagged all the symbols we need.- if $GREP ' nm_test_var$' "$nlist" >/dev/null; then- if $GREP ' nm_test_func$' "$nlist" >/dev/null; then- cat <<_LT_EOF > conftest.$ac_ext-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */-#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE-/* DATA imports from DLLs on WIN32 can't be const, because runtime- relocations are performed -- see ld's documentation on pseudo-relocs. */-# define LT_DLSYM_CONST-#elif defined __osf__-/* This system does not cope well with relocations in const data. */-# define LT_DLSYM_CONST-#else-# define LT_DLSYM_CONST const-#endif--#ifdef __cplusplus-extern "C" {-#endif--_LT_EOF- # Now generate the symbol file.- eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'-- cat <<_LT_EOF >> conftest.$ac_ext--/* The mapping between symbol names and symbols. */-LT_DLSYM_CONST struct {- const char *name;- void *address;-}-lt__PROGRAM__LTX_preloaded_symbols[] =-{- { "@PROGRAM@", (void *) 0 },-_LT_EOF- $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext- cat <<\_LT_EOF >> conftest.$ac_ext- {0, (void *) 0}-};--/* This works around a problem in FreeBSD linker */-#ifdef FREEBSD_WORKAROUND-static const void *lt_preloaded_setup() {- return lt__PROGRAM__LTX_preloaded_symbols;-}-#endif--#ifdef __cplusplus-}-#endif-_LT_EOF- # Now try linking the two files.- mv conftest.$ac_objext conftstm.$ac_objext- lt_globsym_save_LIBS=$LIBS- lt_globsym_save_CFLAGS=$CFLAGS- LIBS=conftstm.$ac_objext- CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5- (eval $ac_link) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && test -s conftest$ac_exeext; then- pipe_works=yes- fi- LIBS=$lt_globsym_save_LIBS- CFLAGS=$lt_globsym_save_CFLAGS- else- echo "cannot find nm_test_func in $nlist" >&5- fi- else- echo "cannot find nm_test_var in $nlist" >&5- fi- else- echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5- fi- else- echo "$progname: failed program was:" >&5- cat conftest.$ac_ext >&5- fi- rm -rf conftest* conftst*-- # Do not use the global_symbol_pipe unless it works.- if test yes = "$pipe_works"; then- break- else- lt_cv_sys_global_symbol_pipe=- fi-done- ;;-esac-fi--if test -z "$lt_cv_sys_global_symbol_pipe"; then- lt_cv_sys_global_symbol_to_cdecl=-fi-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5-printf "%s\n" "failed" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5-printf "%s\n" "ok" >&6; }-fi--# Response file support.-if test "$lt_cv_nm_interface" = "MS dumpbin"; then- nm_file_list_spec='@'-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then- nm_file_list_spec='@'-fi--------------------------------------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5-printf %s "checking for sysroot... " >&6; }--# Check whether --with-sysroot was given.-if test ${with_sysroot+y}-then :- withval=$with_sysroot;-else case e in #(- e) with_sysroot=no ;;-esac-fi---lt_sysroot=-case $with_sysroot in #(- yes)- if test yes = "$GCC"; then- # Trim trailing / since we'll always append absolute paths and we want- # to avoid //, if only for less confusing output for the user.- lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'`- fi- ;; #(- /*)- lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`- ;; #(- no|'')- ;; #(- *)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5-printf "%s\n" "$with_sysroot" >&6; }- as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5- ;;-esac-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5-printf "%s\n" "${lt_sysroot:-no}" >&6; }------{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5-printf %s "checking for a working dd... " >&6; }-if test ${ac_cv_path_lt_DD+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) printf 0123456789abcdef0123456789abcdef >conftest.i-cat conftest.i conftest.i >conftest2.i-: ${lt_DD:=$DD}-if test -z "$lt_DD"; then- ac_path_lt_DD_found=false- # Loop through the user's path and test for each of PROGNAME-LIST- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_prog in dd- do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"- as_fn_executable_p "$ac_path_lt_DD" || continue-if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then- cmp -s conftest.i conftest.out \- && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:-fi- $ac_path_lt_DD_found && break 3- done- done- done-IFS=$as_save_IFS- if test -z "$ac_cv_path_lt_DD"; then- :- fi-else- ac_cv_path_lt_DD=$lt_DD-fi--rm -f conftest.i conftest2.i conftest.out ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5-printf "%s\n" "$ac_cv_path_lt_DD" >&6; }---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5-printf %s "checking how to truncate binary pipes... " >&6; }-if test ${lt_cv_truncate_bin+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) printf 0123456789abcdef0123456789abcdef >conftest.i-cat conftest.i conftest.i >conftest2.i-lt_cv_truncate_bin=-if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then- cmp -s conftest.i conftest.out \- && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"-fi-rm -f conftest.i conftest2.i conftest.out-test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5-printf "%s\n" "$lt_cv_truncate_bin" >&6; }--------# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.-func_cc_basename ()-{- for cc_temp in $*""; do- case $cc_temp in- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;- \-*) ;;- *) break;;- esac- done- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`-}--# Check whether --enable-libtool-lock was given.-if test ${enable_libtool_lock+y}-then :- enableval=$enable_libtool_lock;-fi--test no = "$enable_libtool_lock" || enable_libtool_lock=yes--# Some flags need to be propagated to the compiler or linker for good-# libtool support.-case $host in-ia64-*-hpux*)- # Find out what ABI is being produced by ac_compile, and set mode- # options accordingly.- echo 'int i;' > conftest.$ac_ext- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- case `$FILECMD conftest.$ac_objext` in- *ELF-32*)- HPUX_IA64_MODE=32- ;;- *ELF-64*)- HPUX_IA64_MODE=64- ;;- esac- fi- rm -rf conftest*- ;;-*-*-irix6*)- # Find out what ABI is being produced by ac_compile, and set linker- # options accordingly.- echo '#line '$LINENO' "configure"' > conftest.$ac_ext- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- if test yes = "$lt_cv_prog_gnu_ld"; then- case `$FILECMD conftest.$ac_objext` in- *32-bit*)- LD="${LD-ld} -melf32bsmip"- ;;- *N32*)- LD="${LD-ld} -melf32bmipn32"- ;;- *64-bit*)- LD="${LD-ld} -melf64bmip"- ;;- esac- else- case `$FILECMD conftest.$ac_objext` in- *32-bit*)- LD="${LD-ld} -32"- ;;- *N32*)- LD="${LD-ld} -n32"- ;;- *64-bit*)- LD="${LD-ld} -64"- ;;- esac- fi- fi- rm -rf conftest*- ;;--mips64*-*linux*)- # Find out what ABI is being produced by ac_compile, and set linker- # options accordingly.- echo '#line '$LINENO' "configure"' > conftest.$ac_ext- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- emul=elf- case `$FILECMD conftest.$ac_objext` in- *32-bit*)- emul="${emul}32"- ;;- *64-bit*)- emul="${emul}64"- ;;- esac- case `$FILECMD conftest.$ac_objext` in- *MSB*)- emul="${emul}btsmip"- ;;- *LSB*)- emul="${emul}ltsmip"- ;;- esac- case `$FILECMD conftest.$ac_objext` in- *N32*)- emul="${emul}n32"- ;;- esac- LD="${LD-ld} -m $emul"- fi- rm -rf conftest*- ;;--x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \-s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)- # Find out what ABI is being produced by ac_compile, and set linker- # options accordingly. Note that the listed cases only cover the- # situations where additional linker options are needed (such as when- # doing 32-bit compilation for a host where ld defaults to 64-bit, or- # vice versa); the common cases where no linker options are needed do- # not appear in the list.- echo 'int i;' > conftest.$ac_ext- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- case `$FILECMD conftest.o` in- *32-bit*)- case $host in- x86_64-*kfreebsd*-gnu)- LD="${LD-ld} -m elf_i386_fbsd"- ;;- x86_64-*linux*|x86_64-gnu*)- case `$FILECMD conftest.o` in- *x86-64*)- LD="${LD-ld} -m elf32_x86_64"- ;;- *)- LD="${LD-ld} -m elf_i386"- ;;- esac- ;;- powerpc64le-*linux*)- LD="${LD-ld} -m elf32lppclinux"- ;;- powerpc64-*linux*)- LD="${LD-ld} -m elf32ppclinux"- ;;- s390x-*linux*)- LD="${LD-ld} -m elf_s390"- ;;- sparc64-*linux*)- LD="${LD-ld} -m elf32_sparc"- ;;- esac- ;;- *64-bit*)- case $host in- x86_64-*kfreebsd*-gnu)- LD="${LD-ld} -m elf_x86_64_fbsd"- ;;- x86_64-*linux*|x86_64-gnu*)- LD="${LD-ld} -m elf_x86_64"- ;;- powerpcle-*linux*)- LD="${LD-ld} -m elf64lppc"- ;;- powerpc-*linux*)- LD="${LD-ld} -m elf64ppc"- ;;- s390*-*linux*|s390*-*tpf*)- LD="${LD-ld} -m elf64_s390"- ;;- sparc*-*linux*)- LD="${LD-ld} -m elf64_sparc"- ;;- esac- ;;- esac- fi- rm -rf conftest*- ;;--*-*-sco3.2v5*)- # On SCO OpenServer 5, we need -belf to get full-featured binaries.- SAVE_CFLAGS=$CFLAGS- CFLAGS="$CFLAGS -belf"- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5-printf %s "checking whether the C compiler needs -belf... " >&6; }-if test ${lt_cv_cc_needs_belf+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- lt_cv_cc_needs_belf=yes-else case e in #(- e) lt_cv_cc_needs_belf=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5-printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }- if test yes != "$lt_cv_cc_needs_belf"; then- # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf- CFLAGS=$SAVE_CFLAGS- fi- ;;-*-*solaris*)- # Find out what ABI is being produced by ac_compile, and set linker- # options accordingly.- echo 'int i;' > conftest.$ac_ext- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- case `$FILECMD conftest.o` in- *64-bit*)- case $lt_cv_prog_gnu_ld in- yes*)- case $host in- i?86-*-solaris*|x86_64-*-solaris*)- LD="${LD-ld} -m elf_x86_64"- ;;- sparc*-*-solaris*)- LD="${LD-ld} -m elf64_sparc"- ;;- esac- # GNU ld 2.21 introduced _sol2 emulations. Use them if available.- if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then- LD=${LD-ld}_sol2- fi- ;;- *)- if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then- LD="${LD-ld} -64"- fi- ;;- esac- ;;- esac- fi- rm -rf conftest*- ;;-esac--need_locks=$enable_libtool_lock--if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.-set dummy ${ac_tool_prefix}mt; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_MANIFEST_TOOL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$MANIFEST_TOOL"; then- ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL-if test -n "$MANIFEST_TOOL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5-printf "%s\n" "$MANIFEST_TOOL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then- ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL- # Extract the first word of "mt", so it can be a program name with args.-set dummy mt; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_MANIFEST_TOOL"; then- ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL-if test -n "$ac_ct_MANIFEST_TOOL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5-printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_MANIFEST_TOOL" = x; then- MANIFEST_TOOL=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL- fi-else- MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"-fi--test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5-printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }-if test ${lt_cv_path_manifest_tool+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_path_manifest_tool=no- echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5- $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out- cat conftest.err >&5- if $GREP 'Manifest Tool' conftest.out > /dev/null; then- lt_cv_path_manifest_tool=yes- fi- rm -f conftest* ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_manifest_tool" >&5-printf "%s\n" "$lt_cv_path_manifest_tool" >&6; }-if test yes != "$lt_cv_path_manifest_tool"; then- MANIFEST_TOOL=:-fi------- case $host_os in- rhapsody* | darwin*)- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_DSYMUTIL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$DSYMUTIL"; then- ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-DSYMUTIL=$ac_cv_prog_DSYMUTIL-if test -n "$DSYMUTIL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5-printf "%s\n" "$DSYMUTIL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_DSYMUTIL"; then- ac_ct_DSYMUTIL=$DSYMUTIL- # Extract the first word of "dsymutil", so it can be a program name with args.-set dummy dsymutil; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_DSYMUTIL"; then- ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL-if test -n "$ac_ct_DSYMUTIL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5-printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_DSYMUTIL" = x; then- DSYMUTIL=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- DSYMUTIL=$ac_ct_DSYMUTIL- fi-else- DSYMUTIL="$ac_cv_prog_DSYMUTIL"-fi-- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.-set dummy ${ac_tool_prefix}nmedit; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_NMEDIT+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$NMEDIT"; then- ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-NMEDIT=$ac_cv_prog_NMEDIT-if test -n "$NMEDIT"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5-printf "%s\n" "$NMEDIT" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_NMEDIT"; then- ac_ct_NMEDIT=$NMEDIT- # Extract the first word of "nmedit", so it can be a program name with args.-set dummy nmedit; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_NMEDIT+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_NMEDIT"; then- ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_NMEDIT="nmedit"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT-if test -n "$ac_ct_NMEDIT"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5-printf "%s\n" "$ac_ct_NMEDIT" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_NMEDIT" = x; then- NMEDIT=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- NMEDIT=$ac_ct_NMEDIT- fi-else- NMEDIT="$ac_cv_prog_NMEDIT"-fi-- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.-set dummy ${ac_tool_prefix}lipo; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_LIPO+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$LIPO"; then- ac_cv_prog_LIPO="$LIPO" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_LIPO="${ac_tool_prefix}lipo"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-LIPO=$ac_cv_prog_LIPO-if test -n "$LIPO"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5-printf "%s\n" "$LIPO" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_LIPO"; then- ac_ct_LIPO=$LIPO- # Extract the first word of "lipo", so it can be a program name with args.-set dummy lipo; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_LIPO+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_LIPO"; then- ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_LIPO="lipo"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO-if test -n "$ac_ct_LIPO"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5-printf "%s\n" "$ac_ct_LIPO" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_LIPO" = x; then- LIPO=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- LIPO=$ac_ct_LIPO- fi-else- LIPO="$ac_cv_prog_LIPO"-fi-- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.-set dummy ${ac_tool_prefix}otool; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_OTOOL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$OTOOL"; then- ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_OTOOL="${ac_tool_prefix}otool"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-OTOOL=$ac_cv_prog_OTOOL-if test -n "$OTOOL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5-printf "%s\n" "$OTOOL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_OTOOL"; then- ac_ct_OTOOL=$OTOOL- # Extract the first word of "otool", so it can be a program name with args.-set dummy otool; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_OTOOL+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_OTOOL"; then- ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_OTOOL="otool"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL-if test -n "$ac_ct_OTOOL"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5-printf "%s\n" "$ac_ct_OTOOL" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_OTOOL" = x; then- OTOOL=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- OTOOL=$ac_ct_OTOOL- fi-else- OTOOL="$ac_cv_prog_OTOOL"-fi-- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.-set dummy ${ac_tool_prefix}otool64; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_OTOOL64+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$OTOOL64"; then- ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-OTOOL64=$ac_cv_prog_OTOOL64-if test -n "$OTOOL64"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5-printf "%s\n" "$OTOOL64" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi---fi-if test -z "$ac_cv_prog_OTOOL64"; then- ac_ct_OTOOL64=$OTOOL64- # Extract the first word of "otool64", so it can be a program name with args.-set dummy otool64; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_prog_ac_ct_OTOOL64+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -n "$ac_ct_OTOOL64"; then- ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_prog_ac_ct_OTOOL64="otool64"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS--fi ;;-esac-fi-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64-if test -n "$ac_ct_OTOOL64"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5-printf "%s\n" "$ac_ct_OTOOL64" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-- if test "x$ac_ct_OTOOL64" = x; then- OTOOL64=":"- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5-printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}-ac_tool_warned=yes ;;-esac- OTOOL64=$ac_ct_OTOOL64- fi-else- OTOOL64="$ac_cv_prog_OTOOL64"-fi---------------------------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5-printf %s "checking for -single_module linker flag... " >&6; }-if test ${lt_cv_apple_cc_single_mod+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_apple_cc_single_mod=no- if test -z "$LT_MULTI_MODULE"; then- # By default we will add the -single_module flag. You can override- # by either setting the environment variable LT_MULTI_MODULE- # non-empty at configure time, or by adding -multi_module to the- # link flags.- rm -rf libconftest.dylib*- echo "int foo(void){return 1;}" > conftest.c- echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \--dynamiclib -Wl,-single_module conftest.c" >&5- $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \- -dynamiclib -Wl,-single_module conftest.c 2>conftest.err- _lt_result=$?- # If there is a non-empty error log, and "single_module"- # appears in it, assume the flag caused a linker warning- if test -s conftest.err && $GREP single_module conftest.err; then- cat conftest.err >&5- # Otherwise, if the output was created with a 0 exit code from- # the compiler, it worked.- elif test -f libconftest.dylib && test 0 = "$_lt_result"; then- lt_cv_apple_cc_single_mod=yes- else- cat conftest.err >&5- fi- rm -rf libconftest.dylib*- rm -f conftest.*- fi ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5-printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }-- # Feature test to disable chained fixups since it is not- # compatible with '-undefined dynamic_lookup'- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -no_fixup_chains linker flag" >&5-printf %s "checking for -no_fixup_chains linker flag... " >&6; }-if test ${lt_cv_support_no_fixup_chains+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- lt_cv_support_no_fixup_chains=yes-else case e in #(- e) lt_cv_support_no_fixup_chains=no- ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- LDFLAGS=$save_LDFLAGS-- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_support_no_fixup_chains" >&5-printf "%s\n" "$lt_cv_support_no_fixup_chains" >&6; }-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5-printf %s "checking for -exported_symbols_list linker flag... " >&6; }-if test ${lt_cv_ld_exported_symbols_list+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_ld_exported_symbols_list=no- save_LDFLAGS=$LDFLAGS- echo "_main" > conftest.sym- LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- lt_cv_ld_exported_symbols_list=yes-else case e in #(- e) lt_cv_ld_exported_symbols_list=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- LDFLAGS=$save_LDFLAGS- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5-printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5-printf %s "checking for -force_load linker flag... " >&6; }-if test ${lt_cv_ld_force_load+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_ld_force_load=no- cat > conftest.c << _LT_EOF-int forced_loaded() { return 2;}-_LT_EOF- echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5- $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5- echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5- $AR $AR_FLAGS libconftest.a conftest.o 2>&5- echo "$RANLIB libconftest.a" >&5- $RANLIB libconftest.a 2>&5- cat > conftest.c << _LT_EOF-int main(void) { return 0;}-_LT_EOF- echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5- $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err- _lt_result=$?- if test -s conftest.err && $GREP force_load conftest.err; then- cat conftest.err >&5- elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then- lt_cv_ld_force_load=yes- else- cat conftest.err >&5- fi- rm -f conftest.err libconftest.a conftest conftest.c- rm -rf conftest.dSYM- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5-printf "%s\n" "$lt_cv_ld_force_load" >&6; }- case $host_os in- rhapsody* | darwin1.[012])- _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;- darwin1.*)- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;- darwin*)- case $MACOSX_DEPLOYMENT_TARGET,$host in- 10.[012],*|,*powerpc*-darwin[5-8]*)- _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;- *)- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup'- if test yes = "$lt_cv_support_no_fixup_chains"; then- as_fn_append _lt_dar_allow_undefined ' $wl-no_fixup_chains'- fi- ;;- esac- ;;- esac- if test yes = "$lt_cv_apple_cc_single_mod"; then- _lt_dar_single_mod='$single_module'- fi- _lt_dar_needs_single_mod=no- case $host_os in- rhapsody* | darwin1.*)- _lt_dar_needs_single_mod=yes ;;- darwin*)- # When targeting Mac OS X 10.4 (darwin 8) or later,- # -single_module is the default and -multi_module is unsupported.- # The toolchain on macOS 10.14 (darwin 18) and later cannot- # target any OS version that needs -single_module.- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in- 10.0,*-darwin[567].*|10.[0-3],*-darwin[5-9].*|10.[0-3],*-darwin1[0-7].*)- _lt_dar_needs_single_mod=yes ;;- esac- ;;- esac- if test yes = "$lt_cv_ld_exported_symbols_list"; then- _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'- else- _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'- fi- if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then- _lt_dsymutil='~$DSYMUTIL $lib || :'- else- _lt_dsymutil=- fi- ;;- esac--# func_munge_path_list VARIABLE PATH-# ------------------------------------# VARIABLE is name of variable containing _space_ separated list of-# directories to be munged by the contents of PATH, which is string-# having a format:-# "DIR[:DIR]:"-# string "DIR[ DIR]" will be prepended to VARIABLE-# ":DIR[:DIR]"-# string "DIR[ DIR]" will be appended to VARIABLE-# "DIRP[:DIRP]::[DIRA:]DIRA"-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string-# "DIRA[ DIRA]" will be appended to VARIABLE-# "DIR[:DIR]"-# VARIABLE will be replaced by "DIR[ DIR]"-func_munge_path_list ()-{- case x$2 in- x)- ;;- *:)- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"- ;;- x:*)- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"- ;;- *::*)- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"- ;;- *)- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"- ;;- esac-}--ac_header= ac_cache=-for ac_item in $ac_header_c_list-do- if test $ac_cache; then- ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"- if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then- printf "%s\n" "#define $ac_item 1" >> confdefs.h- fi- ac_header= ac_cache=- elif test $ac_header; then- ac_cache=$ac_item- else- ac_header=$ac_item- fi-done---------if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes-then :--printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h--fi-ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default-"-if test "x$ac_cv_header_dlfcn_h" = xyes-then :- printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h--fi-----func_stripname_cnf ()-{- case $2 in- .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;;- *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;;- esac-} # func_stripname_cnf------# Set options---- enable_dlopen=no--- enable_win32_dll=no--- # Check whether --enable-shared was given.-if test ${enable_shared+y}-then :- enableval=$enable_shared; p=${PACKAGE-default}- case $enableval in- yes) enable_shared=yes ;;- no) enable_shared=no ;;- *)- enable_shared=no- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for pkg in $enableval; do- IFS=$lt_save_ifs- if test "X$pkg" = "X$p"; then- enable_shared=yes- fi- done- IFS=$lt_save_ifs- ;;- esac-else case e in #(- e) enable_shared=yes ;;-esac-fi---------- # Check whether --enable-static was given.-if test ${enable_static+y}-then :- enableval=$enable_static; p=${PACKAGE-default}- case $enableval in- yes) enable_static=yes ;;- no) enable_static=no ;;- *)- enable_static=no- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for pkg in $enableval; do- IFS=$lt_save_ifs- if test "X$pkg" = "X$p"; then- enable_static=yes- fi- done- IFS=$lt_save_ifs- ;;- esac-else case e in #(- e) enable_static=yes ;;-esac-fi---------- # Check whether --enable-pic was given.-if test ${enable_pic+y}-then :- enableval=$enable_pic; lt_p=${PACKAGE-default}- case $enableval in- yes|no) pic_mode=$enableval ;;- *)- pic_mode=default- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for lt_pkg in $enableval; do- IFS=$lt_save_ifs- if test "X$lt_pkg" = "X$lt_p"; then- pic_mode=yes- fi- done- IFS=$lt_save_ifs- ;;- esac-else case e in #(- e) # Check whether --with-pic was given.-if test ${with_pic+y}-then :- withval=$with_pic; lt_p=${PACKAGE-default}- case $withval in- yes|no) pic_mode=$withval ;;- *)- pic_mode=default- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for lt_pkg in $withval; do- IFS=$lt_save_ifs- if test "X$lt_pkg" = "X$lt_p"; then- pic_mode=yes- fi- done- IFS=$lt_save_ifs- ;;- esac-else case e in #(- e) pic_mode=default ;;-esac-fi-- ;;-esac-fi--------- # Check whether --enable-fast-install was given.-if test ${enable_fast_install+y}-then :- enableval=$enable_fast_install; p=${PACKAGE-default}- case $enableval in- yes) enable_fast_install=yes ;;- no) enable_fast_install=no ;;- *)- enable_fast_install=no- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for pkg in $enableval; do- IFS=$lt_save_ifs- if test "X$pkg" = "X$p"; then- enable_fast_install=yes- fi- done- IFS=$lt_save_ifs- ;;- esac-else case e in #(- e) enable_fast_install=yes ;;-esac-fi--------- shared_archive_member_spec=-case $host,$enable_shared in-power*-*-aix[5-9]*,yes)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5-printf %s "checking which variant of shared library versioning to provide... " >&6; }- # Check whether --enable-aix-soname was given.-if test ${enable_aix_soname+y}-then :- enableval=$enable_aix_soname; case $enableval in- aix|svr4|both)- ;;- *)- as_fn_error $? "Unknown argument to --enable-aix-soname" "$LINENO" 5- ;;- esac- lt_cv_with_aix_soname=$enable_aix_soname-else case e in #(- e) # Check whether --with-aix-soname was given.-if test ${with_aix_soname+y}-then :- withval=$with_aix_soname; case $withval in- aix|svr4|both)- ;;- *)- as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5- ;;- esac- lt_cv_with_aix_soname=$with_aix_soname-else case e in #(- e) if test ${lt_cv_with_aix_soname+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_with_aix_soname=aix ;;-esac-fi- ;;-esac-fi-- enable_aix_soname=$lt_cv_with_aix_soname ;;-esac-fi-- with_aix_soname=$enable_aix_soname- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5-printf "%s\n" "$with_aix_soname" >&6; }- if test aix != "$with_aix_soname"; then- # For the AIX way of multilib, we name the shared archive member- # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',- # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.- # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,- # the AIX toolchain works better with OBJECT_MODE set (default 32).- if test 64 = "${OBJECT_MODE-32}"; then- shared_archive_member_spec=shr_64- else- shared_archive_member_spec=shr- fi- fi- ;;-*)- with_aix_soname=aix- ;;-esac-----------# This can be used to rebuild libtool when needed-LIBTOOL_DEPS=$ltmain--# Always use our own libtool.-LIBTOOL='$(SHELL) $(top_builddir)/libtool'-------------------------------test -z "$LN_S" && LN_S="ln -s"---------------if test -n "${ZSH_VERSION+set}"; then- setopt NO_GLOB_SUBST-fi--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5-printf %s "checking for objdir... " >&6; }-if test ${lt_cv_objdir+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) rm -f .libs 2>/dev/null-mkdir .libs 2>/dev/null-if test -d .libs; then- lt_cv_objdir=.libs-else- # MS-DOS does not allow filenames that begin with a dot.- lt_cv_objdir=_libs-fi-rmdir .libs 2>/dev/null ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5-printf "%s\n" "$lt_cv_objdir" >&6; }-objdir=$lt_cv_objdir------printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h-----case $host_os in-aix3*)- # AIX sometimes has problems with the GCC collect2 program. For some- # reason, if we set the COLLECT_NAMES environment variable, the problems- # vanish in a puff of smoke.- if test set != "${COLLECT_NAMES+set}"; then- COLLECT_NAMES=- export COLLECT_NAMES- fi- ;;-esac--# Global variables:-ofile=libtool-can_build_shared=yes--# All known linkers require a '.a' archive for static linking (except MSVC and-# ICC, which need '.lib').-libext=a--with_gnu_ld=$lt_cv_prog_gnu_ld--old_CC=$CC-old_CFLAGS=$CFLAGS--# Set sane defaults for various variables-test -z "$CC" && CC=cc-test -z "$LTCC" && LTCC=$CC-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS-test -z "$LD" && LD=ld-test -z "$ac_objext" && ac_objext=o--func_cc_basename $compiler-cc_basename=$func_cc_basename_result---# Only perform the check for file, if the check method requires it-test -z "$MAGIC_CMD" && MAGIC_CMD=file-case $deplibs_check_method in-file_magic*)- if test "$file_magic_cmd" = '$MAGIC_CMD'; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5-printf %s "checking for ${ac_tool_prefix}file... " >&6; }-if test ${lt_cv_path_MAGIC_CMD+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) case $MAGIC_CMD in-[\\/*] | ?:[\\/]*)- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.- ;;-*)- lt_save_MAGIC_CMD=$MAGIC_CMD- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"- for ac_dir in $ac_dummy; do- IFS=$lt_save_ifs- test -z "$ac_dir" && ac_dir=.- if test -f "$ac_dir/${ac_tool_prefix}file"; then- lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"- if test -n "$file_magic_test_file"; then- case $deplibs_check_method in- "file_magic "*)- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`- MAGIC_CMD=$lt_cv_path_MAGIC_CMD- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |- $EGREP "$file_magic_regex" > /dev/null; then- :- else- cat <<_LT_EOF 1>&2--*** Warning: the command libtool uses to detect shared libraries,-*** $file_magic_cmd, produces output that libtool cannot recognize.-*** The result is that libtool may fail to recognize shared libraries-*** as such. This will affect the creation of libtool libraries that-*** depend on shared libraries, but programs linked with such libtool-*** libraries will work regardless of this problem. Nevertheless, you-*** may want to report the problem to your system manager and/or to-*** bug-libtool@gnu.org--_LT_EOF- fi ;;- esac- fi- break- fi- done- IFS=$lt_save_ifs- MAGIC_CMD=$lt_save_MAGIC_CMD- ;;-esac ;;-esac-fi--MAGIC_CMD=$lt_cv_path_MAGIC_CMD-if test -n "$MAGIC_CMD"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5-printf "%s\n" "$MAGIC_CMD" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi------if test -z "$lt_cv_path_MAGIC_CMD"; then- if test -n "$ac_tool_prefix"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5-printf %s "checking for file... " >&6; }-if test ${lt_cv_path_MAGIC_CMD+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) case $MAGIC_CMD in-[\\/*] | ?:[\\/]*)- lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.- ;;-*)- lt_save_MAGIC_CMD=$MAGIC_CMD- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR- ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"- for ac_dir in $ac_dummy; do- IFS=$lt_save_ifs- test -z "$ac_dir" && ac_dir=.- if test -f "$ac_dir/file"; then- lt_cv_path_MAGIC_CMD=$ac_dir/"file"- if test -n "$file_magic_test_file"; then- case $deplibs_check_method in- "file_magic "*)- file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`- MAGIC_CMD=$lt_cv_path_MAGIC_CMD- if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |- $EGREP "$file_magic_regex" > /dev/null; then- :- else- cat <<_LT_EOF 1>&2--*** Warning: the command libtool uses to detect shared libraries,-*** $file_magic_cmd, produces output that libtool cannot recognize.-*** The result is that libtool may fail to recognize shared libraries-*** as such. This will affect the creation of libtool libraries that-*** depend on shared libraries, but programs linked with such libtool-*** libraries will work regardless of this problem. Nevertheless, you-*** may want to report the problem to your system manager and/or to-*** bug-libtool@gnu.org--_LT_EOF- fi ;;- esac- fi- break- fi- done- IFS=$lt_save_ifs- MAGIC_CMD=$lt_save_MAGIC_CMD- ;;-esac ;;-esac-fi--MAGIC_CMD=$lt_cv_path_MAGIC_CMD-if test -n "$MAGIC_CMD"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5-printf "%s\n" "$MAGIC_CMD" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- else- MAGIC_CMD=:- fi-fi-- fi- ;;-esac--# Use C for the default configuration in the libtool script--lt_save_CC=$CC-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---# Source file extension for C test sources.-ac_ext=c--# Object file extension for compiled C test sources.-objext=o-objext=$objext--# Code to be used in simple compile tests-lt_simple_compile_test_code="int some_variable = 0;"--# Code to be used in simple link tests-lt_simple_link_test_code='int main(void){return(0);}'--------# If no C compiler was specified, use CC.-LTCC=${LTCC-"$CC"}--# If no C compiler flags were specified, use CFLAGS.-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}--# Allow CC to be a program name with arguments.-compiler=$CC--# Save the default compiler, since it gets overwritten when the other-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.-compiler_DEFAULT=$CC--# save warnings/boilerplate of simple test code-ac_outfile=conftest.$ac_objext-echo "$lt_simple_compile_test_code" >conftest.$ac_ext-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err-_lt_compiler_boilerplate=`cat conftest.err`-$RM conftest*--ac_outfile=conftest.$ac_objext-echo "$lt_simple_link_test_code" >conftest.$ac_ext-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err-_lt_linker_boilerplate=`cat conftest.err`-$RM -r conftest*---## CAVEAT EMPTOR:-## There is no encapsulation within the following macros, do not change-## the running order or otherwise move them around unless you know exactly-## what you are doing...-if test -n "$compiler"; then--lt_prog_compiler_no_builtin_flag=--if test yes = "$GCC"; then- case $cc_basename in- nvcc*)- lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;- *)- lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;- esac-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5-printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }-if test ${lt_cv_prog_compiler_rtti_exceptions+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_rtti_exceptions=no- ac_outfile=conftest.$ac_objext- echo "$lt_simple_compile_test_code" > conftest.$ac_ext- lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- # The option is referenced via a variable to avoid confusing sed.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>conftest.err)- ac_status=$?- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s "$ac_outfile"; then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings other than the usual output.- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_rtti_exceptions=yes- fi- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5-printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }--if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then- lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"-else- :-fi--fi------- lt_prog_compiler_wl=-lt_prog_compiler_pic=-lt_prog_compiler_static=--- if test yes = "$GCC"; then- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_static='-static'-- case $host_os in- aix*)- # All AIX code is PIC.- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static='-Bstatic'- fi- lt_prog_compiler_pic='-fPIC'- ;;-- amigaos*)- case $host_cpu in- powerpc)- # see comment about AmigaOS4 .so support- lt_prog_compiler_pic='-fPIC'- ;;- m68k)- # FIXME: we need at least 68020 code to build shared libraries, but- # adding the '-m68020' flag to GCC prevents building anything better,- # like '-m68040'.- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'- ;;- esac- ;;-- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)- # PIC is the default for these OSes.- ;;-- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- # Although the cygwin gcc ignores -fPIC, still need this for old-style- # (--disable-auto-import) libraries- lt_prog_compiler_pic='-DDLL_EXPORT'- case $host_os in- os2*)- lt_prog_compiler_static='$wl-static'- ;;- esac- ;;-- darwin* | rhapsody*)- # PIC is the default on this platform- # Common symbols not allowed in MH_DYLIB files- lt_prog_compiler_pic='-fno-common'- ;;-- haiku*)- # PIC is the default for Haiku.- # The "-static" flag exists, but is broken.- lt_prog_compiler_static=- ;;-- hpux*)- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag- # sets the default TLS model and affects inlining.- case $host_cpu in- hppa*64*)- # +Z the default- ;;- *)- lt_prog_compiler_pic='-fPIC'- ;;- esac- ;;-- interix[3-9]*)- # Interix 3.x gcc -fpic/-fPIC options generate broken code.- # Instead, we relocate shared libraries at runtime.- ;;-- msdosdjgpp*)- # Just because we use GCC doesn't mean we suddenly get shared libraries- # on systems that don't support them.- lt_prog_compiler_can_build_shared=no- enable_shared=no- ;;-- *nto* | *qnx*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic='-fPIC -shared'- ;;-- sysv4*MP*)- if test -d /usr/nec; then- lt_prog_compiler_pic=-Kconform_pic- fi- ;;-- *)- lt_prog_compiler_pic='-fPIC'- ;;- esac-- case $cc_basename in- nvcc*) # Cuda Compiler Driver 2.2- lt_prog_compiler_wl='-Xlinker '- if test -n "$lt_prog_compiler_pic"; then- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"- fi- ;;- esac- else- # PORTME Check for flag to pass linker flags through the system compiler.- case $host_os in- aix*)- lt_prog_compiler_wl='-Wl,'- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static='-Bstatic'- else- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'- fi- ;;-- darwin* | rhapsody*)- # PIC is the default on this platform- # Common symbols not allowed in MH_DYLIB files- lt_prog_compiler_pic='-fno-common'- case $cc_basename in- nagfor*)- # NAG Fortran compiler- lt_prog_compiler_wl='-Wl,-Wl,,'- lt_prog_compiler_pic='-PIC'- lt_prog_compiler_static='-Bstatic'- ;;- esac- ;;-- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- lt_prog_compiler_pic='-DDLL_EXPORT'- case $host_os in- os2*)- lt_prog_compiler_static='$wl-static'- ;;- esac- ;;-- hpux9* | hpux10* | hpux11*)- lt_prog_compiler_wl='-Wl,'- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but- # not for PA HP-UX.- case $host_cpu in- hppa*64*|ia64*)- # +Z the default- ;;- *)- lt_prog_compiler_pic='+Z'- ;;- esac- # Is there a better lt_prog_compiler_static that works with the bundled CC?- lt_prog_compiler_static='$wl-a ${wl}archive'- ;;-- irix5* | irix6* | nonstopux*)- lt_prog_compiler_wl='-Wl,'- # PIC (with -KPIC) is the default.- lt_prog_compiler_static='-non_shared'- ;;-- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- case $cc_basename in- # old Intel for x86_64, which still supported -KPIC.- ecc*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-static'- ;;- *flang* | ftn | f18* | f95*)- # Flang compiler.- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- # icc used to be incompatible with GCC.- # ICC 10 doesn't accept -KPIC any more.- icc* | ifort*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- # Lahey Fortran 8.1.- lf95*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='--shared'- lt_prog_compiler_static='--static'- ;;- nagfor*)- # NAG Fortran compiler- lt_prog_compiler_wl='-Wl,-Wl,,'- lt_prog_compiler_pic='-PIC'- lt_prog_compiler_static='-Bstatic'- ;;- tcc*)- # Fabrice Bellard et al's Tiny C Compiler- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)- # Portland Group compilers (*not* the Pentium gcc compiler,- # which looks to be a dead project)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fpic'- lt_prog_compiler_static='-Bstatic'- ;;- ccc*)- lt_prog_compiler_wl='-Wl,'- # All Alpha code is PIC.- lt_prog_compiler_static='-non_shared'- ;;- xl* | bgxl* | bgf* | mpixl*)- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-qpic'- lt_prog_compiler_static='-qstaticlink'- ;;- *)- case `$CC -V 2>&1 | $SED 5q` in- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)- # Sun Fortran 8.3 passes all unrecognized flags to the linker- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- lt_prog_compiler_wl=''- ;;- *Sun\ F* | *Sun*Fortran*)- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- lt_prog_compiler_wl='-Qoption ld '- ;;- *Sun\ C*)- # Sun C 5.9- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- lt_prog_compiler_wl='-Wl,'- ;;- *Intel*\ [CF]*Compiler*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- *Portland\ Group*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fpic'- lt_prog_compiler_static='-Bstatic'- ;;- esac- ;;- esac- ;;-- newsos6)- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- ;;-- *-mlibc)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;-- *nto* | *qnx*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic='-fPIC -shared'- ;;-- osf3* | osf4* | osf5*)- lt_prog_compiler_wl='-Wl,'- # All OSF/1 code is PIC.- lt_prog_compiler_static='-non_shared'- ;;-- rdos*)- lt_prog_compiler_static='-non_shared'- ;;-- serenity*)- ;;-- solaris*)- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- case $cc_basename in- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)- lt_prog_compiler_wl='-Qoption ld ';;- *)- lt_prog_compiler_wl='-Wl,';;- esac- ;;-- sunos4*)- lt_prog_compiler_wl='-Qoption ld '- lt_prog_compiler_pic='-PIC'- lt_prog_compiler_static='-Bstatic'- ;;-- sysv4 | sysv4.2uw2* | sysv4.3*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- ;;-- sysv4*MP*)- if test -d /usr/nec; then- lt_prog_compiler_pic='-Kconform_pic'- lt_prog_compiler_static='-Bstatic'- fi- ;;-- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- ;;-- unicos*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_can_build_shared=no- ;;-- uts4*)- lt_prog_compiler_pic='-pic'- lt_prog_compiler_static='-Bstatic'- ;;-- *)- lt_prog_compiler_can_build_shared=no- ;;- esac- fi--case $host_os in- # For platforms that do not support PIC, -DPIC is meaningless:- *djgpp*)- lt_prog_compiler_pic=- ;;- *)- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"- ;;-esac--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5-printf %s "checking for $compiler option to produce PIC... " >&6; }-if test ${lt_cv_prog_compiler_pic+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic--#-# Check to make sure the PIC flag actually works.-#-if test -n "$lt_prog_compiler_pic"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }-if test ${lt_cv_prog_compiler_pic_works+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic_works=no- ac_outfile=conftest.$ac_objext- echo "$lt_simple_compile_test_code" > conftest.$ac_ext- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- # The option is referenced via a variable to avoid confusing sed.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>conftest.err)- ac_status=$?- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s "$ac_outfile"; then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings other than the usual output.- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_pic_works=yes- fi- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }--if test yes = "$lt_cv_prog_compiler_pic_works"; then- case $lt_prog_compiler_pic in- "" | " "*) ;;- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;- esac-else- lt_prog_compiler_pic=- lt_prog_compiler_can_build_shared=no-fi--fi------------#-# Check to make sure the static flag actually works.-#-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }-if test ${lt_cv_prog_compiler_static_works+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_static_works=no- save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"- echo "$lt_simple_link_test_code" > conftest.$ac_ext- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then- # The linker can only warn and ignore the option if not recognized- # So say no if there are warnings- if test -s conftest.err; then- # Append any errors to the config.log.- cat conftest.err 1>&5- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_static_works=yes- fi- else- lt_cv_prog_compiler_static_works=yes- fi- fi- $RM -r conftest*- LDFLAGS=$save_LDFLAGS- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5-printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }--if test yes = "$lt_cv_prog_compiler_static_works"; then- :-else- lt_prog_compiler_static=-fi-------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }-if test ${lt_cv_prog_compiler_c_o+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_c_o=no- $RM -r conftest 2>/dev/null- mkdir conftest- cd conftest- mkdir out- echo "$lt_simple_compile_test_code" > conftest.$ac_ext-- lt_compiler_flag="-o out/conftest2.$ac_objext"- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>out/conftest.err)- ac_status=$?- cat out/conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s out/conftest2.$ac_objext- then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then- lt_cv_prog_compiler_c_o=yes- fi- fi- chmod u+w . 2>&5- $RM conftest*- # SGI C++ compiler will create directory out/ii_files/ for- # template instantiation- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files- $RM out/* && rmdir out- cd ..- $RM -r conftest- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }-if test ${lt_cv_prog_compiler_c_o+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_c_o=no- $RM -r conftest 2>/dev/null- mkdir conftest- cd conftest- mkdir out- echo "$lt_simple_compile_test_code" > conftest.$ac_ext-- lt_compiler_flag="-o out/conftest2.$ac_objext"- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>out/conftest.err)- ac_status=$?- cat out/conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s out/conftest2.$ac_objext- then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then- lt_cv_prog_compiler_c_o=yes- fi- fi- chmod u+w . 2>&5- $RM conftest*- # SGI C++ compiler will create directory out/ii_files/ for- # template instantiation- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files- $RM out/* && rmdir out- cd ..- $RM -r conftest- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5-printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }-----hard_links=nottested-if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then- # do not overwrite the value of need_locks provided by the user- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5-printf %s "checking if we can lock with hard links... " >&6; }- hard_links=yes- $RM conftest*- ln conftest.a conftest.b 2>/dev/null && hard_links=no- touch conftest.a- ln conftest.a conftest.b 2>&5 || hard_links=no- ln conftest.a conftest.b 2>/dev/null && hard_links=no- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5-printf "%s\n" "$hard_links" >&6; }- if test no = "$hard_links"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5-printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}- need_locks=warn- fi-else- need_locks=no-fi------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5-printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }-- runpath_var=- allow_undefined_flag=- always_export_symbols=no- archive_cmds=- archive_expsym_cmds=- compiler_needs_object=no- enable_shared_with_static_runtimes=no- export_dynamic_flag_spec=- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'- hardcode_automatic=no- hardcode_direct=no- hardcode_direct_absolute=no- hardcode_libdir_flag_spec=- hardcode_libdir_separator=- hardcode_minus_L=no- hardcode_shlibpath_var=unsupported- inherit_rpath=no- link_all_deplibs=unknown- module_cmds=- module_expsym_cmds=- old_archive_from_new_cmds=- old_archive_from_expsyms_cmds=- thread_safe_flag_spec=- whole_archive_flag_spec=- # include_expsyms should be a list of space-separated symbols to be *always*- # included in the symbol list- include_expsyms=- # exclude_expsyms can be an extended regexp of symbols to exclude- # it will be wrapped by ' (' and ')$', so one must not match beginning or- # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',- # as well as any symbol that contains 'd'.- exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'- # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out- # platforms (ab)use it in PIC code, but their linkers get confused if- # the symbol is explicitly referenced. Since portable code cannot- # rely on this symbol name, it's probably fine to never include it in- # preloaded symbol tables.- # Exclude shared library initialization/finalization symbols.- extract_expsyms_cmds=-- case $host_os in- cygwin* | mingw* | windows* | pw32* | cegcc*)- # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time- # When not using gcc, we currently assume that we are using- # Microsoft Visual C++ or Intel C++ Compiler.- if test yes != "$GCC"; then- with_gnu_ld=no- fi- ;;- interix*)- # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)- with_gnu_ld=yes- ;;- esac-- ld_shlibs=yes-- # On some targets, GNU ld is compatible enough with the native linker- # that we're better off using the native interface for both.- lt_use_gnu_ld_interface=no- if test yes = "$with_gnu_ld"; then- case $host_os in- aix*)- # The AIX port of GNU ld has always aspired to compatibility- # with the native linker. However, as the warning in the GNU ld- # block says, versions before 2.19.5* couldn't really create working- # shared libraries, regardless of the interface used.- case `$LD -v 2>&1` in- *\ \(GNU\ Binutils\)\ 2.19.5*) ;;- *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;- *\ \(GNU\ Binutils\)\ [3-9]*) ;;- *)- lt_use_gnu_ld_interface=yes- ;;- esac- ;;- *)- lt_use_gnu_ld_interface=yes- ;;- esac- fi-- if test yes = "$lt_use_gnu_ld_interface"; then- # If archive_cmds runs LD, not CC, wlarc should be empty- wlarc='$wl'-- # Set some defaults for GNU ld with shared library support. These- # are reset later if shared libraries are not supported. Putting them- # here allows them to be overridden if necessary.- runpath_var=LD_RUN_PATH- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- export_dynamic_flag_spec='$wl--export-dynamic'- # ancient GNU ld didn't support --whole-archive et. al.- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then- whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'- else- whole_archive_flag_spec=- fi- supports_anon_versioning=no- case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in- *GNU\ gold*) supports_anon_versioning=yes ;;- *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11- *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...- *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...- *\ 2.11.*) ;; # other 2.11 versions- *) supports_anon_versioning=yes ;;- esac-- # See if GNU ld supports shared libraries.- case $host_os in- aix[3-9]*)- # On AIX/PPC, the GNU linker is very broken- if test ia64 != "$host_cpu"; then- ld_shlibs=no- cat <<_LT_EOF 1>&2--*** Warning: the GNU linker, at least up to release 2.19, is reported-*** to be unable to reliably create shared libraries on AIX.-*** Therefore, libtool is disabling shared libraries support. If you-*** really care for shared libraries, you may want to install binutils-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.-*** You will then need to restart the configuration process.--_LT_EOF- fi- ;;-- amigaos*)- case $host_cpu in- powerpc)- # see comment about AmigaOS4 .so support- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds=''- ;;- m68k)- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'- hardcode_libdir_flag_spec='-L$libdir'- hardcode_minus_L=yes- ;;- esac- ;;-- beos*)- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then- allow_undefined_flag=unsupported- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc- # support --undefined. This deserves some investigation. FIXME- archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- else- ld_shlibs=no- fi- ;;-- cygwin* | mingw* | windows* | pw32* | cegcc*)- # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,- # as there is no search path for DLLs.- hardcode_libdir_flag_spec='-L$libdir'- export_dynamic_flag_spec='$wl--export-all-symbols'- allow_undefined_flag=unsupported- always_export_symbols=no- enable_shared_with_static_runtimes=yes- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'- exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'- file_list_spec='@'-- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'- # If the export-symbols file already is a .def file, use it as- # is; otherwise, prepend EXPORTS...- archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then- cp $export_symbols $output_objdir/$soname.def;- else- echo EXPORTS > $output_objdir/$soname.def;- cat $export_symbols >> $output_objdir/$soname.def;- fi~- $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'- else- ld_shlibs=no- fi- ;;-- haiku*)- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- link_all_deplibs=no- ;;-- os2*)- hardcode_libdir_flag_spec='-L$libdir'- hardcode_minus_L=yes- allow_undefined_flag=unsupported- shrext_cmds=.dll- archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~- $ECHO EXPORTS >> $output_objdir/$libname.def~- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~- emximp -o $lib $output_objdir/$libname.def'- archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~- $ECHO EXPORTS >> $output_objdir/$libname.def~- prefix_cmds="$SED"~- if test EXPORTS = "`$SED 1q $export_symbols`"; then- prefix_cmds="$prefix_cmds -e 1d";- fi~- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~- emximp -o $lib $output_objdir/$libname.def'- old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'- enable_shared_with_static_runtimes=yes- file_list_spec='@'- ;;-- interix[3-9]*)- hardcode_direct=no- hardcode_shlibpath_var=no- hardcode_libdir_flag_spec='$wl-rpath,$libdir'- export_dynamic_flag_spec='$wl-E'- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.- # Instead, shared libraries are loaded at an image base (0x10000000 by- # default) and relocated if they conflict, which is a slow very memory- # consuming and fragmenting process. To avoid this, we pick a random,- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link- # time. Moving up from 0x10000000 also allows more sbrk(2) space.- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'- archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'- ;;-- gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)- tmp_diet=no- if test linux-dietlibc = "$host_os"; then- case $cc_basename in- diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)- esac- fi- if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \- && test no = "$tmp_diet"- then- tmp_addflag=' $pic_flag'- tmp_sharedflag='-shared'- case $cc_basename,$host_cpu in- pgcc*) # Portland Group C compiler- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'- tmp_addflag=' $pic_flag'- ;;- pgf77* | pgf90* | pgf95* | pgfortran*)- # Portland Group f77 and f90 compilers- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'- tmp_addflag=' $pic_flag -Mnomain' ;;- ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64- tmp_addflag=' -i_dynamic' ;;- efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64- tmp_addflag=' -i_dynamic -nofor_main' ;;- ifc* | ifort*) # Intel Fortran compiler- tmp_addflag=' -nofor_main' ;;- lf95*) # Lahey Fortran 8.1- whole_archive_flag_spec=- tmp_sharedflag='--shared' ;;- nagfor*) # NAGFOR 5.3- tmp_sharedflag='-Wl,-shared' ;;- xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)- tmp_sharedflag='-qmkshrobj'- tmp_addflag= ;;- nvcc*) # Cuda Compiler Driver 2.2- whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'- compiler_needs_object=yes- ;;- esac- case `$CC -V 2>&1 | $SED 5q` in- *Sun\ C*) # Sun C 5.9- whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'- compiler_needs_object=yes- tmp_sharedflag='-G' ;;- *Sun\ F*) # Sun Fortran 8.3- tmp_sharedflag='-G' ;;- esac- archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'-- if test yes = "$supports_anon_versioning"; then- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~- echo "local: *; };" >> $output_objdir/$libname.ver~- $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'- fi-- case $cc_basename in- tcc*)- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- export_dynamic_flag_spec='-rdynamic'- ;;- xlf* | bgf* | bgxlf* | mpixlf*)- # IBM XL Fortran 10.1 on PPC cannot create shared libs itself- whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'- if test yes = "$supports_anon_versioning"; then- archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~- echo "local: *; };" >> $output_objdir/$libname.ver~- $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'- fi- ;;- esac- else- ld_shlibs=no- fi- ;;-- *-mlibc)- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- ;;-- netbsd* | netbsdelf*-gnu)- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then- archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'- wlarc=- else- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- fi- ;;-- solaris*)- if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then- ld_shlibs=no- cat <<_LT_EOF 1>&2--*** Warning: The releases 2.8.* of the GNU linker cannot reliably-*** create shared libraries on Solaris systems. Therefore, libtool-*** is disabling shared libraries support. We urge you to upgrade GNU-*** binutils to release 2.9.1 or newer. Another option is to modify-*** your PATH or compiler configuration so that the native linker is-*** used, and then restart.--_LT_EOF- elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- else- ld_shlibs=no- fi- ;;-- sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)- case `$LD -v 2>&1` in- *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)- ld_shlibs=no- cat <<_LT_EOF 1>&2--*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot-*** reliably create shared libraries on SCO systems. Therefore, libtool-*** is disabling shared libraries support. We urge you to upgrade GNU-*** binutils to release 2.16.91.0.3 or newer. Another option is to modify-*** your PATH or compiler configuration so that the native linker is-*** used, and then restart.--_LT_EOF- ;;- *)- # For security reasons, it is highly recommended that you always- # use absolute paths for naming shared libraries, and exclude the- # DT_RUNPATH tag from executables and libraries. But doing so- # requires that you compile everything twice, which is a pain.- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- else- ld_shlibs=no- fi- ;;- esac- ;;-- sunos4*)- archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'- wlarc=- hardcode_direct=yes- hardcode_shlibpath_var=no- ;;-- *)- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- else- ld_shlibs=no- fi- ;;- esac-- if test no = "$ld_shlibs"; then- runpath_var=- hardcode_libdir_flag_spec=- export_dynamic_flag_spec=- whole_archive_flag_spec=- fi- else- # PORTME fill in a description of your system's linker (not GNU ld)- case $host_os in- aix3*)- allow_undefined_flag=unsupported- always_export_symbols=yes- archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'- # Note: this linker hardcodes the directories in LIBPATH if there- # are no directories specified by -L.- hardcode_minus_L=yes- if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then- # Neither direct hardcoding nor static linking is supported with a- # broken collect2.- hardcode_direct=unsupported- fi- ;;-- aix[4-9]*)- if test ia64 = "$host_cpu"; then- # On IA64, the linker does run time linking by default, so we don't- # have to do anything special.- aix_use_runtimelinking=no- exp_sym_flag='-Bexport'- no_entry_flag=- else- # If we're using GNU nm, then we don't want the "-C" option.- # -C means demangle to GNU nm, but means don't demangle to AIX nm.- # Without the "-l" option, or with the "-B" option, AIX nm treats- # weak defined symbols like other global defined symbols, whereas- # GNU nm marks them as "W".- # While the 'weak' keyword is ignored in the Export File, we need- # it in the Import File for the 'aix-soname' feature, so we have- # to replace the "-B" option with "-P" for AIX nm.- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then- export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'- else- export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'- fi- aix_use_runtimelinking=no-- # Test if we are trying to use run time linking or normal- # AIX style linking. If -brtl is somewhere in LDFLAGS, we- # have runtime linking enabled, and use it for executables.- # For shared libraries, we enable/disable runtime linking- # depending on the kind of the shared library created -- # when "with_aix_soname,aix_use_runtimelinking" is:- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables- # "aix,yes" lib.so shared, rtl:yes, for executables- # lib.a static archive- # "both,no" lib.so.V(shr.o) shared, rtl:yes- # lib.a(lib.so.V) shared, rtl:no, for executables- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables- # lib.a(lib.so.V) shared, rtl:no- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables- # lib.a static archive- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)- for ld_flag in $LDFLAGS; do- if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then- aix_use_runtimelinking=yes- break- fi- done- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then- # With aix-soname=svr4, we create the lib.so.V shared archives only,- # so we don't have lib.a shared libs to link our executables.- # We have to force runtime linking in this case.- aix_use_runtimelinking=yes- LDFLAGS="$LDFLAGS -Wl,-brtl"- fi- ;;- esac-- exp_sym_flag='-bexport'- no_entry_flag='-bnoentry'- fi-- # When large executables or shared objects are built, AIX ld can- # have problems creating the table of contents. If linking a library- # or program results in "error TOC overflow" add -mminimal-toc to- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.-- archive_cmds=''- hardcode_direct=yes- hardcode_direct_absolute=yes- hardcode_libdir_separator=':'- link_all_deplibs=yes- file_list_spec='$wl-f,'- case $with_aix_soname,$aix_use_runtimelinking in- aix,*) ;; # traditional, no import file- svr4,* | *,yes) # use import file- # The Import File defines what to hardcode.- hardcode_direct=no- hardcode_direct_absolute=no- ;;- esac-- if test yes = "$GCC"; then- case $host_os in aix4.[012]|aix4.[012].*)- # We only want to do this on AIX 4.2 and lower, the check- # below for broken collect2 doesn't work under 4.3+- collect2name=`$CC -print-prog-name=collect2`- if test -f "$collect2name" &&- strings "$collect2name" | $GREP resolve_lib_name >/dev/null- then- # We have reworked collect2- :- else- # We have old collect2- hardcode_direct=unsupported- # It fails to find uninstalled libraries when the uninstalled- # path is not listed in the libpath. Setting hardcode_minus_L- # to unsupported forces relinking- hardcode_minus_L=yes- hardcode_libdir_flag_spec='-L$libdir'- hardcode_libdir_separator=- fi- ;;- esac- shared_flag='-shared'- if test yes = "$aix_use_runtimelinking"; then- shared_flag="$shared_flag "'$wl-G'- fi- # Need to ensure runtime linking is disabled for the traditional- # shared library, or the linker may eventually find shared libraries- # /with/ Import File - we do not want to mix them.- shared_flag_aix='-shared'- shared_flag_svr4='-shared $wl-G'- else- # not using gcc- if test ia64 = "$host_cpu"; then- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release- # chokes on -Wl,-G. The following line is correct:- shared_flag='-G'- else- if test yes = "$aix_use_runtimelinking"; then- shared_flag='$wl-G'- else- shared_flag='$wl-bM:SRE'- fi- shared_flag_aix='$wl-bM:SRE'- shared_flag_svr4='$wl-G'- fi- fi-- export_dynamic_flag_spec='$wl-bexpall'- # It seems that -bexpall does not export symbols beginning with- # underscore (_), so it is better to generate a list of symbols to export.- always_export_symbols=yes- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then- # Warning - without using the other runtime loading flags (-brtl),- # -berok will link without error, but may produce a broken library.- allow_undefined_flag='-berok'- # Determine the default libpath from the value encoded in an- # empty executable.- if test set = "${lt_cv_aix_libpath+set}"; then- aix_libpath=$lt_cv_aix_libpath-else- if test ${lt_cv_aix_libpath_+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :-- lt_aix_libpath_sed='- /Import File Strings/,/^$/ {- /^0/ {- s/^0 *\([^ ]*\) *$/\1/- p- }- }'- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- # Check for a 64-bit object if we didn't find anything.- if test -z "$lt_cv_aix_libpath_"; then- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- if test -z "$lt_cv_aix_libpath_"; then- lt_cv_aix_libpath_=/usr/lib:/lib- fi- ;;-esac-fi-- aix_libpath=$lt_cv_aix_libpath_-fi-- hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"- archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag- else- if test ia64 = "$host_cpu"; then- hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'- allow_undefined_flag="-z nodefs"- archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"- else- # Determine the default libpath from the value encoded in an- # empty executable.- if test set = "${lt_cv_aix_libpath+set}"; then- aix_libpath=$lt_cv_aix_libpath-else- if test ${lt_cv_aix_libpath_+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :-- lt_aix_libpath_sed='- /Import File Strings/,/^$/ {- /^0/ {- s/^0 *\([^ ]*\) *$/\1/- p- }- }'- lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- # Check for a 64-bit object if we didn't find anything.- if test -z "$lt_cv_aix_libpath_"; then- lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- if test -z "$lt_cv_aix_libpath_"; then- lt_cv_aix_libpath_=/usr/lib:/lib- fi- ;;-esac-fi-- aix_libpath=$lt_cv_aix_libpath_-fi-- hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"- # Warning - without using the other run time loading flags,- # -berok will link without error, but may produce a broken library.- no_undefined_flag=' $wl-bernotok'- allow_undefined_flag=' $wl-berok'- if test yes = "$with_gnu_ld"; then- # We only use this code for GNU lds that support --whole-archive.- whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'- else- # Exported symbols can be pulled into shared objects from archives- whole_archive_flag_spec='$convenience'- fi- archive_cmds_need_lc=yes- archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'- # -brtl affects multiple linker settings, -berok does not and is overridden later- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'- if test svr4 != "$with_aix_soname"; then- # This is similar to how AIX traditionally builds its shared libraries.- archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'- fi- if test aix != "$with_aix_soname"; then- archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'- else- # used by -dlpreopen to get the symbols- archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'- fi- archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'- fi- fi- ;;-- amigaos*)- case $host_cpu in- powerpc)- # see comment about AmigaOS4 .so support- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds=''- ;;- m68k)- archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'- hardcode_libdir_flag_spec='-L$libdir'- hardcode_minus_L=yes- ;;- esac- ;;-- bsdi[45]*)- export_dynamic_flag_spec=-rdynamic- ;;-- cygwin* | mingw* | windows* | pw32* | cegcc*)- # When not using gcc, we currently assume that we are using- # Microsoft Visual C++ or Intel C++ Compiler.- # hardcode_libdir_flag_spec is actually meaningless, as there is- # no search path for DLLs.- case $cc_basename in- cl* | icl*)- # Native MSVC or ICC- hardcode_libdir_flag_spec=' '- allow_undefined_flag=unsupported- always_export_symbols=yes- file_list_spec='@'- # Tell ltmain to make .lib files, not .a files.- libext=lib- # Tell ltmain to make .dll files, not .so files.- shrext_cmds=.dll- # FIXME: Setting linknames here is a bad hack.- archive_cmds='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='- archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then- cp "$export_symbols" "$output_objdir/$soname.def";- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";- else- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;- fi~- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~- linknames='- # The linker will not automatically build a static lib if we build a DLL.- # _LT_TAGVAR(old_archive_from_new_cmds, )='true'- enable_shared_with_static_runtimes=yes- exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'- export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'- # Don't use ranlib- old_postinstall_cmds='chmod 644 $oldlib'- postlink_cmds='lt_outputfile="@OUTPUT@"~- lt_tool_outputfile="@TOOL_OUTPUT@"~- case $lt_outputfile in- *.exe|*.EXE) ;;- *)- lt_outputfile=$lt_outputfile.exe- lt_tool_outputfile=$lt_tool_outputfile.exe- ;;- esac~- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;- $RM "$lt_outputfile.manifest";- fi'- ;;- *)- # Assume MSVC and ICC wrapper- hardcode_libdir_flag_spec=' '- allow_undefined_flag=unsupported- # Tell ltmain to make .lib files, not .a files.- libext=lib- # Tell ltmain to make .dll files, not .so files.- shrext_cmds=.dll- # FIXME: Setting linknames here is a bad hack.- archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='- # The linker will automatically build a .lib file if we build a DLL.- old_archive_from_new_cmds='true'- # FIXME: Should let the user specify the lib program.- old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'- enable_shared_with_static_runtimes=yes- ;;- esac- ;;-- darwin* | rhapsody*)--- archive_cmds_need_lc=no- hardcode_direct=no- hardcode_automatic=yes- hardcode_shlibpath_var=unsupported- if test yes = "$lt_cv_ld_force_load"; then- whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'-- else- whole_archive_flag_spec=''- fi- link_all_deplibs=yes- allow_undefined_flag=$_lt_dar_allow_undefined- case $cc_basename in- ifort*|nagfor*) _lt_dar_can_shared=yes ;;- *) _lt_dar_can_shared=$GCC ;;- esac- if test yes = "$_lt_dar_can_shared"; then- output_verbose_link_cmd=func_echo_all- archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"- module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"- archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"- module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"-- else- ld_shlibs=no- fi-- ;;-- dgux*)- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_libdir_flag_spec='-L$libdir'- hardcode_shlibpath_var=no- ;;-- # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor- # support. Future versions do this automatically, but an explicit c++rt0.o- # does not break anything, and helps significantly (at the cost of a little- # extra space).- freebsd2.2*)- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'- hardcode_libdir_flag_spec='-R$libdir'- hardcode_direct=yes- hardcode_shlibpath_var=no- ;;-- # Unfortunately, older versions of FreeBSD 2 do not have this feature.- freebsd2.*)- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'- hardcode_direct=yes- hardcode_minus_L=yes- hardcode_shlibpath_var=no- ;;-- # FreeBSD 3 and greater uses gcc -shared to do shared libraries.- freebsd* | dragonfly* | midnightbsd*)- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'- hardcode_libdir_flag_spec='-R$libdir'- hardcode_direct=yes- hardcode_shlibpath_var=no- ;;-- hpux9*)- if test yes = "$GCC"; then- archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'- else- archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'- fi- hardcode_libdir_flag_spec='$wl+b $wl$libdir'- hardcode_libdir_separator=:- hardcode_direct=yes-- # hardcode_minus_L: Not really in the search PATH,- # but as the default location of the library.- hardcode_minus_L=yes- export_dynamic_flag_spec='$wl-E'- ;;-- hpux10*)- if test yes,no = "$GCC,$with_gnu_ld"; then- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'- else- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'- fi- if test no = "$with_gnu_ld"; then- hardcode_libdir_flag_spec='$wl+b $wl$libdir'- hardcode_libdir_separator=:- hardcode_direct=yes- hardcode_direct_absolute=yes- export_dynamic_flag_spec='$wl-E'- # hardcode_minus_L: Not really in the search PATH,- # but as the default location of the library.- hardcode_minus_L=yes- fi- ;;-- hpux11*)- if test yes,no = "$GCC,$with_gnu_ld"; then- case $host_cpu in- hppa*64*)- archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'- ;;- ia64*)- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'- ;;- *)- archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'- ;;- esac- else- case $host_cpu in- hppa*64*)- archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'- ;;- ia64*)- archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'- ;;- *)-- # Older versions of the 11.00 compiler do not understand -b yet- # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5-printf %s "checking if $CC understands -b... " >&6; }-if test ${lt_cv_prog_compiler__b+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler__b=no- save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS -b"- echo "$lt_simple_link_test_code" > conftest.$ac_ext- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then- # The linker can only warn and ignore the option if not recognized- # So say no if there are warnings- if test -s conftest.err; then- # Append any errors to the config.log.- cat conftest.err 1>&5- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler__b=yes- fi- else- lt_cv_prog_compiler__b=yes- fi- fi- $RM -r conftest*- LDFLAGS=$save_LDFLAGS- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5-printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }--if test yes = "$lt_cv_prog_compiler__b"; then- archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'-else- archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'-fi-- ;;- esac- fi- if test no = "$with_gnu_ld"; then- hardcode_libdir_flag_spec='$wl+b $wl$libdir'- hardcode_libdir_separator=:-- case $host_cpu in- hppa*64*|ia64*)- hardcode_direct=no- hardcode_shlibpath_var=no- ;;- *)- hardcode_direct=yes- hardcode_direct_absolute=yes- export_dynamic_flag_spec='$wl-E'-- # hardcode_minus_L: Not really in the search PATH,- # but as the default location of the library.- hardcode_minus_L=yes- ;;- esac- fi- ;;-- irix5* | irix6* | nonstopux*)- if test yes = "$GCC"; then- archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'- # Try to use the -exported_symbol ld option, if it does not- # work, assume that -exports_file does not work either and- # implicitly export all symbols.- # This should be the same for all languages, so no per-tag cache variable.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5-printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }-if test ${lt_cv_irix_exported_symbol+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-int foo (void) { return 0; }-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- lt_cv_irix_exported_symbol=yes-else case e in #(- e) lt_cv_irix_exported_symbol=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- LDFLAGS=$save_LDFLAGS ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5-printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }- if test yes = "$lt_cv_irix_exported_symbol"; then- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'- fi- else- archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'- fi- archive_cmds_need_lc='no'- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- hardcode_libdir_separator=:- inherit_rpath=yes- link_all_deplibs=yes- ;;-- linux*)- case $cc_basename in- tcc*)- # Fabrice Bellard et al's Tiny C Compiler- ld_shlibs=yes- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- ;;- esac- ;;-- *-mlibc)- ;;-- netbsd* | netbsdelf*-gnu)- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then- archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out- else- archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF- fi- hardcode_libdir_flag_spec='-R$libdir'- hardcode_direct=yes- hardcode_shlibpath_var=no- ;;-- newsos6)- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_direct=yes- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- hardcode_libdir_separator=:- hardcode_shlibpath_var=no- ;;-- *nto* | *qnx*)- ;;-- openbsd*)- if test -f /usr/libexec/ld.so; then- hardcode_direct=yes- hardcode_shlibpath_var=no- hardcode_direct_absolute=yes- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'- hardcode_libdir_flag_spec='$wl-rpath,$libdir'- export_dynamic_flag_spec='$wl-E'- else- archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'- hardcode_libdir_flag_spec='$wl-rpath,$libdir'- fi- else- ld_shlibs=no- fi- ;;-- os2*)- hardcode_libdir_flag_spec='-L$libdir'- hardcode_minus_L=yes- allow_undefined_flag=unsupported- shrext_cmds=.dll- archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~- $ECHO EXPORTS >> $output_objdir/$libname.def~- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~- emximp -o $lib $output_objdir/$libname.def'- archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~- $ECHO EXPORTS >> $output_objdir/$libname.def~- prefix_cmds="$SED"~- if test EXPORTS = "`$SED 1q $export_symbols`"; then- prefix_cmds="$prefix_cmds -e 1d";- fi~- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~- emximp -o $lib $output_objdir/$libname.def'- old_archive_from_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'- enable_shared_with_static_runtimes=yes- file_list_spec='@'- ;;-- osf3*)- if test yes = "$GCC"; then- allow_undefined_flag=' $wl-expect_unresolved $wl\*'- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'- else- allow_undefined_flag=' -expect_unresolved \*'- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'- fi- archive_cmds_need_lc='no'- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- hardcode_libdir_separator=:- ;;-- osf4* | osf5*) # as osf3* with the addition of -msym flag- if test yes = "$GCC"; then- allow_undefined_flag=' $wl-expect_unresolved $wl\*'- archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- else- allow_undefined_flag=' -expect_unresolved \*'- archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'- archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~- $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'-- # Both c and cxx compiler support -rpath directly- hardcode_libdir_flag_spec='-rpath $libdir'- fi- archive_cmds_need_lc='no'- hardcode_libdir_separator=:- ;;-- serenity*)- ;;-- solaris*)- no_undefined_flag=' -z defs'- if test yes = "$GCC"; then- wlarc='$wl'- archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~- $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'- else- case `$CC -V 2>&1` in- *"Compilers 5.0"*)- wlarc=''- archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~- $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'- ;;- *)- wlarc='$wl'- archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~- $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'- ;;- esac- fi- hardcode_libdir_flag_spec='-R$libdir'- hardcode_shlibpath_var=no- case $host_os in- solaris2.[0-5] | solaris2.[0-5].*) ;;- *)- # The compiler driver will combine and reorder linker options,- # but understands '-z linker_flag'. GCC discards it without '$wl',- # but is careful enough not to reorder.- # Supported since Solaris 2.6 (maybe 2.5.1?)- if test yes = "$GCC"; then- whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'- else- whole_archive_flag_spec='-z allextract$convenience -z defaultextract'- fi- ;;- esac- link_all_deplibs=yes- ;;-- sunos4*)- if test sequent = "$host_vendor"; then- # Use $CC to link under sequent, because it throws in some extra .o- # files that make .init and .fini sections work.- archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'- else- archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'- fi- hardcode_libdir_flag_spec='-L$libdir'- hardcode_direct=yes- hardcode_minus_L=yes- hardcode_shlibpath_var=no- ;;-- sysv4)- case $host_vendor in- sni)- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_direct=yes # is this really true???- ;;- siemens)- ## LD is ld it makes a PLAMLIB- ## CC just makes a GrossModule.- archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'- reload_cmds='$CC -r -o $output$reload_objs'- hardcode_direct=no- ;;- motorola)- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_direct=no #Motorola manual says yes, but my tests say they lie- ;;- esac- runpath_var='LD_RUN_PATH'- hardcode_shlibpath_var=no- ;;-- sysv4.3*)- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_shlibpath_var=no- export_dynamic_flag_spec='-Bexport'- ;;-- sysv4*MP*)- if test -d /usr/nec; then- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_shlibpath_var=no- runpath_var=LD_RUN_PATH- hardcode_runpath_var=yes- ld_shlibs=yes- fi- ;;-- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)- no_undefined_flag='$wl-z,text'- archive_cmds_need_lc=no- hardcode_shlibpath_var=no- runpath_var='LD_RUN_PATH'-- if test yes = "$GCC"; then- archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- else- archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- fi- ;;-- sysv5* | sco3.2v5* | sco5v6*)- # Note: We CANNOT use -z defs as we might desire, because we do not- # link with -lc, and that would cause any symbols used from libc to- # always be unresolved, which means just about no library would- # ever link correctly. If we're not using GNU ld we use -z text- # though, which does catch some bad symbols but isn't as heavy-handed- # as -z defs.- no_undefined_flag='$wl-z,text'- allow_undefined_flag='$wl-z,nodefs'- archive_cmds_need_lc=no- hardcode_shlibpath_var=no- hardcode_libdir_flag_spec='$wl-R,$libdir'- hardcode_libdir_separator=':'- link_all_deplibs=yes- export_dynamic_flag_spec='$wl-Bexport'- runpath_var='LD_RUN_PATH'-- if test yes = "$GCC"; then- archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- else- archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- fi- ;;-- uts4*)- archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'- hardcode_libdir_flag_spec='-L$libdir'- hardcode_shlibpath_var=no- ;;-- *)- ld_shlibs=no- ;;- esac-- if test sni = "$host_vendor"; then- case $host in- sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)- export_dynamic_flag_spec='$wl-Blargedynsym'- ;;- esac- fi- fi--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5-printf "%s\n" "$ld_shlibs" >&6; }-test no = "$ld_shlibs" && can_build_shared=no--with_gnu_ld=$with_gnu_ld----------------#-# Do we need to explicitly link libc?-#-case "x$archive_cmds_need_lc" in-x|xyes)- # Assume -lc should be added- archive_cmds_need_lc=yes-- if test yes,yes = "$GCC,$enable_shared"; then- case $archive_cmds in- *'~'*)- # FIXME: we may have to deal with multi-command sequences.- ;;- '$CC '*)- # Test whether the compiler implicitly links with -lc since on some- # systems, -lgcc has to come before -lc. If gcc already passes -lc- # to ld, don't add -lc before -lgcc.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5-printf %s "checking whether -lc should be explicitly linked in... " >&6; }-if test ${lt_cv_archive_cmds_need_lc+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) $RM conftest*- echo "$lt_simple_compile_test_code" > conftest.$ac_ext-- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } 2>conftest.err; then- soname=conftest- lib=conftest- libobjs=conftest.$ac_objext- deplibs=- wl=$lt_prog_compiler_wl- pic_flag=$lt_prog_compiler_pic- compiler_flags=-v- linker_flags=-v- verstring=- output_objdir=.- libname=conftest- lt_save_allow_undefined_flag=$allow_undefined_flag- allow_undefined_flag=- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5- (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- then- lt_cv_archive_cmds_need_lc=no- else- lt_cv_archive_cmds_need_lc=yes- fi- allow_undefined_flag=$lt_save_allow_undefined_flag- else- cat conftest.err 1>&5- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5-printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }- archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc- ;;- esac- fi- ;;-esac--------------------------------------------------------------------------------------------------------------------------------------------------------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5-printf %s "checking dynamic linker characteristics... " >&6; }--if test yes = "$GCC"; then- case $host_os in- darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;- *) lt_awk_arg='/^libraries:/' ;;- esac- case $host_os in- mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;- *) lt_sed_strip_eq='s|=/|/|g' ;;- esac- lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`- case $lt_search_path_spec in- *\;*)- # if the path contains ";" then we assume it to be the separator- # otherwise default to the standard path separator (i.e. ":") - it is- # assumed that no part of a normal pathname contains ";" but that should- # okay in the real world where ";" in dirpaths is itself problematic.- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`- ;;- *)- lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`- ;;- esac- # Ok, now we have the path, separated by spaces, we can step through it- # and add multilib dir if necessary...- lt_tmp_lt_search_path_spec=- lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`- # ...but if some path component already ends with the multilib dir we assume- # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).- case "$lt_multi_os_dir; $lt_search_path_spec " in- "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)- lt_multi_os_dir=- ;;- esac- for lt_sys_path in $lt_search_path_spec; do- if test -d "$lt_sys_path$lt_multi_os_dir"; then- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"- elif test -n "$lt_multi_os_dir"; then- test -d "$lt_sys_path" && \- lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"- fi- done- lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '-BEGIN {RS = " "; FS = "/|\n";} {- lt_foo = "";- lt_count = 0;- for (lt_i = NF; lt_i > 0; lt_i--) {- if ($lt_i != "" && $lt_i != ".") {- if ($lt_i == "..") {- lt_count++;- } else {- if (lt_count == 0) {- lt_foo = "/" $lt_i lt_foo;- } else {- lt_count--;- }- }- }- }- if (lt_foo != "") { lt_freq[lt_foo]++; }- if (lt_freq[lt_foo] == 1) { print lt_foo; }-}'`- # AWK program above erroneously prepends '/' to C:/dos/paths- # for these hosts.- case $host_os in- mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\- $SED 's|/\([A-Za-z]:\)|\1|g'` ;;- esac- sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`-else- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"-fi-library_names_spec=-libname_spec='lib$name'-soname_spec=-shrext_cmds=.so-postinstall_cmds=-postuninstall_cmds=-finish_cmds=-finish_eval=-shlibpath_var=-shlibpath_overrides_runpath=unknown-version_type=none-dynamic_linker="$host_os ld.so"-sys_lib_dlsearch_path_spec="/lib /usr/lib"-need_lib_prefix=unknown-hardcode_into_libs=no--# when you set need_version to no, make sure it does not cause -set_version-# flags to be left without arguments-need_version=unknown----case $host_os in-aix3*)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname.a'- shlibpath_var=LIBPATH-- # AIX 3 has no versioning support, so we append a major version to the name.- soname_spec='$libname$release$shared_ext$major'- ;;--aix[4-9]*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- hardcode_into_libs=yes- if test ia64 = "$host_cpu"; then- # AIX 5 supports IA64- library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- else- # With GCC up to 2.95.x, collect2 would create an import file- # for dependence libraries. The import file would start with- # the line '#! .'. This would cause the generated library to- # depend on '.', always an invalid library. This was fixed in- # development snapshots of GCC prior to 3.0.- case $host_os in- aix4 | aix4.[01] | aix4.[01].*)- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'- echo ' yes '- echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then- :- else- can_build_shared=no- fi- ;;- esac- # Using Import Files as archive members, it is possible to support- # filename-based versioning of shared library archives on AIX. While- # this would work for both with and without runtime linking, it will- # prevent static linking of such archives. So we do filename-based- # shared library versioning with .so extension only, which is used- # when both runtime linking and shared linking is enabled.- # Unfortunately, runtime linking may impact performance, so we do- # not want this to be the default eventually. Also, we use the- # versioned .so libs for executables only if there is the -brtl- # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only.- # To allow for filename-based versioning support, we need to create- # libNAME.so.V as an archive file, containing:- # *) an Import File, referring to the versioned filename of the- # archive as well as the shared archive member, telling the- # bitwidth (32 or 64) of that shared object, and providing the- # list of exported symbols of that shared object, eventually- # decorated with the 'weak' keyword- # *) the shared object with the F_LOADONLY flag set, to really avoid- # it being seen by the linker.- # At run time we better use the real file rather than another symlink,- # but for link time we create the symlink libNAME.so -> libNAME.so.V-- case $with_aix_soname,$aix_use_runtimelinking in- # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct- # soname into executable. Probably we can add versioning support to- # collect2, so additional links can be useful in future.- aix,yes) # traditional libtool- dynamic_linker='AIX unversionable lib.so'- # If using run time linking (on AIX 4.2 or later) use lib<name>.so- # instead of lib<name>.a to let people know that these are not- # typical AIX shared libraries.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- ;;- aix,no) # traditional AIX only- dynamic_linker='AIX lib.a(lib.so.V)'- # We preserve .a as extension for shared libraries through AIX4.2- # and later when we are not doing run time linking.- library_names_spec='$libname$release.a $libname.a'- soname_spec='$libname$release$shared_ext$major'- ;;- svr4,*) # full svr4 only- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'- # We do not specify a path in Import Files, so LIBPATH fires.- shlibpath_overrides_runpath=yes- ;;- *,yes) # both, prefer svr4- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'- # unpreferred sharedlib libNAME.a needs extra handling- postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'- postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'- # We do not specify a path in Import Files, so LIBPATH fires.- shlibpath_overrides_runpath=yes- ;;- *,no) # both, prefer aix- dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"- library_names_spec='$libname$release.a $libname.a'- soname_spec='$libname$release$shared_ext$major'- # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling- postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'- postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'- ;;- esac- shlibpath_var=LIBPATH- fi- ;;--amigaos*)- case $host_cpu in- powerpc)- # Since July 2007 AmigaOS4 officially supports .so libraries.- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- ;;- m68k)- library_names_spec='$libname.ixlibrary $libname.a'- # Create ${libname}_ixlibrary.a entries in /sys/libs.- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'- ;;- esac- ;;--beos*)- library_names_spec='$libname$shared_ext'- dynamic_linker="$host_os ld.so"- shlibpath_var=LIBRARY_PATH- ;;--bsdi[45]*)- version_type=linux # correct to gnu/linux during the next big refactor- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'- shlibpath_var=LD_LIBRARY_PATH- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"- # the default ld.so.conf also contains /usr/contrib/lib and- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow- # libtool to hard-code these into programs- ;;--cygwin* | mingw* | windows* | pw32* | cegcc*)- version_type=windows- shrext_cmds=.dll- need_version=no- need_lib_prefix=no-- case $GCC,$cc_basename in- yes,*)- # gcc- library_names_spec='$libname.dll.a'- # DLL is installed to $(libdir)/../bin by postinstall_cmds- # If user builds GCC with multilib enabled,- # it should just install on $(libdir)- # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones.- if test xyes = x"$multilib"; then- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- $install_prog $dir/$dlname $destdir/$dlname~- chmod a+x $destdir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib $destdir/$dlname'\'' || exit \$?;- fi'- else- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname~- chmod a+x \$dldir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;- fi'- fi- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~- dlpath=$dir/\$dldll~- $RM \$dlpath'- shlibpath_overrides_runpath=yes-- case $host_os in- cygwin*)- # Cygwin DLLs use 'cyg' prefix rather than 'lib'- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'-- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"- ;;- mingw* | windows* | cegcc*)- # MinGW DLLs use traditional 'lib' prefix- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'- ;;- pw32*)- # pw32 DLLs use 'pw' prefix rather than 'lib'- library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'- ;;- esac- dynamic_linker='Win32 ld.exe'- ;;-- *,cl* | *,icl*)- # Native MSVC or ICC- libname_spec='$name'- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'- library_names_spec='$libname.dll.lib'-- case $build_os in- mingw* | windows*)- sys_lib_search_path_spec=- lt_save_ifs=$IFS- IFS=';'- for lt_path in $LIB- do- IFS=$lt_save_ifs- # Let DOS variable expansion print the short 8.3 style file name.- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"- done- IFS=$lt_save_ifs- # Convert to MSYS style.- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`- ;;- cygwin*)- # Convert to unix form, then to dos form, then back to unix form- # but this time dos style (no spaces!) so that the unix form looks- # like /cygdrive/c/PROGRA~1:/cygdr...- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`- ;;- *)- sys_lib_search_path_spec=$LIB- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then- # It is most probably a Windows format PATH.- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`- else- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`- fi- # FIXME: find the short name or the path components, as spaces are- # common. (e.g. "Program Files" -> "PROGRA~1")- ;;- esac-- # DLL is installed to $(libdir)/../bin by postinstall_cmds- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname'- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~- dlpath=$dir/\$dldll~- $RM \$dlpath'- shlibpath_overrides_runpath=yes- dynamic_linker='Win32 link.exe'- ;;-- *)- # Assume MSVC and ICC wrapper- library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'- dynamic_linker='Win32 ld.exe'- ;;- esac- # FIXME: first we should search . and the directory the executable is in- shlibpath_var=PATH- ;;--darwin* | rhapsody*)- dynamic_linker="$host_os dyld"- version_type=darwin- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'- soname_spec='$libname$release$major$shared_ext'- shlibpath_overrides_runpath=yes- shlibpath_var=DYLD_LIBRARY_PATH- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'-- sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'- ;;--dgux*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- ;;--freebsd* | dragonfly* | midnightbsd*)- # DragonFly does not have aout. When/if they implement a new- # versioning mechanism, adjust this.- if test -x /usr/bin/objformat; then- objformat=`/usr/bin/objformat`- else- case $host_os in- freebsd[23].*) objformat=aout ;;- *) objformat=elf ;;- esac- fi- version_type=freebsd-$objformat- case $version_type in- freebsd-elf*)- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- need_version=no- need_lib_prefix=no- ;;- freebsd-*)- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- need_version=yes- ;;- esac- case $host_cpu in- powerpc64)- # On FreeBSD bi-arch platforms, a different variable is used for 32-bit- # binaries. See <https://man.freebsd.org/cgi/man.cgi?query=ld.so>.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-int test_pointer_size[sizeof (void *) - 5];--_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- shlibpath_var=LD_LIBRARY_PATH-else case e in #(- e) shlibpath_var=LD_32_LIBRARY_PATH ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ;;- *)- shlibpath_var=LD_LIBRARY_PATH- ;;- esac- case $host_os in- freebsd2.*)- shlibpath_overrides_runpath=yes- ;;- freebsd3.[01]* | freebsdelf3.[01]*)- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- ;;- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;- *) # from 4.6 on, and DragonFly- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- ;;- esac- ;;--haiku*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- dynamic_linker="$host_os runtime_loader"- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LIBRARY_PATH- shlibpath_overrides_runpath=no- sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib'- sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib'- hardcode_into_libs=no- ;;--hpux9* | hpux10* | hpux11*)- # Give a soname corresponding to the major version so that dld.sl refuses to- # link against other versions.- version_type=sunos- need_lib_prefix=no- need_version=no- case $host_cpu in- ia64*)- shrext_cmds='.so'- hardcode_into_libs=yes- dynamic_linker="$host_os dld.so"- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- if test 32 = "$HPUX_IA64_MODE"; then- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"- sys_lib_dlsearch_path_spec=/usr/lib/hpux32- else- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"- sys_lib_dlsearch_path_spec=/usr/lib/hpux64- fi- ;;- hppa*64*)- shrext_cmds='.sl'- hardcode_into_libs=yes- dynamic_linker="$host_os dld.sl"- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec- ;;- *)- shrext_cmds='.sl'- dynamic_linker="$host_os dld.sl"- shlibpath_var=SHLIB_PATH- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- ;;- esac- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...- postinstall_cmds='chmod 555 $lib'- # or fails outright, so override atomically:- install_override_mode=555- ;;--interix[3-9]*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;--irix5* | irix6* | nonstopux*)- case $host_os in- nonstopux*) version_type=nonstopux ;;- *)- if test yes = "$lt_cv_prog_gnu_ld"; then- version_type=linux # correct to gnu/linux during the next big refactor- else- version_type=irix- fi ;;- esac- need_lib_prefix=no- need_version=no- soname_spec='$libname$release$shared_ext$major'- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'- case $host_os in- irix5* | nonstopux*)- libsuff= shlibsuff=- ;;- *)- case $LD in # libtool.m4 will add one of these switches to LD- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")- libsuff= shlibsuff= libmagic=32-bit;;- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")- libsuff=32 shlibsuff=N32 libmagic=N32;;- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")- libsuff=64 shlibsuff=64 libmagic=64-bit;;- *) libsuff= shlibsuff= libmagic=never-match;;- esac- ;;- esac- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH- shlibpath_overrides_runpath=no- sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"- sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"- hardcode_into_libs=yes- ;;--# No shared lib support for Linux oldld, aout, or coff.-linux*oldld* | linux*aout* | linux*coff*)- dynamic_linker=no- ;;--linux*android*)- version_type=none # Android doesn't support versioned libraries.- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext $libname$shared_ext'- soname_spec='$libname$release$shared_ext'- finish_cmds=- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes-- # This implies no fast_install, which is unacceptable.- # Some rework will be needed to allow for fast_install- # before this can be enabled.- hardcode_into_libs=yes-- dynamic_linker='Android linker'- # -rpath works at least for libraries that are not overridden by- # libraries installed in system locations.- hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'- ;;--# This must be glibc/ELF.-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no-- # Some binutils ld are patched to set DT_RUNPATH- if test ${lt_cv_shlibpath_overrides_runpath+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_shlibpath_overrides_runpath=no- save_LDFLAGS=$LDFLAGS- save_libdir=$libdir- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null-then :- lt_cv_shlibpath_overrides_runpath=yes-fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- LDFLAGS=$save_LDFLAGS- libdir=$save_libdir- ;;-esac-fi-- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath-- # This implies no fast_install, which is unacceptable.- # Some rework will be needed to allow for fast_install- # before this can be enabled.- hardcode_into_libs=yes-- # Add ABI-specific directories to the system library path.- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"-- # Ideally, we could use ldconfig to report *all* directories which are- # searched for libraries, however this is still not possible. Aside from not- # being certain /sbin/ldconfig is available, command- # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,- # even though it is searched at run-time. Try to do the best guess by- # appending ld.so.conf contents (and includes) to the search path.- if test -f /etc/ld.so.conf; then- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"- fi-- # We used to test for /lib/ld.so.1 and disable shared libraries on- # powerpc, because MkLinux only supported shared libraries with the- # GNU dynamic linker. Since this was broken with cross compilers,- # most powerpc-linux boxes support dynamic linking these days and- # people can always --disable-shared, the test was removed, and we- # assume the GNU/Linux dynamic linker is in use.- dynamic_linker='GNU/Linux ld.so'- ;;--netbsdelf*-gnu)- version_type=linux- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- dynamic_linker='NetBSD ld.elf_so'- ;;--netbsd*)- version_type=sunos- need_lib_prefix=no- need_version=no- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'- dynamic_linker='NetBSD (a.out) ld.so'- else- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='NetBSD ld.elf_so'- fi- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- ;;--*-mlibc)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='mlibc ld.so'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;--newsos6)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- ;;--*nto* | *qnx*)- version_type=qnx- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- dynamic_linker='ldqnx.so'- ;;--openbsd*)- version_type=sunos- sys_lib_dlsearch_path_spec=/usr/lib- need_lib_prefix=no- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then- need_version=no- else- need_version=yes- fi- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- ;;--os2*)- libname_spec='$name'- version_type=windows- shrext_cmds=.dll- need_version=no- need_lib_prefix=no- # OS/2 can only load a DLL with a base name of 8 characters or less.- soname_spec='`test -n "$os2dllname" && libname="$os2dllname";- v=$($ECHO $release$versuffix | tr -d .-);- n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);- $ECHO $n$v`$shared_ext'- library_names_spec='${libname}_dll.$libext'- dynamic_linker='OS/2 ld.exe'- shlibpath_var=BEGINLIBPATH- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname~- chmod a+x \$dldir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;- fi'- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~- dlpath=$dir/\$dldll~- $RM \$dlpath'- ;;--osf3* | osf4* | osf5*)- version_type=osf- need_lib_prefix=no- need_version=no- soname_spec='$libname$release$shared_ext$major'- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec- ;;--rdos*)- dynamic_linker=no- ;;--serenity*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- dynamic_linker='SerenityOS LibELF'- ;;--solaris*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- # ldd complains unless libraries are executable- postinstall_cmds='chmod +x $lib'- ;;--sunos4*)- version_type=sunos- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- if test yes = "$with_gnu_ld"; then- need_lib_prefix=no- fi- need_version=yes- ;;--sysv4 | sysv4.3*)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- case $host_vendor in- sni)- shlibpath_overrides_runpath=no- need_lib_prefix=no- runpath_var=LD_RUN_PATH- ;;- siemens)- need_lib_prefix=no- ;;- motorola)- need_lib_prefix=no- need_version=no- shlibpath_overrides_runpath=no- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'- ;;- esac- ;;--sysv4*MP*)- if test -d /usr/nec; then- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'- soname_spec='$libname$shared_ext.$major'- shlibpath_var=LD_LIBRARY_PATH- fi- ;;--sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)- version_type=sco- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- if test yes = "$with_gnu_ld"; then- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'- else- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'- case $host_os in- sco3.2v5*)- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"- ;;- esac- fi- sys_lib_dlsearch_path_spec='/usr/lib'- ;;--tpf*)- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;--uts4*)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- ;;--emscripten*)- version_type=none- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext'- soname_spec='$libname$release$shared_ext'- finish_cmds=- dynamic_linker="Emscripten linker"- lt_prog_compiler_wl=-lt_prog_compiler_pic=-lt_prog_compiler_static=--- if test yes = "$GCC"; then- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_static='-static'-- case $host_os in- aix*)- # All AIX code is PIC.- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static='-Bstatic'- fi- lt_prog_compiler_pic='-fPIC'- ;;-- amigaos*)- case $host_cpu in- powerpc)- # see comment about AmigaOS4 .so support- lt_prog_compiler_pic='-fPIC'- ;;- m68k)- # FIXME: we need at least 68020 code to build shared libraries, but- # adding the '-m68020' flag to GCC prevents building anything better,- # like '-m68040'.- lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'- ;;- esac- ;;-- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)- # PIC is the default for these OSes.- ;;-- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- # Although the cygwin gcc ignores -fPIC, still need this for old-style- # (--disable-auto-import) libraries- lt_prog_compiler_pic='-DDLL_EXPORT'- case $host_os in- os2*)- lt_prog_compiler_static='$wl-static'- ;;- esac- ;;-- darwin* | rhapsody*)- # PIC is the default on this platform- # Common symbols not allowed in MH_DYLIB files- lt_prog_compiler_pic='-fno-common'- ;;-- haiku*)- # PIC is the default for Haiku.- # The "-static" flag exists, but is broken.- lt_prog_compiler_static=- ;;-- hpux*)- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag- # sets the default TLS model and affects inlining.- case $host_cpu in- hppa*64*)- # +Z the default- ;;- *)- lt_prog_compiler_pic='-fPIC'- ;;- esac- ;;-- interix[3-9]*)- # Interix 3.x gcc -fpic/-fPIC options generate broken code.- # Instead, we relocate shared libraries at runtime.- ;;-- msdosdjgpp*)- # Just because we use GCC doesn't mean we suddenly get shared libraries- # on systems that don't support them.- lt_prog_compiler_can_build_shared=no- enable_shared=no- ;;-- *nto* | *qnx*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic='-fPIC -shared'- ;;-- sysv4*MP*)- if test -d /usr/nec; then- lt_prog_compiler_pic=-Kconform_pic- fi- ;;-- *)- lt_prog_compiler_pic='-fPIC'- ;;- esac-- case $cc_basename in- nvcc*) # Cuda Compiler Driver 2.2- lt_prog_compiler_wl='-Xlinker '- if test -n "$lt_prog_compiler_pic"; then- lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"- fi- ;;- esac- else- # PORTME Check for flag to pass linker flags through the system compiler.- case $host_os in- aix*)- lt_prog_compiler_wl='-Wl,'- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static='-Bstatic'- else- lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'- fi- ;;-- darwin* | rhapsody*)- # PIC is the default on this platform- # Common symbols not allowed in MH_DYLIB files- lt_prog_compiler_pic='-fno-common'- case $cc_basename in- nagfor*)- # NAG Fortran compiler- lt_prog_compiler_wl='-Wl,-Wl,,'- lt_prog_compiler_pic='-PIC'- lt_prog_compiler_static='-Bstatic'- ;;- esac- ;;-- mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- lt_prog_compiler_pic='-DDLL_EXPORT'- case $host_os in- os2*)- lt_prog_compiler_static='$wl-static'- ;;- esac- ;;-- hpux9* | hpux10* | hpux11*)- lt_prog_compiler_wl='-Wl,'- # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but- # not for PA HP-UX.- case $host_cpu in- hppa*64*|ia64*)- # +Z the default- ;;- *)- lt_prog_compiler_pic='+Z'- ;;- esac- # Is there a better lt_prog_compiler_static that works with the bundled CC?- lt_prog_compiler_static='$wl-a ${wl}archive'- ;;-- irix5* | irix6* | nonstopux*)- lt_prog_compiler_wl='-Wl,'- # PIC (with -KPIC) is the default.- lt_prog_compiler_static='-non_shared'- ;;-- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- case $cc_basename in- # old Intel for x86_64, which still supported -KPIC.- ecc*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-static'- ;;- *flang* | ftn | f18* | f95*)- # Flang compiler.- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- # icc used to be incompatible with GCC.- # ICC 10 doesn't accept -KPIC any more.- icc* | ifort*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- # Lahey Fortran 8.1.- lf95*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='--shared'- lt_prog_compiler_static='--static'- ;;- nagfor*)- # NAG Fortran compiler- lt_prog_compiler_wl='-Wl,-Wl,,'- lt_prog_compiler_pic='-PIC'- lt_prog_compiler_static='-Bstatic'- ;;- tcc*)- # Fabrice Bellard et al's Tiny C Compiler- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)- # Portland Group compilers (*not* the Pentium gcc compiler,- # which looks to be a dead project)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fpic'- lt_prog_compiler_static='-Bstatic'- ;;- ccc*)- lt_prog_compiler_wl='-Wl,'- # All Alpha code is PIC.- lt_prog_compiler_static='-non_shared'- ;;- xl* | bgxl* | bgf* | mpixl*)- # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-qpic'- lt_prog_compiler_static='-qstaticlink'- ;;- *)- case `$CC -V 2>&1 | $SED 5q` in- *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)- # Sun Fortran 8.3 passes all unrecognized flags to the linker- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- lt_prog_compiler_wl=''- ;;- *Sun\ F* | *Sun*Fortran*)- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- lt_prog_compiler_wl='-Qoption ld '- ;;- *Sun\ C*)- # Sun C 5.9- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- lt_prog_compiler_wl='-Wl,'- ;;- *Intel*\ [CF]*Compiler*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;- *Portland\ Group*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fpic'- lt_prog_compiler_static='-Bstatic'- ;;- esac- ;;- esac- ;;-- newsos6)- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- ;;-- *-mlibc)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-fPIC'- lt_prog_compiler_static='-static'- ;;-- *nto* | *qnx*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic='-fPIC -shared'- ;;-- osf3* | osf4* | osf5*)- lt_prog_compiler_wl='-Wl,'- # All OSF/1 code is PIC.- lt_prog_compiler_static='-non_shared'- ;;-- rdos*)- lt_prog_compiler_static='-non_shared'- ;;-- serenity*)- ;;-- solaris*)- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- case $cc_basename in- f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)- lt_prog_compiler_wl='-Qoption ld ';;- *)- lt_prog_compiler_wl='-Wl,';;- esac- ;;-- sunos4*)- lt_prog_compiler_wl='-Qoption ld '- lt_prog_compiler_pic='-PIC'- lt_prog_compiler_static='-Bstatic'- ;;-- sysv4 | sysv4.2uw2* | sysv4.3*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- ;;-- sysv4*MP*)- if test -d /usr/nec; then- lt_prog_compiler_pic='-Kconform_pic'- lt_prog_compiler_static='-Bstatic'- fi- ;;-- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_pic='-KPIC'- lt_prog_compiler_static='-Bstatic'- ;;-- unicos*)- lt_prog_compiler_wl='-Wl,'- lt_prog_compiler_can_build_shared=no- ;;-- uts4*)- lt_prog_compiler_pic='-pic'- lt_prog_compiler_static='-Bstatic'- ;;-- *)- lt_prog_compiler_can_build_shared=no- ;;- esac- fi--case $host_os in- # For platforms that do not support PIC, -DPIC is meaningless:- *djgpp*)- lt_prog_compiler_pic=- ;;- *)- lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"- ;;-esac--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5-printf %s "checking for $compiler option to produce PIC... " >&6; }-if test ${lt_cv_prog_compiler_pic+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic=$lt_prog_compiler_pic ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic--#-# Check to make sure the PIC flag actually works.-#-if test -n "$lt_prog_compiler_pic"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }-if test ${lt_cv_prog_compiler_pic_works+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic_works=no- ac_outfile=conftest.$ac_objext- echo "$lt_simple_compile_test_code" > conftest.$ac_ext- lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- # The option is referenced via a variable to avoid confusing sed.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>conftest.err)- ac_status=$?- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s "$ac_outfile"; then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings other than the usual output.- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_pic_works=yes- fi- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }--if test yes = "$lt_cv_prog_compiler_pic_works"; then- case $lt_prog_compiler_pic in- "" | " "*) ;;- *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;- esac-else- lt_prog_compiler_pic=- lt_prog_compiler_can_build_shared=no-fi--fi------#-# Check to make sure the static flag actually works.-#-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }-if test ${lt_cv_prog_compiler_static_works+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_static_works=no- save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"- echo "$lt_simple_link_test_code" > conftest.$ac_ext- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then- # The linker can only warn and ignore the option if not recognized- # So say no if there are warnings- if test -s conftest.err; then- # Append any errors to the config.log.- cat conftest.err 1>&5- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_static_works=yes- fi- else- lt_cv_prog_compiler_static_works=yes- fi- fi- $RM -r conftest*- LDFLAGS=$save_LDFLAGS- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5-printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }--if test yes = "$lt_cv_prog_compiler_static_works"; then- :-else- lt_prog_compiler_static=-fi----='-fPIC'- archive_cmds='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib'- archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym'- archive_cmds_need_lc=no- no_undefined_flag=- ;;--*)- dynamic_linker=no- ;;-esac-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5-printf "%s\n" "$dynamic_linker" >&6; }-test no = "$dynamic_linker" && can_build_shared=no--variables_saved_for_relink="PATH $shlibpath_var $runpath_var"-if test yes = "$GCC"; then- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"-fi--if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then- sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec-fi--if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then- sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec-fi--# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec--# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"--# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH-------------------------------------------------------------------------------------------------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5-printf %s "checking how to hardcode library paths into programs... " >&6; }-hardcode_action=-if test -n "$hardcode_libdir_flag_spec" ||- test -n "$runpath_var" ||- test yes = "$hardcode_automatic"; then-- # We can hardcode non-existent directories.- if test no != "$hardcode_direct" &&- # If the only mechanism to avoid hardcoding is shlibpath_var, we- # have to relink, otherwise we might link with an installed library- # when we should be linking with a yet-to-be-installed one- ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&- test no != "$hardcode_minus_L"; then- # Linking always hardcodes the temporary library directory.- hardcode_action=relink- else- # We can link without hardcoding, and we can hardcode nonexisting dirs.- hardcode_action=immediate- fi-else- # We cannot hardcode anything, or else we can only hardcode existing- # directories.- hardcode_action=unsupported-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5-printf "%s\n" "$hardcode_action" >&6; }--if test relink = "$hardcode_action" ||- test yes = "$inherit_rpath"; then- # Fast installation is not supported- enable_fast_install=no-elif test yes = "$shlibpath_overrides_runpath" ||- test no = "$enable_shared"; then- # Fast installation is not necessary- enable_fast_install=needless-fi------- if test yes != "$enable_dlopen"; then- enable_dlopen=unknown- enable_dlopen_self=unknown- enable_dlopen_self_static=unknown-else- lt_cv_dlopen=no- lt_cv_dlopen_libs=-- case $host_os in- beos*)- lt_cv_dlopen=load_add_on- lt_cv_dlopen_libs=- lt_cv_dlopen_self=yes- ;;-- mingw* | windows* | pw32* | cegcc*)- lt_cv_dlopen=LoadLibrary- lt_cv_dlopen_libs=- ;;-- cygwin*)- lt_cv_dlopen=dlopen- lt_cv_dlopen_libs=- ;;-- darwin*)- # if libdl is installed we need to link against it- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5-printf %s "checking for dlopen in -ldl... " >&6; }-if test ${ac_cv_lib_dl_dlopen+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_check_lib_save_LIBS=$LIBS-LIBS="-ldl $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply.- The 'extern "C"' is for builds by C++ compilers;- although this is not generally supported in C code supporting it here- has little cost and some practical benefit (sr 110532). */-#ifdef __cplusplus-extern "C"-#endif-char dlopen (void);-int-main (void)-{-return dlopen ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- ac_cv_lib_dl_dlopen=yes-else case e in #(- e) ac_cv_lib_dl_dlopen=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }-if test "x$ac_cv_lib_dl_dlopen" = xyes-then :- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl-else case e in #(- e)- lt_cv_dlopen=dyld- lt_cv_dlopen_libs=- lt_cv_dlopen_self=yes- ;;-esac-fi-- ;;-- tpf*)- # Don't try to run any link tests for TPF. We know it's impossible- # because TPF is a cross-compiler, and we know how we open DSOs.- lt_cv_dlopen=dlopen- lt_cv_dlopen_libs=- lt_cv_dlopen_self=no- ;;-- *)- ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"-if test "x$ac_cv_func_shl_load" = xyes-then :- lt_cv_dlopen=shl_load-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5-printf %s "checking for shl_load in -ldld... " >&6; }-if test ${ac_cv_lib_dld_shl_load+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_check_lib_save_LIBS=$LIBS-LIBS="-ldld $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply.- The 'extern "C"' is for builds by C++ compilers;- although this is not generally supported in C code supporting it here- has little cost and some practical benefit (sr 110532). */-#ifdef __cplusplus-extern "C"-#endif-char shl_load (void);-int-main (void)-{-return shl_load ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- ac_cv_lib_dld_shl_load=yes-else case e in #(- e) ac_cv_lib_dld_shl_load=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5-printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }-if test "x$ac_cv_lib_dld_shl_load" = xyes-then :- lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld-else case e in #(- e) ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"-if test "x$ac_cv_func_dlopen" = xyes-then :- lt_cv_dlopen=dlopen-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5-printf %s "checking for dlopen in -ldl... " >&6; }-if test ${ac_cv_lib_dl_dlopen+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_check_lib_save_LIBS=$LIBS-LIBS="-ldl $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply.- The 'extern "C"' is for builds by C++ compilers;- although this is not generally supported in C code supporting it here- has little cost and some practical benefit (sr 110532). */-#ifdef __cplusplus-extern "C"-#endif-char dlopen (void);-int-main (void)-{-return dlopen ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- ac_cv_lib_dl_dlopen=yes-else case e in #(- e) ac_cv_lib_dl_dlopen=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5-printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }-if test "x$ac_cv_lib_dl_dlopen" = xyes-then :- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5-printf %s "checking for dlopen in -lsvld... " >&6; }-if test ${ac_cv_lib_svld_dlopen+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_check_lib_save_LIBS=$LIBS-LIBS="-lsvld $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply.- The 'extern "C"' is for builds by C++ compilers;- although this is not generally supported in C code supporting it here- has little cost and some practical benefit (sr 110532). */-#ifdef __cplusplus-extern "C"-#endif-char dlopen (void);-int-main (void)-{-return dlopen ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- ac_cv_lib_svld_dlopen=yes-else case e in #(- e) ac_cv_lib_svld_dlopen=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5-printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }-if test "x$ac_cv_lib_svld_dlopen" = xyes-then :- lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld-else case e in #(- e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5-printf %s "checking for dld_link in -ldld... " >&6; }-if test ${ac_cv_lib_dld_dld_link+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_check_lib_save_LIBS=$LIBS-LIBS="-ldld $LIBS"-cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply.- The 'extern "C"' is for builds by C++ compilers;- although this is not generally supported in C code supporting it here- has little cost and some practical benefit (sr 110532). */-#ifdef __cplusplus-extern "C"-#endif-char dld_link (void);-int-main (void)-{-return dld_link ();- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- ac_cv_lib_dld_dld_link=yes-else case e in #(- e) ac_cv_lib_dld_dld_link=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext-LIBS=$ac_check_lib_save_LIBS ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5-printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }-if test "x$ac_cv_lib_dld_dld_link" = xyes-then :- lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld-fi-- ;;-esac-fi-- ;;-esac-fi-- ;;-esac-fi-- ;;-esac-fi-- ;;-esac-fi-- ;;- esac-- if test no = "$lt_cv_dlopen"; then- enable_dlopen=no- else- enable_dlopen=yes- fi-- case $lt_cv_dlopen in- dlopen)- save_CPPFLAGS=$CPPFLAGS- test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"-- save_LDFLAGS=$LDFLAGS- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"-- save_LIBS=$LIBS- LIBS="$lt_cv_dlopen_libs $LIBS"-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5-printf %s "checking whether a program can dlopen itself... " >&6; }-if test ${lt_cv_dlopen_self+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test yes = "$cross_compiling"; then :- lt_cv_dlopen_self=cross-else- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2- lt_status=$lt_dlunknown- cat > conftest.$ac_ext <<_LT_EOF-#line $LINENO "configure"-#include "confdefs.h"--#if HAVE_DLFCN_H-#include <dlfcn.h>-#endif--#include <stdio.h>--#ifdef RTLD_GLOBAL-# define LT_DLGLOBAL RTLD_GLOBAL-#else-# ifdef DL_GLOBAL-# define LT_DLGLOBAL DL_GLOBAL-# else-# define LT_DLGLOBAL 0-# endif-#endif--/* We may have to define LT_DLLAZY_OR_NOW in the command line if we- find out it does not work in some platform. */-#ifndef LT_DLLAZY_OR_NOW-# ifdef RTLD_LAZY-# define LT_DLLAZY_OR_NOW RTLD_LAZY-# else-# ifdef DL_LAZY-# define LT_DLLAZY_OR_NOW DL_LAZY-# else-# ifdef RTLD_NOW-# define LT_DLLAZY_OR_NOW RTLD_NOW-# else-# ifdef DL_NOW-# define LT_DLLAZY_OR_NOW DL_NOW-# else-# define LT_DLLAZY_OR_NOW 0-# endif-# endif-# endif-# endif-#endif--/* When -fvisibility=hidden is used, assume the code has been annotated- correspondingly for the symbols needed. */-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))-int fnord (void) __attribute__((visibility("default")));-#endif--int fnord (void) { return 42; }-int main (void)-{- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);- int status = $lt_dlunknown;-- if (self)- {- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;- else- {- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;- else puts (dlerror ());- }- /* dlclose (self); */- }- else- puts (dlerror ());-- return status;-}-_LT_EOF- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5- (eval $ac_link) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then- (./conftest; exit; ) >&5 2>/dev/null- lt_status=$?- case x$lt_status in- x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;- x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;- x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;- esac- else :- # compilation failed- lt_cv_dlopen_self=no- fi-fi-rm -fr conftest*-- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5-printf "%s\n" "$lt_cv_dlopen_self" >&6; }-- if test yes = "$lt_cv_dlopen_self"; then- wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5-printf %s "checking whether a statically linked program can dlopen itself... " >&6; }-if test ${lt_cv_dlopen_self_static+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test yes = "$cross_compiling"; then :- lt_cv_dlopen_self_static=cross-else- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2- lt_status=$lt_dlunknown- cat > conftest.$ac_ext <<_LT_EOF-#line $LINENO "configure"-#include "confdefs.h"--#if HAVE_DLFCN_H-#include <dlfcn.h>-#endif--#include <stdio.h>--#ifdef RTLD_GLOBAL-# define LT_DLGLOBAL RTLD_GLOBAL-#else-# ifdef DL_GLOBAL-# define LT_DLGLOBAL DL_GLOBAL-# else-# define LT_DLGLOBAL 0-# endif-#endif--/* We may have to define LT_DLLAZY_OR_NOW in the command line if we- find out it does not work in some platform. */-#ifndef LT_DLLAZY_OR_NOW-# ifdef RTLD_LAZY-# define LT_DLLAZY_OR_NOW RTLD_LAZY-# else-# ifdef DL_LAZY-# define LT_DLLAZY_OR_NOW DL_LAZY-# else-# ifdef RTLD_NOW-# define LT_DLLAZY_OR_NOW RTLD_NOW-# else-# ifdef DL_NOW-# define LT_DLLAZY_OR_NOW DL_NOW-# else-# define LT_DLLAZY_OR_NOW 0-# endif-# endif-# endif-# endif-#endif--/* When -fvisibility=hidden is used, assume the code has been annotated- correspondingly for the symbols needed. */-#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))-int fnord (void) __attribute__((visibility("default")));-#endif--int fnord (void) { return 42; }-int main (void)-{- void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);- int status = $lt_dlunknown;-- if (self)- {- if (dlsym (self,"fnord")) status = $lt_dlno_uscore;- else- {- if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;- else puts (dlerror ());- }- /* dlclose (self); */- }- else- puts (dlerror ());-- return status;-}-_LT_EOF- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5- (eval $ac_link) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then- (./conftest; exit; ) >&5 2>/dev/null- lt_status=$?- case x$lt_status in- x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;- x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;- x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;- esac- else :- # compilation failed- lt_cv_dlopen_self_static=no- fi-fi-rm -fr conftest*-- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5-printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }- fi-- CPPFLAGS=$save_CPPFLAGS- LDFLAGS=$save_LDFLAGS- LIBS=$save_LIBS- ;;- esac-- case $lt_cv_dlopen_self in- yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;- *) enable_dlopen_self=unknown ;;- esac-- case $lt_cv_dlopen_self_static in- yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;- *) enable_dlopen_self_static=unknown ;;- esac-fi------------------striplib=-old_striplib=-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5-printf %s "checking whether stripping libraries is possible... " >&6; }-if test -z "$STRIP"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-else- if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then- old_striplib="$STRIP --strip-debug"- striplib="$STRIP --strip-unneeded"- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5-printf "%s\n" "yes" >&6; }- else- case $host_os in- darwin*)- # FIXME - insert some real tests, host_os isn't really good enough- striplib="$STRIP -x"- old_striplib="$STRIP -S"- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5-printf "%s\n" "yes" >&6; }- ;;- freebsd*)- if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then- old_striplib="$STRIP --strip-debug"- striplib="$STRIP --strip-unneeded"- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5-printf "%s\n" "yes" >&6; }- else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }- fi- ;;- *)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }- ;;- esac- fi-fi------------- # Report what library types will actually be built- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5-printf %s "checking if libtool supports shared libraries... " >&6; }- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5-printf "%s\n" "$can_build_shared" >&6; }-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5-printf %s "checking whether to build shared libraries... " >&6; }- test no = "$can_build_shared" && enable_shared=no-- # On AIX, shared libraries and static libraries use the same namespace, and- # are all built from PIC.- case $host_os in- aix3*)- test yes = "$enable_shared" && enable_static=no- if test -n "$RANLIB"; then- archive_cmds="$archive_cmds~\$RANLIB \$lib"- postinstall_cmds='$RANLIB $lib'- fi- ;;-- aix[4-9]*)- if test ia64 != "$host_cpu"; then- case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in- yes,aix,yes) ;; # shared object as lib.so file only- yes,svr4,*) ;; # shared object as lib.so archive member only- yes,*) enable_static=no ;; # shared object in lib.a archive as well- esac- fi- ;;- esac- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5-printf "%s\n" "$enable_shared" >&6; }-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5-printf %s "checking whether to build static libraries... " >&6; }- # Make sure either enable_shared or enable_static is yes.- test yes = "$enable_shared" || enable_static=yes- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5-printf "%s\n" "$enable_static" >&6; }-----fi-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--CC=$lt_save_CC-- if test -n "$CXX" && ( test no != "$CXX" &&- ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||- (test g++ != "$CXX"))); then- ac_ext=cpp-ac_cpp='$CXXCPP $CPPFLAGS'-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5-printf %s "checking how to run the C++ preprocessor... " >&6; }-if test -z "$CXXCPP"; then- if test ${ac_cv_prog_CXXCPP+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) # Double quotes because $CXX needs to be expanded- for CXXCPP in "$CXX -E" cpp /lib/cpp- do- ac_preproc_ok=false-for ac_cxx_preproc_warn_flag in '' yes-do- # Use a header file that comes with gcc, so configuring glibc- # with a fresh cross-compiler works.- # On the NeXT, cc -E runs the code through the compiler's parser,- # not just through cpp. "Syntax error" is here to catch this case.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <limits.h>- Syntax error-_ACEOF-if ac_fn_cxx_try_cpp "$LINENO"-then :--else case e in #(- e) # Broken: fails on valid input.-continue ;;-esac-fi-rm -f conftest.err conftest.i conftest.$ac_ext-- # OK, works on sane cases. Now check whether nonexistent headers- # can be detected and how.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <ac_nonexistent.h>-_ACEOF-if ac_fn_cxx_try_cpp "$LINENO"-then :- # Broken: success on invalid input.-continue-else case e in #(- e) # Passes both tests.-ac_preproc_ok=:-break ;;-esac-fi-rm -f conftest.err conftest.i conftest.$ac_ext--done-# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.i conftest.err conftest.$ac_ext-if $ac_preproc_ok-then :- break-fi-- done- ac_cv_prog_CXXCPP=$CXXCPP- ;;-esac-fi- CXXCPP=$ac_cv_prog_CXXCPP-else- ac_cv_prog_CXXCPP=$CXXCPP-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5-printf "%s\n" "$CXXCPP" >&6; }-ac_preproc_ok=false-for ac_cxx_preproc_warn_flag in '' yes-do- # Use a header file that comes with gcc, so configuring glibc- # with a fresh cross-compiler works.- # On the NeXT, cc -E runs the code through the compiler's parser,- # not just through cpp. "Syntax error" is here to catch this case.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <limits.h>- Syntax error-_ACEOF-if ac_fn_cxx_try_cpp "$LINENO"-then :--else case e in #(- e) # Broken: fails on valid input.-continue ;;-esac-fi-rm -f conftest.err conftest.i conftest.$ac_ext-- # OK, works on sane cases. Now check whether nonexistent headers- # can be detected and how.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <ac_nonexistent.h>-_ACEOF-if ac_fn_cxx_try_cpp "$LINENO"-then :- # Broken: success on invalid input.-continue-else case e in #(- e) # Passes both tests.-ac_preproc_ok=:-break ;;-esac-fi-rm -f conftest.err conftest.i conftest.$ac_ext--done-# Because of 'break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.i conftest.err conftest.$ac_ext-if $ac_preproc_ok-then :--else case e in #(- e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check-See 'config.log' for more details" "$LINENO" 5; } ;;-esac-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--else- _lt_caught_CXX_error=yes-fi--ac_ext=cpp-ac_cpp='$CXXCPP $CPPFLAGS'-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu--archive_cmds_need_lc_CXX=no-allow_undefined_flag_CXX=-always_export_symbols_CXX=no-archive_expsym_cmds_CXX=-compiler_needs_object_CXX=no-export_dynamic_flag_spec_CXX=-hardcode_direct_CXX=no-hardcode_direct_absolute_CXX=no-hardcode_libdir_flag_spec_CXX=-hardcode_libdir_separator_CXX=-hardcode_minus_L_CXX=no-hardcode_shlibpath_var_CXX=unsupported-hardcode_automatic_CXX=no-inherit_rpath_CXX=no-module_cmds_CXX=-module_expsym_cmds_CXX=-link_all_deplibs_CXX=unknown-old_archive_cmds_CXX=$old_archive_cmds-reload_flag_CXX=$reload_flag-reload_cmds_CXX=$reload_cmds-no_undefined_flag_CXX=-whole_archive_flag_spec_CXX=-enable_shared_with_static_runtimes_CXX=no--# Source file extension for C++ test sources.-ac_ext=cpp--# Object file extension for compiled C++ test sources.-objext=o-objext_CXX=$objext--# No sense in running all these tests if we already determined that-# the CXX compiler isn't working. Some variables (like enable_shared)-# are currently assumed to apply to all compilers on this platform,-# and will be corrupted by setting them based on a non-working compiler.-if test yes != "$_lt_caught_CXX_error"; then- # Code to be used in simple compile tests- lt_simple_compile_test_code="int some_variable = 0;"-- # Code to be used in simple link tests- lt_simple_link_test_code='int main(int, char *[]) { return(0); }'-- # ltmain only uses $CC for tagged configurations so make sure $CC is set.-------# If no C compiler was specified, use CC.-LTCC=${LTCC-"$CC"}--# If no C compiler flags were specified, use CFLAGS.-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}--# Allow CC to be a program name with arguments.-compiler=$CC--- # save warnings/boilerplate of simple test code- ac_outfile=conftest.$ac_objext-echo "$lt_simple_compile_test_code" >conftest.$ac_ext-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err-_lt_compiler_boilerplate=`cat conftest.err`-$RM conftest*-- ac_outfile=conftest.$ac_objext-echo "$lt_simple_link_test_code" >conftest.$ac_ext-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err-_lt_linker_boilerplate=`cat conftest.err`-$RM -r conftest*--- # Allow CC to be a program name with arguments.- lt_save_CC=$CC- lt_save_CFLAGS=$CFLAGS- lt_save_LD=$LD- lt_save_GCC=$GCC- GCC=$GXX- lt_save_with_gnu_ld=$with_gnu_ld- lt_save_path_LD=$lt_cv_path_LD- if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then- lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx- else- $as_unset lt_cv_prog_gnu_ld- fi- if test -n "${lt_cv_path_LDCXX+set}"; then- lt_cv_path_LD=$lt_cv_path_LDCXX- else- $as_unset lt_cv_path_LD- fi- test -z "${LDCXX+set}" || LD=$LDCXX- CC=${CXX-"c++"}- CFLAGS=$CXXFLAGS- compiler=$CC- compiler_CXX=$CC- func_cc_basename $compiler-cc_basename=$func_cc_basename_result--- if test -n "$compiler"; then- # We don't want -fno-exception when compiling C++ code, so set the- # no_builtin_flag separately- if test yes = "$GXX"; then- lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'- else- lt_prog_compiler_no_builtin_flag_CXX=- fi-- if test yes = "$GXX"; then- # Set up default GNU C++ configuration----# Check whether --with-gnu-ld was given.-if test ${with_gnu_ld+y}-then :- withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes-else case e in #(- e) with_gnu_ld=no ;;-esac-fi--ac_prog=ld-if test yes = "$GCC"; then- # Check if gcc -print-prog-name=ld gives a path.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5-printf %s "checking for ld used by $CC... " >&6; }- case $host in- *-*-mingw* | *-*-windows*)- # gcc leaves a trailing carriage return, which upsets mingw- ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;- *)- ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;- esac- case $ac_prog in- # Accept absolute paths.- [\\/]* | ?:[\\/]*)- re_direlt='/[^/][^/]*/\.\./'- # Canonicalize the pathname of ld- ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`- while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do- ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`- done- test -z "$LD" && LD=$ac_prog- ;;- "")- # If it fails, then pretend we aren't using GCC.- ac_prog=ld- ;;- *)- # If it is relative, then search for the first ld in PATH.- with_gnu_ld=unknown- ;;- esac-elif test yes = "$with_gnu_ld"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5-printf %s "checking for GNU ld... " >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5-printf %s "checking for non-GNU ld... " >&6; }-fi-if test ${lt_cv_path_LD+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test -z "$LD"; then- lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR- for ac_dir in $PATH; do- IFS=$lt_save_ifs- test -z "$ac_dir" && ac_dir=.- if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then- lt_cv_path_LD=$ac_dir/$ac_prog- # Check to see if the program is GNU ld. I'd rather use --version,- # but apparently some variants of GNU ld only accept -v.- # Break only if it was the GNU/non-GNU ld that we prefer.- case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in- *GNU* | *'with BFD'*)- test no != "$with_gnu_ld" && break- ;;- *)- test yes != "$with_gnu_ld" && break- ;;- esac- fi- done- IFS=$lt_save_ifs-else- lt_cv_path_LD=$LD # Let the user override the test with a path.-fi ;;-esac-fi--LD=$lt_cv_path_LD-if test -n "$LD"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5-printf "%s\n" "$LD" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5-printf %s "checking if the linker ($LD) is GNU ld... " >&6; }-if test ${lt_cv_prog_gnu_ld+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) # I'd rather use --version here, but apparently some GNU lds only accept -v.-case `$LD -v 2>&1 </dev/null` in-*GNU* | *'with BFD'*)- lt_cv_prog_gnu_ld=yes- ;;-*)- lt_cv_prog_gnu_ld=no- ;;-esac ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5-printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }-with_gnu_ld=$lt_cv_prog_gnu_ld-------- # Check if GNU C++ uses GNU ld as the underlying linker, since the- # archiving commands below assume that GNU ld is being used.- if test yes = "$with_gnu_ld"; then- archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'-- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'- export_dynamic_flag_spec_CXX='$wl--export-dynamic'-- # If archive_cmds runs LD, not CC, wlarc should be empty- # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to- # investigate it a little bit more. (MM)- wlarc='$wl'-- # ancient GNU ld didn't support --whole-archive et. al.- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then- whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'- else- whole_archive_flag_spec_CXX=- fi- else- with_gnu_ld=no- wlarc=-- # A generic and very simple default shared library creation- # command for GNU C++ for the case where it uses the native- # linker, instead of GNU ld. If possible, this setting should- # overridden to take advantage of the native linker features on- # the platform it is being used on.- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'- fi-- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [-]L"'-- else- GXX=no- with_gnu_ld=no- wlarc=- fi-- # PORTME: fill in a description of your system's C++ link characteristics- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5-printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }- ld_shlibs_CXX=yes- case $host_os in- aix3*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- aix[4-9]*)- if test ia64 = "$host_cpu"; then- # On IA64, the linker does run time linking by default, so we don't- # have to do anything special.- aix_use_runtimelinking=no- exp_sym_flag='-Bexport'- no_entry_flag=- else- aix_use_runtimelinking=no-- # Test if we are trying to use run time linking or normal- # AIX style linking. If -brtl is somewhere in LDFLAGS, we- # have runtime linking enabled, and use it for executables.- # For shared libraries, we enable/disable runtime linking- # depending on the kind of the shared library created -- # when "with_aix_soname,aix_use_runtimelinking" is:- # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables- # "aix,yes" lib.so shared, rtl:yes, for executables- # lib.a static archive- # "both,no" lib.so.V(shr.o) shared, rtl:yes- # lib.a(lib.so.V) shared, rtl:no, for executables- # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables- # lib.a(lib.so.V) shared, rtl:no- # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables- # lib.a static archive- case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)- for ld_flag in $LDFLAGS; do- case $ld_flag in- *-brtl*)- aix_use_runtimelinking=yes- break- ;;- esac- done- if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then- # With aix-soname=svr4, we create the lib.so.V shared archives only,- # so we don't have lib.a shared libs to link our executables.- # We have to force runtime linking in this case.- aix_use_runtimelinking=yes- LDFLAGS="$LDFLAGS -Wl,-brtl"- fi- ;;- esac-- exp_sym_flag='-bexport'- no_entry_flag='-bnoentry'- fi-- # When large executables or shared objects are built, AIX ld can- # have problems creating the table of contents. If linking a library- # or program results in "error TOC overflow" add -mminimal-toc to- # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not- # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.-- archive_cmds_CXX=''- hardcode_direct_CXX=yes- hardcode_direct_absolute_CXX=yes- hardcode_libdir_separator_CXX=':'- link_all_deplibs_CXX=yes- file_list_spec_CXX='$wl-f,'- case $with_aix_soname,$aix_use_runtimelinking in- aix,*) ;; # no import file- svr4,* | *,yes) # use import file- # The Import File defines what to hardcode.- hardcode_direct_CXX=no- hardcode_direct_absolute_CXX=no- ;;- esac-- if test yes = "$GXX"; then- case $host_os in aix4.[012]|aix4.[012].*)- # We only want to do this on AIX 4.2 and lower, the check- # below for broken collect2 doesn't work under 4.3+- collect2name=`$CC -print-prog-name=collect2`- if test -f "$collect2name" &&- strings "$collect2name" | $GREP resolve_lib_name >/dev/null- then- # We have reworked collect2- :- else- # We have old collect2- hardcode_direct_CXX=unsupported- # It fails to find uninstalled libraries when the uninstalled- # path is not listed in the libpath. Setting hardcode_minus_L- # to unsupported forces relinking- hardcode_minus_L_CXX=yes- hardcode_libdir_flag_spec_CXX='-L$libdir'- hardcode_libdir_separator_CXX=- fi- esac- shared_flag='-shared'- if test yes = "$aix_use_runtimelinking"; then- shared_flag=$shared_flag' $wl-G'- fi- # Need to ensure runtime linking is disabled for the traditional- # shared library, or the linker may eventually find shared libraries- # /with/ Import File - we do not want to mix them.- shared_flag_aix='-shared'- shared_flag_svr4='-shared $wl-G'- else- # not using gcc- if test ia64 = "$host_cpu"; then- # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release- # chokes on -Wl,-G. The following line is correct:- shared_flag='-G'- else- if test yes = "$aix_use_runtimelinking"; then- shared_flag='$wl-G'- else- shared_flag='$wl-bM:SRE'- fi- shared_flag_aix='$wl-bM:SRE'- shared_flag_svr4='$wl-G'- fi- fi-- export_dynamic_flag_spec_CXX='$wl-bexpall'- # It seems that -bexpall does not export symbols beginning with- # underscore (_), so it is better to generate a list of symbols to- # export.- always_export_symbols_CXX=yes- if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then- # Warning - without using the other runtime loading flags (-brtl),- # -berok will link without error, but may produce a broken library.- # The "-G" linker flag allows undefined symbols.- no_undefined_flag_CXX='-bernotok'- # Determine the default libpath from the value encoded in an empty- # executable.- if test set = "${lt_cv_aix_libpath+set}"; then- aix_libpath=$lt_cv_aix_libpath-else- if test ${lt_cv_aix_libpath__CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_link "$LINENO"-then :-- lt_aix_libpath_sed='- /Import File Strings/,/^$/ {- /^0/ {- s/^0 *\([^ ]*\) *$/\1/- p- }- }'- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- # Check for a 64-bit object if we didn't find anything.- if test -z "$lt_cv_aix_libpath__CXX"; then- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- if test -z "$lt_cv_aix_libpath__CXX"; then- lt_cv_aix_libpath__CXX=/usr/lib:/lib- fi- ;;-esac-fi-- aix_libpath=$lt_cv_aix_libpath__CXX-fi-- hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"-- archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag- else- if test ia64 = "$host_cpu"; then- hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib'- allow_undefined_flag_CXX="-z nodefs"- archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"- else- # Determine the default libpath from the value encoded in an- # empty executable.- if test set = "${lt_cv_aix_libpath+set}"; then- aix_libpath=$lt_cv_aix_libpath-else- if test ${lt_cv_aix_libpath__CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_link "$LINENO"-then :-- lt_aix_libpath_sed='- /Import File Strings/,/^$/ {- /^0/ {- s/^0 *\([^ ]*\) *$/\1/- p- }- }'- lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- # Check for a 64-bit object if we didn't find anything.- if test -z "$lt_cv_aix_libpath__CXX"; then- lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`- fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- if test -z "$lt_cv_aix_libpath__CXX"; then- lt_cv_aix_libpath__CXX=/usr/lib:/lib- fi- ;;-esac-fi-- aix_libpath=$lt_cv_aix_libpath__CXX-fi-- hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"- # Warning - without using the other run time loading flags,- # -berok will link without error, but may produce a broken library.- no_undefined_flag_CXX=' $wl-bernotok'- allow_undefined_flag_CXX=' $wl-berok'- if test yes = "$with_gnu_ld"; then- # We only use this code for GNU lds that support --whole-archive.- whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'- else- # Exported symbols can be pulled into shared objects from archives- whole_archive_flag_spec_CXX='$convenience'- fi- archive_cmds_need_lc_CXX=yes- archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'- # -brtl affects multiple linker settings, -berok does not and is overridden later- compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'- if test svr4 != "$with_aix_soname"; then- # This is similar to how AIX traditionally builds its shared- # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'- fi- if test aix != "$with_aix_soname"; then- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'- else- # used by -dlpreopen to get the symbols- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir'- fi- archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d'- fi- fi- ;;-- beos*)- if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then- allow_undefined_flag_CXX=unsupported- # Joseph Beckenbach <jrb3@best.com> says some releases of gcc- # support --undefined. This deserves some investigation. FIXME- archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- else- ld_shlibs_CXX=no- fi- ;;-- chorus*)- case $cc_basename in- *)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- esac- ;;-- cygwin* | mingw* | windows* | pw32* | cegcc*)- case $GXX,$cc_basename in- ,cl* | no,cl* | ,icl* | no,icl*)- # Native MSVC or ICC- # hardcode_libdir_flag_spec is actually meaningless, as there is- # no search path for DLLs.- hardcode_libdir_flag_spec_CXX=' '- allow_undefined_flag_CXX=unsupported- always_export_symbols_CXX=yes- file_list_spec_CXX='@'- # Tell ltmain to make .lib files, not .a files.- libext=lib- # Tell ltmain to make .dll files, not .so files.- shrext_cmds=.dll- # FIXME: Setting linknames here is a bad hack.- archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='- archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then- cp "$export_symbols" "$output_objdir/$soname.def";- echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";- else- $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;- fi~- $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~- linknames='- # The linker will not automatically build a static lib if we build a DLL.- # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'- enable_shared_with_static_runtimes_CXX=yes- # Don't use ranlib- old_postinstall_cmds_CXX='chmod 644 $oldlib'- postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~- lt_tool_outputfile="@TOOL_OUTPUT@"~- case $lt_outputfile in- *.exe|*.EXE) ;;- *)- lt_outputfile=$lt_outputfile.exe- lt_tool_outputfile=$lt_tool_outputfile.exe- ;;- esac~- func_to_tool_file "$lt_outputfile"~- if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then- $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;- $RM "$lt_outputfile.manifest";- fi'- ;;- *)- # g++- # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,- # as there is no search path for DLLs.- hardcode_libdir_flag_spec_CXX='-L$libdir'- export_dynamic_flag_spec_CXX='$wl--export-all-symbols'- allow_undefined_flag_CXX=unsupported- always_export_symbols_CXX=no- enable_shared_with_static_runtimes_CXX=yes- file_list_spec_CXX='@'-- if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then- archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'- # If the export-symbols file already is a .def file, use it as- # is; otherwise, prepend EXPORTS...- archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then- cp $export_symbols $output_objdir/$soname.def;- else- echo EXPORTS > $output_objdir/$soname.def;- cat $export_symbols >> $output_objdir/$soname.def;- fi~- $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'- else- ld_shlibs_CXX=no- fi- ;;- esac- ;;- darwin* | rhapsody*)--- archive_cmds_need_lc_CXX=no- hardcode_direct_CXX=no- hardcode_automatic_CXX=yes- hardcode_shlibpath_var_CXX=unsupported- if test yes = "$lt_cv_ld_force_load"; then- whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'-- else- whole_archive_flag_spec_CXX=''- fi- link_all_deplibs_CXX=yes- allow_undefined_flag_CXX=$_lt_dar_allow_undefined- case $cc_basename in- ifort*|nagfor*) _lt_dar_can_shared=yes ;;- *) _lt_dar_can_shared=$GCC ;;- esac- if test yes = "$_lt_dar_can_shared"; then- output_verbose_link_cmd=func_echo_all- archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"- module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"- archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"- module_expsym_cmds_CXX="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"- if test yes = "$_lt_dar_needs_single_mod" -a yes != "$lt_cv_apple_cc_single_mod"; then- archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"- archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"- fi-- else- ld_shlibs_CXX=no- fi-- ;;-- os2*)- hardcode_libdir_flag_spec_CXX='-L$libdir'- hardcode_minus_L_CXX=yes- allow_undefined_flag_CXX=unsupported- shrext_cmds=.dll- archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~- $ECHO EXPORTS >> $output_objdir/$libname.def~- emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~- emximp -o $lib $output_objdir/$libname.def'- archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~- $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~- $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~- $ECHO EXPORTS >> $output_objdir/$libname.def~- prefix_cmds="$SED"~- if test EXPORTS = "`$SED 1q $export_symbols`"; then- prefix_cmds="$prefix_cmds -e 1d";- fi~- prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~- cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~- $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~- emximp -o $lib $output_objdir/$libname.def'- old_archive_from_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'- enable_shared_with_static_runtimes_CXX=yes- file_list_spec_CXX='@'- ;;-- dgux*)- case $cc_basename in- ec++*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- ghcx*)- # Green Hills C++ Compiler- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- *)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- esac- ;;-- freebsd2.*)- # C++ shared libraries reported to be fairly broken before- # switch to ELF- ld_shlibs_CXX=no- ;;-- freebsd-elf*)- archive_cmds_need_lc_CXX=no- ;;-- freebsd* | dragonfly* | midnightbsd*)- # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF- # conventions- ld_shlibs_CXX=yes- ;;-- haiku*)- archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- link_all_deplibs_CXX=no- ;;-- hpux9*)- hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'- hardcode_libdir_separator_CXX=:- export_dynamic_flag_spec_CXX='$wl-E'- hardcode_direct_CXX=yes- hardcode_minus_L_CXX=yes # Not in the search PATH,- # but as the default- # location of the library.-- case $cc_basename in- CC*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- aCC*)- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- #- # There doesn't appear to be a way to prevent this compiler from- # explicitly linking system object files so we need to strip them- # from the output so that they don't get included in the library- # dependencies.- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "[-]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'- ;;- *)- if test yes = "$GXX"; then- archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'- else- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- fi- ;;- esac- ;;-- hpux10*|hpux11*)- if test no = "$with_gnu_ld"; then- hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'- hardcode_libdir_separator_CXX=:-- case $host_cpu in- hppa*64*|ia64*)- ;;- *)- export_dynamic_flag_spec_CXX='$wl-E'- ;;- esac- fi- case $host_cpu in- hppa*64*|ia64*)- hardcode_direct_CXX=no- hardcode_shlibpath_var_CXX=no- ;;- *)- hardcode_direct_CXX=yes- hardcode_direct_absolute_CXX=yes- hardcode_minus_L_CXX=yes # Not in the search PATH,- # but as the default- # location of the library.- ;;- esac-- case $cc_basename in- CC*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- aCC*)- case $host_cpu in- hppa*64*)- archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- ;;- ia64*)- archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- ;;- *)- archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- ;;- esac- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- #- # There doesn't appear to be a way to prevent this compiler from- # explicitly linking system object files so we need to strip them- # from the output so that they don't get included in the library- # dependencies.- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " [-]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'- ;;- *)- if test yes = "$GXX"; then- if test no = "$with_gnu_ld"; then- case $host_cpu in- hppa*64*)- archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- ;;- ia64*)- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- ;;- *)- archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- ;;- esac- fi- else- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- fi- ;;- esac- ;;-- interix[3-9]*)- hardcode_direct_CXX=no- hardcode_shlibpath_var_CXX=no- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'- export_dynamic_flag_spec_CXX='$wl-E'- # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.- # Instead, shared libraries are loaded at an image base (0x10000000 by- # default) and relocated if they conflict, which is a slow very memory- # consuming and fragmenting process. To avoid this, we pick a random,- # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link- # time. Moving up from 0x10000000 also allows more sbrk(2) space.- archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'- archive_expsym_cmds_CXX='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'- ;;- irix5* | irix6*)- case $cc_basename in- CC*)- # SGI C++- archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'-- # Archives containing C++ object files must be created using- # "CC -ar", where "CC" is the IRIX C++ compiler. This is- # necessary to make sure instantiated templates are included- # in the archive.- old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'- ;;- *)- if test yes = "$GXX"; then- if test no = "$with_gnu_ld"; then- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'- else- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'- fi- fi- link_all_deplibs_CXX=yes- ;;- esac- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'- hardcode_libdir_separator_CXX=:- inherit_rpath_CXX=yes- ;;-- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- case $cc_basename in- KCC*)- # Kuck and Associates, Inc. (KAI) C++ Compiler-- # KCC will only create a shared library if the output file- # ends with ".so" (or ".sl" for HP-UX), so rename the library- # to its proper name (with version) after linking.- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'- archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- #- # There doesn't appear to be a way to prevent this compiler from- # explicitly linking system object files so we need to strip them- # from the output so that they don't get included in the library- # dependencies.- output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'-- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'- export_dynamic_flag_spec_CXX='$wl--export-dynamic'-- # Archives containing C++ object files must be created using- # "CC -Bstatic", where "CC" is the KAI C++ compiler.- old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'- ;;- icpc* | ecpc* )- # Intel C++- with_gnu_ld=yes- # version 8.0 and above of icpc choke on multiply defined symbols- # if we add $predep_objects and $postdep_objects, however 7.1 and- # earlier do not add the objects themselves.- case `$CC -V 2>&1` in- *"Version 7."*)- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- ;;- *) # Version 8.0 or newer- tmp_idyn=- case $host_cpu in- ia64*) tmp_idyn=' -i_dynamic';;- esac- archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- ;;- esac- archive_cmds_need_lc_CXX=no- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'- export_dynamic_flag_spec_CXX='$wl--export-dynamic'- whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'- ;;- pgCC* | pgcpp*)- # Portland Group C++ compiler- case `$CC -V` in- *pgCC\ [1-5].* | *pgcpp\ [1-5].*)- prelink_cmds_CXX='tpldir=Template.dir~- rm -rf $tpldir~- $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~- compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'- old_archive_cmds_CXX='tpldir=Template.dir~- rm -rf $tpldir~- $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~- $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~- $RANLIB $oldlib'- archive_cmds_CXX='tpldir=Template.dir~- rm -rf $tpldir~- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds_CXX='tpldir=Template.dir~- rm -rf $tpldir~- $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~- $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- ;;- *) # Version 6 and above use weak symbols- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- ;;- esac-- hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir'- export_dynamic_flag_spec_CXX='$wl--export-dynamic'- whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'- ;;- cxx*)- # Compaq C++- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'-- runpath_var=LD_RUN_PATH- hardcode_libdir_flag_spec_CXX='-rpath $libdir'- hardcode_libdir_separator_CXX=:-- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- #- # There doesn't appear to be a way to prevent this compiler from- # explicitly linking system object files so we need to strip them- # from the output so that they don't get included in the library- # dependencies.- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'- ;;- xl* | mpixl* | bgxl*)- # IBM XL 8.0 on PPC, with GNU ld- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'- export_dynamic_flag_spec_CXX='$wl--export-dynamic'- archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- if test yes = "$supports_anon_versioning"; then- archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~- cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~- echo "local: *; };" >> $output_objdir/$libname.ver~- $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'- fi- ;;- *)- case `$CC -V 2>&1 | $SED 5q` in- *Sun\ C*)- # Sun C++ 5.9- no_undefined_flag_CXX=' -zdefs'- archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'- hardcode_libdir_flag_spec_CXX='-R$libdir'- whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'- compiler_needs_object_CXX=yes-- # Not sure whether something based on- # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1- # would be better.- output_verbose_link_cmd='func_echo_all'-- # Archives containing C++ object files must be created using- # "CC -xar", where "CC" is the Sun C++ compiler. This is- # necessary to make sure instantiated templates are included- # in the archive.- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'- ;;- esac- ;;- esac- ;;-- lynxos*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;-- m88k*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;-- mvs*)- case $cc_basename in- cxx*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- *)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- esac- ;;-- *-mlibc)- ld_shlibs_CXX=yes- ;;-- netbsd*)- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then- archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'- wlarc=- hardcode_libdir_flag_spec_CXX='-R$libdir'- hardcode_direct_CXX=yes- hardcode_shlibpath_var_CXX=no- fi- # Workaround some broken pre-1.5 toolchains- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'- ;;-- *nto* | *qnx*)- ld_shlibs_CXX=yes- ;;-- openbsd*)- if test -f /usr/libexec/ld.so; then- hardcode_direct_CXX=yes- hardcode_shlibpath_var_CXX=no- hardcode_direct_absolute_CXX=yes- archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'- if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'- export_dynamic_flag_spec_CXX='$wl-E'- whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'- fi- output_verbose_link_cmd=func_echo_all- else- ld_shlibs_CXX=no- fi- ;;-- osf3* | osf4* | osf5*)- case $cc_basename in- KCC*)- # Kuck and Associates, Inc. (KAI) C++ Compiler-- # KCC will only create a shared library if the output file- # ends with ".so" (or ".sl" for HP-UX), so rename the library- # to its proper name (with version) after linking.- archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'-- hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'- hardcode_libdir_separator_CXX=:-- # Archives containing C++ object files must be created using- # the KAI C++ compiler.- case $host in- osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;- *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;- esac- ;;- RCC*)- # Rational C++ 2.4.1- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- cxx*)- case $host in- osf3*)- allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'- archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'- ;;- *)- allow_undefined_flag_CXX=' -expect_unresolved \*'- archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'- archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~- echo "-hidden">> $lib.exp~- $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~- $RM $lib.exp'- hardcode_libdir_flag_spec_CXX='-rpath $libdir'- ;;- esac-- hardcode_libdir_separator_CXX=:-- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- #- # There doesn't appear to be a way to prevent this compiler from- # explicitly linking system object files so we need to strip them- # from the output so that they don't get included in the library- # dependencies.- output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'- ;;- *)- if test yes,no = "$GXX,$with_gnu_ld"; then- allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'- case $host in- osf3*)- archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'- ;;- *)- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'- ;;- esac-- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'- hardcode_libdir_separator_CXX=:-- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [-]L"'-- else- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- fi- ;;- esac- ;;-- psos*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;-- serenity*)- ;;-- sunos4*)- case $cc_basename in- CC*)- # Sun C++ 4.x- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- lcc*)- # Lucid- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- *)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- esac- ;;-- solaris*)- case $cc_basename in- CC* | sunCC*)- # Sun C++ 4.2, 5.x and Centerline C++- archive_cmds_need_lc_CXX=yes- no_undefined_flag_CXX=' -zdefs'- archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~- $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'-- hardcode_libdir_flag_spec_CXX='-R$libdir'- hardcode_shlibpath_var_CXX=no- case $host_os in- solaris2.[0-5] | solaris2.[0-5].*) ;;- *)- # The compiler driver will combine and reorder linker options,- # but understands '-z linker_flag'.- # Supported since Solaris 2.6 (maybe 2.5.1?)- whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'- ;;- esac- link_all_deplibs_CXX=yes-- output_verbose_link_cmd='func_echo_all'-- # Archives containing C++ object files must be created using- # "CC -xar", where "CC" is the Sun C++ compiler. This is- # necessary to make sure instantiated templates are included- # in the archive.- old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'- ;;- gcx*)- # Green Hills C++ Compiler- archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'-- # The C++ compiler must be used to create the archive.- old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'- ;;- *)- # GNU C++ compiler with Solaris linker- if test yes,no = "$GXX,$with_gnu_ld"; then- no_undefined_flag_CXX=' $wl-z ${wl}defs'- if $CC --version | $GREP -v '^2\.7' > /dev/null; then- archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~- $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'-- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [-]L"'- else- # g++ 2.7 appears to require '-G' NOT '-shared' on this- # platform.- archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'- archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~- $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'-- # Commands to make compiler produce verbose output that lists- # what "hidden" libraries, object files and flags are used when- # linking a shared library.- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [-]L"'- fi-- hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'- case $host_os in- solaris2.[0-5] | solaris2.[0-5].*) ;;- *)- whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'- ;;- esac- fi- ;;- esac- ;;-- sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)- no_undefined_flag_CXX='$wl-z,text'- archive_cmds_need_lc_CXX=no- hardcode_shlibpath_var_CXX=no- runpath_var='LD_RUN_PATH'-- case $cc_basename in- CC*)- archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- ;;- *)- archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- ;;- esac- ;;-- sysv5* | sco3.2v5* | sco5v6*)- # Note: We CANNOT use -z defs as we might desire, because we do not- # link with -lc, and that would cause any symbols used from libc to- # always be unresolved, which means just about no library would- # ever link correctly. If we're not using GNU ld we use -z text- # though, which does catch some bad symbols but isn't as heavy-handed- # as -z defs.- no_undefined_flag_CXX='$wl-z,text'- allow_undefined_flag_CXX='$wl-z,nodefs'- archive_cmds_need_lc_CXX=no- hardcode_shlibpath_var_CXX=no- hardcode_libdir_flag_spec_CXX='$wl-R,$libdir'- hardcode_libdir_separator_CXX=':'- link_all_deplibs_CXX=yes- export_dynamic_flag_spec_CXX='$wl-Bexport'- runpath_var='LD_RUN_PATH'-- case $cc_basename in- CC*)- archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~- '"$old_archive_cmds_CXX"- reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~- '"$reload_cmds_CXX"- ;;- *)- archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'- ;;- esac- ;;-- tandem*)- case $cc_basename in- NCC*)- # NonStop-UX NCC 3.20- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- *)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- esac- ;;-- vxworks*)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;-- *)- # FIXME: insert proper C++ library support- ld_shlibs_CXX=no- ;;- esac-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5-printf "%s\n" "$ld_shlibs_CXX" >&6; }- test no = "$ld_shlibs_CXX" && can_build_shared=no-- GCC_CXX=$GXX- LD_CXX=$LD-- ## CAVEAT EMPTOR:- ## There is no encapsulation within the following macros, do not change- ## the running order or otherwise move them around unless you know exactly- ## what you are doing...- # Dependencies to place before and after the object being linked:-predep_objects_CXX=-postdep_objects_CXX=-predeps_CXX=-postdeps_CXX=-compiler_lib_search_path_CXX=--cat > conftest.$ac_ext <<_LT_EOF-class Foo-{-public:- Foo (void) { a = 0; }-private:- int a;-};-_LT_EOF---_lt_libdeps_save_CFLAGS=$CFLAGS-case "$CC $CFLAGS " in #(-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;-esac--if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- # Parse the compiler output and extract the necessary- # objects, libraries and library flags.-- # Sentinel used to keep track of whether or not we are before- # the conftest object file.- pre_test_object_deps_done=no-- for p in `eval "$output_verbose_link_cmd"`; do- case $prev$p in-- -L* | -R* | -l*)- # Some compilers place space between "-{L,R,l}" and the path.- # Remove the space.- if test x-L = x"$p" ||- test x-R = x"$p" ||- test x-l = x"$p"; then- prev=$p- continue- fi-- # Expand the sysroot to ease extracting the directories later.- if test -z "$prev"; then- case $p in- -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;- -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;- -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;- esac- fi- case $p in- =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;- esac- if test no = "$pre_test_object_deps_done"; then- case $prev in- -L | -R)- # Internal compiler library paths should come after those- # provided the user. The postdeps already come after the- # user supplied libs so there is no need to process them.- if test -z "$compiler_lib_search_path_CXX"; then- compiler_lib_search_path_CXX=$prev$p- else- compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p"- fi- ;;- # The "-l" case would never come before the object being- # linked, so don't bother handling this case.- esac- else- if test -z "$postdeps_CXX"; then- postdeps_CXX=$prev$p- else- postdeps_CXX="${postdeps_CXX} $prev$p"- fi- fi- prev=- ;;-- *.lto.$objext) ;; # Ignore GCC LTO objects- *.$objext)- # This assumes that the test object file only shows up- # once in the compiler output.- if test "$p" = "conftest.$objext"; then- pre_test_object_deps_done=yes- continue- fi-- if test no = "$pre_test_object_deps_done"; then- if test -z "$predep_objects_CXX"; then- predep_objects_CXX=$p- else- predep_objects_CXX="$predep_objects_CXX $p"- fi- else- if test -z "$postdep_objects_CXX"; then- postdep_objects_CXX=$p- else- postdep_objects_CXX="$postdep_objects_CXX $p"- fi- fi- ;;-- *) ;; # Ignore the rest.-- esac- done-- # Clean up.- rm -f a.out a.exe-else- echo "libtool.m4: error: problem compiling CXX test program"-fi--$RM -f confest.$objext-CFLAGS=$_lt_libdeps_save_CFLAGS--# PORTME: override above test on systems where it is broken-case $host_os in-interix[3-9]*)- # Interix 3.5 installs completely hosed .la files for C++, so rather than- # hack all around it, let's just trust "g++" to DTRT.- predep_objects_CXX=- postdep_objects_CXX=- postdeps_CXX=- ;;-esac---case " $postdeps_CXX " in-*" -lc "*) archive_cmds_need_lc_CXX=no ;;-esac- compiler_lib_search_dirs_CXX=-if test -n "${compiler_lib_search_path_CXX}"; then- compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'`-fi-------------------------------- lt_prog_compiler_wl_CXX=-lt_prog_compiler_pic_CXX=-lt_prog_compiler_static_CXX=--- # C++ specific cases for pic, static, wl, etc.- if test yes = "$GXX"; then- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='-static'-- case $host_os in- aix*)- # All AIX code is PIC.- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static_CXX='-Bstatic'- fi- lt_prog_compiler_pic_CXX='-fPIC'- ;;-- amigaos*)- case $host_cpu in- powerpc)- # see comment about AmigaOS4 .so support- lt_prog_compiler_pic_CXX='-fPIC'- ;;- m68k)- # FIXME: we need at least 68020 code to build shared libraries, but- # adding the '-m68020' flag to GCC prevents building anything better,- # like '-m68040'.- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'- ;;- esac- ;;-- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)- # PIC is the default for these OSes.- ;;- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- # Although the cygwin gcc ignores -fPIC, still need this for old-style- # (--disable-auto-import) libraries- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'- case $host_os in- os2*)- lt_prog_compiler_static_CXX='$wl-static'- ;;- esac- ;;- darwin* | rhapsody*)- # PIC is the default on this platform- # Common symbols not allowed in MH_DYLIB files- lt_prog_compiler_pic_CXX='-fno-common'- ;;- *djgpp*)- # DJGPP does not support shared libraries at all- lt_prog_compiler_pic_CXX=- ;;- haiku*)- # PIC is the default for Haiku.- # The "-static" flag exists, but is broken.- lt_prog_compiler_static_CXX=- ;;- interix[3-9]*)- # Interix 3.x gcc -fpic/-fPIC options generate broken code.- # Instead, we relocate shared libraries at runtime.- ;;- sysv4*MP*)- if test -d /usr/nec; then- lt_prog_compiler_pic_CXX=-Kconform_pic- fi- ;;- hpux*)- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag- # sets the default TLS model and affects inlining.- case $host_cpu in- hppa*64*)- ;;- *)- lt_prog_compiler_pic_CXX='-fPIC'- ;;- esac- ;;- *qnx* | *nto*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic_CXX='-fPIC -shared'- ;;- *)- lt_prog_compiler_pic_CXX='-fPIC'- ;;- esac- else- case $host_os in- aix[4-9]*)- # All AIX code is PIC.- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static_CXX='-Bstatic'- else- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'- fi- ;;- chorus*)- case $cc_basename in- cxch68*)- # Green Hills C++ Compiler- # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"- ;;- esac- ;;- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'- ;;- dgux*)- case $cc_basename in- ec++*)- lt_prog_compiler_pic_CXX='-KPIC'- ;;- ghcx*)- # Green Hills C++ Compiler- lt_prog_compiler_pic_CXX='-pic'- ;;- *)- ;;- esac- ;;- freebsd* | dragonfly* | midnightbsd*)- # FreeBSD uses GNU C++- ;;- hpux9* | hpux10* | hpux11*)- case $cc_basename in- CC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='$wl-a ${wl}archive'- if test ia64 != "$host_cpu"; then- lt_prog_compiler_pic_CXX='+Z'- fi- ;;- aCC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='$wl-a ${wl}archive'- case $host_cpu in- hppa*64*|ia64*)- # +Z the default- ;;- *)- lt_prog_compiler_pic_CXX='+Z'- ;;- esac- ;;- *)- ;;- esac- ;;- interix*)- # This is c89, which is MS Visual C++ (no shared libs)- # Anyone wants to do a port?- ;;- irix5* | irix6* | nonstopux*)- case $cc_basename in- CC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='-non_shared'- # CC pic flag -KPIC is the default.- ;;- *)- ;;- esac- ;;- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- case $cc_basename in- KCC*)- # KAI C++ Compiler- lt_prog_compiler_wl_CXX='--backend -Wl,'- lt_prog_compiler_pic_CXX='-fPIC'- ;;- ecpc* )- # old Intel C++ for x86_64, which still supported -KPIC.- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-static'- ;;- icpc* )- # Intel C++, used to be incompatible with GCC.- # ICC 10 doesn't accept -KPIC any more.- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-fPIC'- lt_prog_compiler_static_CXX='-static'- ;;- pgCC* | pgcpp*)- # Portland Group C++ compiler- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-fpic'- lt_prog_compiler_static_CXX='-Bstatic'- ;;- cxx*)- # Compaq C++- # Make sure the PIC flag is empty. It appears that all Alpha- # Linux and Compaq Tru64 Unix objects are PIC.- lt_prog_compiler_pic_CXX=- lt_prog_compiler_static_CXX='-non_shared'- ;;- xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)- # IBM XL 8.0, 9.0 on PPC and BlueGene- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-qpic'- lt_prog_compiler_static_CXX='-qstaticlink'- ;;- *)- case `$CC -V 2>&1 | $SED 5q` in- *Sun\ C*)- # Sun C++ 5.9- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-Bstatic'- lt_prog_compiler_wl_CXX='-Qoption ld '- ;;- esac- ;;- esac- ;;- lynxos*)- ;;- m88k*)- ;;- mvs*)- case $cc_basename in- cxx*)- lt_prog_compiler_pic_CXX='-W c,exportall'- ;;- *)- ;;- esac- ;;- netbsd* | netbsdelf*-gnu)- ;;- *-mlibc)- ;;- *qnx* | *nto*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic_CXX='-fPIC -shared'- ;;- osf3* | osf4* | osf5*)- case $cc_basename in- KCC*)- lt_prog_compiler_wl_CXX='--backend -Wl,'- ;;- RCC*)- # Rational C++ 2.4.1- lt_prog_compiler_pic_CXX='-pic'- ;;- cxx*)- # Digital/Compaq C++- lt_prog_compiler_wl_CXX='-Wl,'- # Make sure the PIC flag is empty. It appears that all Alpha- # Linux and Compaq Tru64 Unix objects are PIC.- lt_prog_compiler_pic_CXX=- lt_prog_compiler_static_CXX='-non_shared'- ;;- *)- ;;- esac- ;;- psos*)- ;;- serenity*)- ;;- solaris*)- case $cc_basename in- CC* | sunCC*)- # Sun C++ 4.2, 5.x and Centerline C++- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-Bstatic'- lt_prog_compiler_wl_CXX='-Qoption ld '- ;;- gcx*)- # Green Hills C++ Compiler- lt_prog_compiler_pic_CXX='-PIC'- ;;- *)- ;;- esac- ;;- sunos4*)- case $cc_basename in- CC*)- # Sun C++ 4.x- lt_prog_compiler_pic_CXX='-pic'- lt_prog_compiler_static_CXX='-Bstatic'- ;;- lcc*)- # Lucid- lt_prog_compiler_pic_CXX='-pic'- ;;- *)- ;;- esac- ;;- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)- case $cc_basename in- CC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-Bstatic'- ;;- esac- ;;- tandem*)- case $cc_basename in- NCC*)- # NonStop-UX NCC 3.20- lt_prog_compiler_pic_CXX='-KPIC'- ;;- *)- ;;- esac- ;;- vxworks*)- ;;- *)- lt_prog_compiler_can_build_shared_CXX=no- ;;- esac- fi--case $host_os in- # For platforms that do not support PIC, -DPIC is meaningless:- *djgpp*)- lt_prog_compiler_pic_CXX=- ;;- *)- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"- ;;-esac--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5-printf %s "checking for $compiler option to produce PIC... " >&6; }-if test ${lt_cv_prog_compiler_pic_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic_CXX" >&6; }-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX--#-# Check to make sure the PIC flag actually works.-#-if test -n "$lt_prog_compiler_pic_CXX"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }-if test ${lt_cv_prog_compiler_pic_works_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic_works_CXX=no- ac_outfile=conftest.$ac_objext- echo "$lt_simple_compile_test_code" > conftest.$ac_ext- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- # The option is referenced via a variable to avoid confusing sed.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>conftest.err)- ac_status=$?- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s "$ac_outfile"; then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings other than the usual output.- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_pic_works_CXX=yes- fi- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic_works_CXX" >&6; }--if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then- case $lt_prog_compiler_pic_CXX in- "" | " "*) ;;- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;- esac-else- lt_prog_compiler_pic_CXX=- lt_prog_compiler_can_build_shared_CXX=no-fi--fi------#-# Check to make sure the static flag actually works.-#-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }-if test ${lt_cv_prog_compiler_static_works_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_static_works_CXX=no- save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"- echo "$lt_simple_link_test_code" > conftest.$ac_ext- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then- # The linker can only warn and ignore the option if not recognized- # So say no if there are warnings- if test -s conftest.err; then- # Append any errors to the config.log.- cat conftest.err 1>&5- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_static_works_CXX=yes- fi- else- lt_cv_prog_compiler_static_works_CXX=yes- fi- fi- $RM -r conftest*- LDFLAGS=$save_LDFLAGS- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_static_works_CXX" >&6; }--if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then- :-else- lt_prog_compiler_static_CXX=-fi----- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }-if test ${lt_cv_prog_compiler_c_o_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_c_o_CXX=no- $RM -r conftest 2>/dev/null- mkdir conftest- cd conftest- mkdir out- echo "$lt_simple_compile_test_code" > conftest.$ac_ext-- lt_compiler_flag="-o out/conftest2.$ac_objext"- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>out/conftest.err)- ac_status=$?- cat out/conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s out/conftest2.$ac_objext- then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then- lt_cv_prog_compiler_c_o_CXX=yes- fi- fi- chmod u+w . 2>&5- $RM conftest*- # SGI C++ compiler will create directory out/ii_files/ for- # template instantiation- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files- $RM out/* && rmdir out- cd ..- $RM -r conftest- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; }---- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5-printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }-if test ${lt_cv_prog_compiler_c_o_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_c_o_CXX=no- $RM -r conftest 2>/dev/null- mkdir conftest- cd conftest- mkdir out- echo "$lt_simple_compile_test_code" > conftest.$ac_ext-- lt_compiler_flag="-o out/conftest2.$ac_objext"- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>out/conftest.err)- ac_status=$?- cat out/conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s out/conftest2.$ac_objext- then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp- $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2- if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then- lt_cv_prog_compiler_c_o_CXX=yes- fi- fi- chmod u+w . 2>&5- $RM conftest*- # SGI C++ compiler will create directory out/ii_files/ for- # template instantiation- test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files- $RM out/* && rmdir out- cd ..- $RM -r conftest- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; }-----hard_links=nottested-if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then- # do not overwrite the value of need_locks provided by the user- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5-printf %s "checking if we can lock with hard links... " >&6; }- hard_links=yes- $RM conftest*- ln conftest.a conftest.b 2>/dev/null && hard_links=no- touch conftest.a- ln conftest.a conftest.b 2>&5 || hard_links=no- ln conftest.a conftest.b 2>/dev/null && hard_links=no- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5-printf "%s\n" "$hard_links" >&6; }- if test no = "$hard_links"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5-printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}- need_locks=warn- fi-else- need_locks=no-fi---- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5-printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }-- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'- exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'- case $host_os in- aix[4-9]*)- # If we're using GNU nm, then we don't want the "-C" option.- # -C means demangle to GNU nm, but means don't demangle to AIX nm.- # Without the "-l" option, or with the "-B" option, AIX nm treats- # weak defined symbols like other global defined symbols, whereas- # GNU nm marks them as "W".- # While the 'weak' keyword is ignored in the Export File, we need- # it in the Import File for the 'aix-soname' feature, so we have- # to replace the "-B" option with "-P" for AIX nm.- if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then- export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'- else- export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'- fi- ;;- pw32*)- export_symbols_cmds_CXX=$ltdll_cmds- ;;- cygwin* | mingw* | windows* | cegcc*)- case $cc_basename in- cl* | icl*)- exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'- ;;- *)- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'- exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'- ;;- esac- ;;- *)- export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'- ;;- esac--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5-printf "%s\n" "$ld_shlibs_CXX" >&6; }-test no = "$ld_shlibs_CXX" && can_build_shared=no--with_gnu_ld_CXX=$with_gnu_ld-------#-# Do we need to explicitly link libc?-#-case "x$archive_cmds_need_lc_CXX" in-x|xyes)- # Assume -lc should be added- archive_cmds_need_lc_CXX=yes-- if test yes,yes = "$GCC,$enable_shared"; then- case $archive_cmds_CXX in- *'~'*)- # FIXME: we may have to deal with multi-command sequences.- ;;- '$CC '*)- # Test whether the compiler implicitly links with -lc since on some- # systems, -lgcc has to come before -lc. If gcc already passes -lc- # to ld, don't add -lc before -lgcc.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5-printf %s "checking whether -lc should be explicitly linked in... " >&6; }-if test ${lt_cv_archive_cmds_need_lc_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) $RM conftest*- echo "$lt_simple_compile_test_code" > conftest.$ac_ext-- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } 2>conftest.err; then- soname=conftest- lib=conftest- libobjs=conftest.$ac_objext- deplibs=- wl=$lt_prog_compiler_wl_CXX- pic_flag=$lt_prog_compiler_pic_CXX- compiler_flags=-v- linker_flags=-v- verstring=- output_objdir=.- libname=conftest- lt_save_allow_undefined_flag=$allow_undefined_flag_CXX- allow_undefined_flag_CXX=- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5- (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- then- lt_cv_archive_cmds_need_lc_CXX=no- else- lt_cv_archive_cmds_need_lc_CXX=yes- fi- allow_undefined_flag_CXX=$lt_save_allow_undefined_flag- else- cat conftest.err 1>&5- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5-printf "%s\n" "$lt_cv_archive_cmds_need_lc_CXX" >&6; }- archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX- ;;- esac- fi- ;;-esac--------------------------------------------------------------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5-printf %s "checking dynamic linker characteristics... " >&6; }--library_names_spec=-libname_spec='lib$name'-soname_spec=-shrext_cmds=.so-postinstall_cmds=-postuninstall_cmds=-finish_cmds=-finish_eval=-shlibpath_var=-shlibpath_overrides_runpath=unknown-version_type=none-dynamic_linker="$host_os ld.so"-sys_lib_dlsearch_path_spec="/lib /usr/lib"-need_lib_prefix=unknown-hardcode_into_libs=no--# when you set need_version to no, make sure it does not cause -set_version-# flags to be left without arguments-need_version=unknown----case $host_os in-aix3*)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname.a'- shlibpath_var=LIBPATH-- # AIX 3 has no versioning support, so we append a major version to the name.- soname_spec='$libname$release$shared_ext$major'- ;;--aix[4-9]*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- hardcode_into_libs=yes- if test ia64 = "$host_cpu"; then- # AIX 5 supports IA64- library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- else- # With GCC up to 2.95.x, collect2 would create an import file- # for dependence libraries. The import file would start with- # the line '#! .'. This would cause the generated library to- # depend on '.', always an invalid library. This was fixed in- # development snapshots of GCC prior to 3.0.- case $host_os in- aix4 | aix4.[01] | aix4.[01].*)- if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'- echo ' yes '- echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then- :- else- can_build_shared=no- fi- ;;- esac- # Using Import Files as archive members, it is possible to support- # filename-based versioning of shared library archives on AIX. While- # this would work for both with and without runtime linking, it will- # prevent static linking of such archives. So we do filename-based- # shared library versioning with .so extension only, which is used- # when both runtime linking and shared linking is enabled.- # Unfortunately, runtime linking may impact performance, so we do- # not want this to be the default eventually. Also, we use the- # versioned .so libs for executables only if there is the -brtl- # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only.- # To allow for filename-based versioning support, we need to create- # libNAME.so.V as an archive file, containing:- # *) an Import File, referring to the versioned filename of the- # archive as well as the shared archive member, telling the- # bitwidth (32 or 64) of that shared object, and providing the- # list of exported symbols of that shared object, eventually- # decorated with the 'weak' keyword- # *) the shared object with the F_LOADONLY flag set, to really avoid- # it being seen by the linker.- # At run time we better use the real file rather than another symlink,- # but for link time we create the symlink libNAME.so -> libNAME.so.V-- case $with_aix_soname,$aix_use_runtimelinking in- # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct- # soname into executable. Probably we can add versioning support to- # collect2, so additional links can be useful in future.- aix,yes) # traditional libtool- dynamic_linker='AIX unversionable lib.so'- # If using run time linking (on AIX 4.2 or later) use lib<name>.so- # instead of lib<name>.a to let people know that these are not- # typical AIX shared libraries.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- ;;- aix,no) # traditional AIX only- dynamic_linker='AIX lib.a(lib.so.V)'- # We preserve .a as extension for shared libraries through AIX4.2- # and later when we are not doing run time linking.- library_names_spec='$libname$release.a $libname.a'- soname_spec='$libname$release$shared_ext$major'- ;;- svr4,*) # full svr4 only- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'- # We do not specify a path in Import Files, so LIBPATH fires.- shlibpath_overrides_runpath=yes- ;;- *,yes) # both, prefer svr4- dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"- library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'- # unpreferred sharedlib libNAME.a needs extra handling- postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'- postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'- # We do not specify a path in Import Files, so LIBPATH fires.- shlibpath_overrides_runpath=yes- ;;- *,no) # both, prefer aix- dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"- library_names_spec='$libname$release.a $libname.a'- soname_spec='$libname$release$shared_ext$major'- # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling- postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'- postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'- ;;- esac- shlibpath_var=LIBPATH- fi- ;;--amigaos*)- case $host_cpu in- powerpc)- # Since July 2007 AmigaOS4 officially supports .so libraries.- # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- ;;- m68k)- library_names_spec='$libname.ixlibrary $libname.a'- # Create ${libname}_ixlibrary.a entries in /sys/libs.- finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'- ;;- esac- ;;--beos*)- library_names_spec='$libname$shared_ext'- dynamic_linker="$host_os ld.so"- shlibpath_var=LIBRARY_PATH- ;;--bsdi[45]*)- version_type=linux # correct to gnu/linux during the next big refactor- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'- shlibpath_var=LD_LIBRARY_PATH- sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"- sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"- # the default ld.so.conf also contains /usr/contrib/lib and- # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow- # libtool to hard-code these into programs- ;;--cygwin* | mingw* | windows* | pw32* | cegcc*)- version_type=windows- shrext_cmds=.dll- need_version=no- need_lib_prefix=no-- case $GCC,$cc_basename in- yes,*)- # gcc- library_names_spec='$libname.dll.a'- # DLL is installed to $(libdir)/../bin by postinstall_cmds- # If user builds GCC with multilib enabled,- # it should just install on $(libdir)- # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones.- if test xyes = x"$multilib"; then- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- $install_prog $dir/$dlname $destdir/$dlname~- chmod a+x $destdir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib $destdir/$dlname'\'' || exit \$?;- fi'- else- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname~- chmod a+x \$dldir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;- fi'- fi- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~- dlpath=$dir/\$dldll~- $RM \$dlpath'- shlibpath_overrides_runpath=yes-- case $host_os in- cygwin*)- # Cygwin DLLs use 'cyg' prefix rather than 'lib'- soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'-- ;;- mingw* | windows* | cegcc*)- # MinGW DLLs use traditional 'lib' prefix- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'- ;;- pw32*)- # pw32 DLLs use 'pw' prefix rather than 'lib'- library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'- ;;- esac- dynamic_linker='Win32 ld.exe'- ;;-- *,cl* | *,icl*)- # Native MSVC or ICC- libname_spec='$name'- soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'- library_names_spec='$libname.dll.lib'-- case $build_os in- mingw* | windows*)- sys_lib_search_path_spec=- lt_save_ifs=$IFS- IFS=';'- for lt_path in $LIB- do- IFS=$lt_save_ifs- # Let DOS variable expansion print the short 8.3 style file name.- lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`- sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"- done- IFS=$lt_save_ifs- # Convert to MSYS style.- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`- ;;- cygwin*)- # Convert to unix form, then to dos form, then back to unix form- # but this time dos style (no spaces!) so that the unix form looks- # like /cygdrive/c/PROGRA~1:/cygdr...- sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`- sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`- sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`- ;;- *)- sys_lib_search_path_spec=$LIB- if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then- # It is most probably a Windows format PATH.- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`- else- sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`- fi- # FIXME: find the short name or the path components, as spaces are- # common. (e.g. "Program Files" -> "PROGRA~1")- ;;- esac-- # DLL is installed to $(libdir)/../bin by postinstall_cmds- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname'- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~- dlpath=$dir/\$dldll~- $RM \$dlpath'- shlibpath_overrides_runpath=yes- dynamic_linker='Win32 link.exe'- ;;-- *)- # Assume MSVC and ICC wrapper- library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'- dynamic_linker='Win32 ld.exe'- ;;- esac- # FIXME: first we should search . and the directory the executable is in- shlibpath_var=PATH- ;;--darwin* | rhapsody*)- dynamic_linker="$host_os dyld"- version_type=darwin- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'- soname_spec='$libname$release$major$shared_ext'- shlibpath_overrides_runpath=yes- shlibpath_var=DYLD_LIBRARY_PATH- shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'-- sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'- ;;--dgux*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- ;;--freebsd* | dragonfly* | midnightbsd*)- # DragonFly does not have aout. When/if they implement a new- # versioning mechanism, adjust this.- if test -x /usr/bin/objformat; then- objformat=`/usr/bin/objformat`- else- case $host_os in- freebsd[23].*) objformat=aout ;;- *) objformat=elf ;;- esac- fi- version_type=freebsd-$objformat- case $version_type in- freebsd-elf*)- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- need_version=no- need_lib_prefix=no- ;;- freebsd-*)- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- need_version=yes- ;;- esac- case $host_cpu in- powerpc64)- # On FreeBSD bi-arch platforms, a different variable is used for 32-bit- # binaries. See <https://man.freebsd.org/cgi/man.cgi?query=ld.so>.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-int test_pointer_size[sizeof (void *) - 5];--_ACEOF-if ac_fn_cxx_try_compile "$LINENO"-then :- shlibpath_var=LD_LIBRARY_PATH-else case e in #(- e) shlibpath_var=LD_32_LIBRARY_PATH ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ;;- *)- shlibpath_var=LD_LIBRARY_PATH- ;;- esac- case $host_os in- freebsd2.*)- shlibpath_overrides_runpath=yes- ;;- freebsd3.[01]* | freebsdelf3.[01]*)- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- ;;- freebsd3.[2-9]* | freebsdelf3.[2-9]* | \- freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;- *) # from 4.6 on, and DragonFly- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- ;;- esac- ;;--haiku*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- dynamic_linker="$host_os runtime_loader"- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LIBRARY_PATH- shlibpath_overrides_runpath=no- sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib'- sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib'- hardcode_into_libs=no- ;;--hpux9* | hpux10* | hpux11*)- # Give a soname corresponding to the major version so that dld.sl refuses to- # link against other versions.- version_type=sunos- need_lib_prefix=no- need_version=no- case $host_cpu in- ia64*)- shrext_cmds='.so'- hardcode_into_libs=yes- dynamic_linker="$host_os dld.so"- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- if test 32 = "$HPUX_IA64_MODE"; then- sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"- sys_lib_dlsearch_path_spec=/usr/lib/hpux32- else- sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"- sys_lib_dlsearch_path_spec=/usr/lib/hpux64- fi- ;;- hppa*64*)- shrext_cmds='.sl'- hardcode_into_libs=yes- dynamic_linker="$host_os dld.sl"- shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH- shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec- ;;- *)- shrext_cmds='.sl'- dynamic_linker="$host_os dld.sl"- shlibpath_var=SHLIB_PATH- shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- ;;- esac- # HP-UX runs *really* slowly unless shared libraries are mode 555, ...- postinstall_cmds='chmod 555 $lib'- # or fails outright, so override atomically:- install_override_mode=555- ;;--interix[3-9]*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;--irix5* | irix6* | nonstopux*)- case $host_os in- nonstopux*) version_type=nonstopux ;;- *)- if test yes = "$lt_cv_prog_gnu_ld"; then- version_type=linux # correct to gnu/linux during the next big refactor- else- version_type=irix- fi ;;- esac- need_lib_prefix=no- need_version=no- soname_spec='$libname$release$shared_ext$major'- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'- case $host_os in- irix5* | nonstopux*)- libsuff= shlibsuff=- ;;- *)- case $LD in # libtool.m4 will add one of these switches to LD- *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")- libsuff= shlibsuff= libmagic=32-bit;;- *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")- libsuff=32 shlibsuff=N32 libmagic=N32;;- *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")- libsuff=64 shlibsuff=64 libmagic=64-bit;;- *) libsuff= shlibsuff= libmagic=never-match;;- esac- ;;- esac- shlibpath_var=LD_LIBRARY${shlibsuff}_PATH- shlibpath_overrides_runpath=no- sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"- sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"- hardcode_into_libs=yes- ;;--# No shared lib support for Linux oldld, aout, or coff.-linux*oldld* | linux*aout* | linux*coff*)- dynamic_linker=no- ;;--linux*android*)- version_type=none # Android doesn't support versioned libraries.- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext $libname$shared_ext'- soname_spec='$libname$release$shared_ext'- finish_cmds=- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes-- # This implies no fast_install, which is unacceptable.- # Some rework will be needed to allow for fast_install- # before this can be enabled.- hardcode_into_libs=yes-- dynamic_linker='Android linker'- # -rpath works at least for libraries that are not overridden by- # libraries installed in system locations.- hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'- ;;--# This must be glibc/ELF.-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no-- # Some binutils ld are patched to set DT_RUNPATH- if test ${lt_cv_shlibpath_overrides_runpath+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_shlibpath_overrides_runpath=no- save_LDFLAGS=$LDFLAGS- save_libdir=$libdir- eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \- LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_cxx_try_link "$LINENO"-then :- if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null-then :- lt_cv_shlibpath_overrides_runpath=yes-fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- LDFLAGS=$save_LDFLAGS- libdir=$save_libdir- ;;-esac-fi-- shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath-- # This implies no fast_install, which is unacceptable.- # Some rework will be needed to allow for fast_install- # before this can be enabled.- hardcode_into_libs=yes-- # Add ABI-specific directories to the system library path.- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"-- # Ideally, we could use ldconfig to report *all* directories which are- # searched for libraries, however this is still not possible. Aside from not- # being certain /sbin/ldconfig is available, command- # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,- # even though it is searched at run-time. Try to do the best guess by- # appending ld.so.conf contents (and includes) to the search path.- if test -f /etc/ld.so.conf; then- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"- fi-- # We used to test for /lib/ld.so.1 and disable shared libraries on- # powerpc, because MkLinux only supported shared libraries with the- # GNU dynamic linker. Since this was broken with cross compilers,- # most powerpc-linux boxes support dynamic linking these days and- # people can always --disable-shared, the test was removed, and we- # assume the GNU/Linux dynamic linker is in use.- dynamic_linker='GNU/Linux ld.so'- ;;--netbsdelf*-gnu)- version_type=linux- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- dynamic_linker='NetBSD ld.elf_so'- ;;--netbsd*)- version_type=sunos- need_lib_prefix=no- need_version=no- if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'- dynamic_linker='NetBSD (a.out) ld.so'- else- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='NetBSD ld.elf_so'- fi- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- ;;--*-mlibc)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='mlibc ld.so'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;--newsos6)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- ;;--*nto* | *qnx*)- version_type=qnx- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- dynamic_linker='ldqnx.so'- ;;--openbsd*)- version_type=sunos- sys_lib_dlsearch_path_spec=/usr/lib- need_lib_prefix=no- if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then- need_version=no- else- need_version=yes- fi- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- ;;--os2*)- libname_spec='$name'- version_type=windows- shrext_cmds=.dll- need_version=no- need_lib_prefix=no- # OS/2 can only load a DLL with a base name of 8 characters or less.- soname_spec='`test -n "$os2dllname" && libname="$os2dllname";- v=$($ECHO $release$versuffix | tr -d .-);- n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);- $ECHO $n$v`$shared_ext'- library_names_spec='${libname}_dll.$libext'- dynamic_linker='OS/2 ld.exe'- shlibpath_var=BEGINLIBPATH- sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname~- chmod a+x \$dldir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;- fi'- postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~- dlpath=$dir/\$dldll~- $RM \$dlpath'- ;;--osf3* | osf4* | osf5*)- version_type=osf- need_lib_prefix=no- need_version=no- soname_spec='$libname$release$shared_ext$major'- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"- sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec- ;;--rdos*)- dynamic_linker=no- ;;--serenity*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- dynamic_linker='SerenityOS LibELF'- ;;--solaris*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- # ldd complains unless libraries are executable- postinstall_cmds='chmod +x $lib'- ;;--sunos4*)- version_type=sunos- library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'- finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- if test yes = "$with_gnu_ld"; then- need_lib_prefix=no- fi- need_version=yes- ;;--sysv4 | sysv4.3*)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- case $host_vendor in- sni)- shlibpath_overrides_runpath=no- need_lib_prefix=no- runpath_var=LD_RUN_PATH- ;;- siemens)- need_lib_prefix=no- ;;- motorola)- need_lib_prefix=no- need_version=no- shlibpath_overrides_runpath=no- sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'- ;;- esac- ;;--sysv4*MP*)- if test -d /usr/nec; then- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'- soname_spec='$libname$shared_ext.$major'- shlibpath_var=LD_LIBRARY_PATH- fi- ;;--sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)- version_type=sco- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=yes- hardcode_into_libs=yes- if test yes = "$with_gnu_ld"; then- sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'- else- sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'- case $host_os in- sco3.2v5*)- sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"- ;;- esac- fi- sys_lib_dlsearch_path_spec='/usr/lib'- ;;--tpf*)- # TPF is a cross-target only. Preferred cross-host = GNU/Linux.- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;--uts4*)- version_type=linux # correct to gnu/linux during the next big refactor- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- ;;--emscripten*)- version_type=none- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext'- soname_spec='$libname$release$shared_ext'- finish_cmds=- dynamic_linker="Emscripten linker"- lt_prog_compiler_wl_CXX=-lt_prog_compiler_pic_CXX=-lt_prog_compiler_static_CXX=--- # C++ specific cases for pic, static, wl, etc.- if test yes = "$GXX"; then- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='-static'-- case $host_os in- aix*)- # All AIX code is PIC.- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static_CXX='-Bstatic'- fi- lt_prog_compiler_pic_CXX='-fPIC'- ;;-- amigaos*)- case $host_cpu in- powerpc)- # see comment about AmigaOS4 .so support- lt_prog_compiler_pic_CXX='-fPIC'- ;;- m68k)- # FIXME: we need at least 68020 code to build shared libraries, but- # adding the '-m68020' flag to GCC prevents building anything better,- # like '-m68040'.- lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'- ;;- esac- ;;-- beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)- # PIC is the default for these OSes.- ;;- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- # Although the cygwin gcc ignores -fPIC, still need this for old-style- # (--disable-auto-import) libraries- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'- case $host_os in- os2*)- lt_prog_compiler_static_CXX='$wl-static'- ;;- esac- ;;- darwin* | rhapsody*)- # PIC is the default on this platform- # Common symbols not allowed in MH_DYLIB files- lt_prog_compiler_pic_CXX='-fno-common'- ;;- *djgpp*)- # DJGPP does not support shared libraries at all- lt_prog_compiler_pic_CXX=- ;;- haiku*)- # PIC is the default for Haiku.- # The "-static" flag exists, but is broken.- lt_prog_compiler_static_CXX=- ;;- interix[3-9]*)- # Interix 3.x gcc -fpic/-fPIC options generate broken code.- # Instead, we relocate shared libraries at runtime.- ;;- sysv4*MP*)- if test -d /usr/nec; then- lt_prog_compiler_pic_CXX=-Kconform_pic- fi- ;;- hpux*)- # PIC is the default for 64-bit PA HP-UX, but not for 32-bit- # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag- # sets the default TLS model and affects inlining.- case $host_cpu in- hppa*64*)- ;;- *)- lt_prog_compiler_pic_CXX='-fPIC'- ;;- esac- ;;- *qnx* | *nto*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic_CXX='-fPIC -shared'- ;;- *)- lt_prog_compiler_pic_CXX='-fPIC'- ;;- esac- else- case $host_os in- aix[4-9]*)- # All AIX code is PIC.- if test ia64 = "$host_cpu"; then- # AIX 5 now supports IA64 processor- lt_prog_compiler_static_CXX='-Bstatic'- else- lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'- fi- ;;- chorus*)- case $cc_basename in- cxch68*)- # Green Hills C++ Compiler- # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"- ;;- esac- ;;- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)- # This hack is so that the source file can tell whether it is being- # built for inclusion in a dll (and should export symbols for example).- lt_prog_compiler_pic_CXX='-DDLL_EXPORT'- ;;- dgux*)- case $cc_basename in- ec++*)- lt_prog_compiler_pic_CXX='-KPIC'- ;;- ghcx*)- # Green Hills C++ Compiler- lt_prog_compiler_pic_CXX='-pic'- ;;- *)- ;;- esac- ;;- freebsd* | dragonfly* | midnightbsd*)- # FreeBSD uses GNU C++- ;;- hpux9* | hpux10* | hpux11*)- case $cc_basename in- CC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='$wl-a ${wl}archive'- if test ia64 != "$host_cpu"; then- lt_prog_compiler_pic_CXX='+Z'- fi- ;;- aCC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='$wl-a ${wl}archive'- case $host_cpu in- hppa*64*|ia64*)- # +Z the default- ;;- *)- lt_prog_compiler_pic_CXX='+Z'- ;;- esac- ;;- *)- ;;- esac- ;;- interix*)- # This is c89, which is MS Visual C++ (no shared libs)- # Anyone wants to do a port?- ;;- irix5* | irix6* | nonstopux*)- case $cc_basename in- CC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_static_CXX='-non_shared'- # CC pic flag -KPIC is the default.- ;;- *)- ;;- esac- ;;- linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)- case $cc_basename in- KCC*)- # KAI C++ Compiler- lt_prog_compiler_wl_CXX='--backend -Wl,'- lt_prog_compiler_pic_CXX='-fPIC'- ;;- ecpc* )- # old Intel C++ for x86_64, which still supported -KPIC.- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-static'- ;;- icpc* )- # Intel C++, used to be incompatible with GCC.- # ICC 10 doesn't accept -KPIC any more.- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-fPIC'- lt_prog_compiler_static_CXX='-static'- ;;- pgCC* | pgcpp*)- # Portland Group C++ compiler- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-fpic'- lt_prog_compiler_static_CXX='-Bstatic'- ;;- cxx*)- # Compaq C++- # Make sure the PIC flag is empty. It appears that all Alpha- # Linux and Compaq Tru64 Unix objects are PIC.- lt_prog_compiler_pic_CXX=- lt_prog_compiler_static_CXX='-non_shared'- ;;- xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)- # IBM XL 8.0, 9.0 on PPC and BlueGene- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-qpic'- lt_prog_compiler_static_CXX='-qstaticlink'- ;;- *)- case `$CC -V 2>&1 | $SED 5q` in- *Sun\ C*)- # Sun C++ 5.9- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-Bstatic'- lt_prog_compiler_wl_CXX='-Qoption ld '- ;;- esac- ;;- esac- ;;- lynxos*)- ;;- m88k*)- ;;- mvs*)- case $cc_basename in- cxx*)- lt_prog_compiler_pic_CXX='-W c,exportall'- ;;- *)- ;;- esac- ;;- netbsd* | netbsdelf*-gnu)- ;;- *-mlibc)- ;;- *qnx* | *nto*)- # QNX uses GNU C++, but need to define -shared option too, otherwise- # it will coredump.- lt_prog_compiler_pic_CXX='-fPIC -shared'- ;;- osf3* | osf4* | osf5*)- case $cc_basename in- KCC*)- lt_prog_compiler_wl_CXX='--backend -Wl,'- ;;- RCC*)- # Rational C++ 2.4.1- lt_prog_compiler_pic_CXX='-pic'- ;;- cxx*)- # Digital/Compaq C++- lt_prog_compiler_wl_CXX='-Wl,'- # Make sure the PIC flag is empty. It appears that all Alpha- # Linux and Compaq Tru64 Unix objects are PIC.- lt_prog_compiler_pic_CXX=- lt_prog_compiler_static_CXX='-non_shared'- ;;- *)- ;;- esac- ;;- psos*)- ;;- serenity*)- ;;- solaris*)- case $cc_basename in- CC* | sunCC*)- # Sun C++ 4.2, 5.x and Centerline C++- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-Bstatic'- lt_prog_compiler_wl_CXX='-Qoption ld '- ;;- gcx*)- # Green Hills C++ Compiler- lt_prog_compiler_pic_CXX='-PIC'- ;;- *)- ;;- esac- ;;- sunos4*)- case $cc_basename in- CC*)- # Sun C++ 4.x- lt_prog_compiler_pic_CXX='-pic'- lt_prog_compiler_static_CXX='-Bstatic'- ;;- lcc*)- # Lucid- lt_prog_compiler_pic_CXX='-pic'- ;;- *)- ;;- esac- ;;- sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)- case $cc_basename in- CC*)- lt_prog_compiler_wl_CXX='-Wl,'- lt_prog_compiler_pic_CXX='-KPIC'- lt_prog_compiler_static_CXX='-Bstatic'- ;;- esac- ;;- tandem*)- case $cc_basename in- NCC*)- # NonStop-UX NCC 3.20- lt_prog_compiler_pic_CXX='-KPIC'- ;;- *)- ;;- esac- ;;- vxworks*)- ;;- *)- lt_prog_compiler_can_build_shared_CXX=no- ;;- esac- fi--case $host_os in- # For platforms that do not support PIC, -DPIC is meaningless:- *djgpp*)- lt_prog_compiler_pic_CXX=- ;;- *)- lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"- ;;-esac--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5-printf %s "checking for $compiler option to produce PIC... " >&6; }-if test ${lt_cv_prog_compiler_pic_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic_CXX" >&6; }-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX--#-# Check to make sure the PIC flag actually works.-#-if test -n "$lt_prog_compiler_pic_CXX"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5-printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }-if test ${lt_cv_prog_compiler_pic_works_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_pic_works_CXX=no- ac_outfile=conftest.$ac_objext- echo "$lt_simple_compile_test_code" > conftest.$ac_ext- lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment- # Insert the option either (1) after the last *FLAGS variable, or- # (2) before a word containing "conftest.", or (3) at the end.- # Note that $ac_compile itself does not contain backslashes and begins- # with a dollar sign (not a hyphen), so the echo should work correctly.- # The option is referenced via a variable to avoid confusing sed.- lt_compile=`echo "$ac_compile" | $SED \- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \- -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \- -e 's:$: $lt_compiler_flag:'`- (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)- (eval "$lt_compile" 2>conftest.err)- ac_status=$?- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- if (exit $ac_status) && test -s "$ac_outfile"; then- # The compiler can only warn and ignore the option if not recognized- # So say no if there are warnings other than the usual output.- $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_pic_works_CXX=yes- fi- fi- $RM conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_pic_works_CXX" >&6; }--if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then- case $lt_prog_compiler_pic_CXX in- "" | " "*) ;;- *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;- esac-else- lt_prog_compiler_pic_CXX=- lt_prog_compiler_can_build_shared_CXX=no-fi--fi------#-# Check to make sure the static flag actually works.-#-wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5-printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }-if test ${lt_cv_prog_compiler_static_works_CXX+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_prog_compiler_static_works_CXX=no- save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS $lt_tmp_static_flag"- echo "$lt_simple_link_test_code" > conftest.$ac_ext- if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then- # The linker can only warn and ignore the option if not recognized- # So say no if there are warnings- if test -s conftest.err; then- # Append any errors to the config.log.- cat conftest.err 1>&5- $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp- $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2- if diff conftest.exp conftest.er2 >/dev/null; then- lt_cv_prog_compiler_static_works_CXX=yes- fi- else- lt_cv_prog_compiler_static_works_CXX=yes- fi- fi- $RM -r conftest*- LDFLAGS=$save_LDFLAGS- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5-printf "%s\n" "$lt_cv_prog_compiler_static_works_CXX" >&6; }--if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then- :-else- lt_prog_compiler_static_CXX=-fi----='-fPIC'- archive_cmds_CXX='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib'- archive_expsym_cmds_CXX='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym'- archive_cmds_need_lc_CXX=no- no_undefined_flag_CXX=- ;;--*)- dynamic_linker=no- ;;-esac-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5-printf "%s\n" "$dynamic_linker" >&6; }-test no = "$dynamic_linker" && can_build_shared=no--variables_saved_for_relink="PATH $shlibpath_var $runpath_var"-if test yes = "$GCC"; then- variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"-fi--if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then- sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec-fi--if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then- sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec-fi--# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...-configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec--# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code-func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"--# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool-configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH----------------------------------------- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5-printf %s "checking how to hardcode library paths into programs... " >&6; }-hardcode_action_CXX=-if test -n "$hardcode_libdir_flag_spec_CXX" ||- test -n "$runpath_var_CXX" ||- test yes = "$hardcode_automatic_CXX"; then-- # We can hardcode non-existent directories.- if test no != "$hardcode_direct_CXX" &&- # If the only mechanism to avoid hardcoding is shlibpath_var, we- # have to relink, otherwise we might link with an installed library- # when we should be linking with a yet-to-be-installed one- ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" &&- test no != "$hardcode_minus_L_CXX"; then- # Linking always hardcodes the temporary library directory.- hardcode_action_CXX=relink- else- # We can link without hardcoding, and we can hardcode nonexisting dirs.- hardcode_action_CXX=immediate- fi-else- # We cannot hardcode anything, or else we can only hardcode existing- # directories.- hardcode_action_CXX=unsupported-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5-printf "%s\n" "$hardcode_action_CXX" >&6; }--if test relink = "$hardcode_action_CXX" ||- test yes = "$inherit_rpath_CXX"; then- # Fast installation is not supported- enable_fast_install=no-elif test yes = "$shlibpath_overrides_runpath" ||- test no = "$enable_shared"; then- # Fast installation is not necessary- enable_fast_install=needless-fi-------- fi # test -n "$compiler"-- CC=$lt_save_CC- CFLAGS=$lt_save_CFLAGS- LDCXX=$LD- LD=$lt_save_LD- GCC=$lt_save_GCC- with_gnu_ld=$lt_save_with_gnu_ld- lt_cv_path_LDCXX=$lt_cv_path_LD- lt_cv_path_LD=$lt_save_path_LD- lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld- lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld-fi # test yes != "$_lt_caught_CXX_error"--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---------------- ac_config_commands="$ac_config_commands libtool"-----# Only expand once:-----# Test for 64-bit build.-# The cast to long int works around a bug in the HP C Compiler-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.-# This bug is HP SR number 8606223364.-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5-printf %s "checking size of size_t... " >&6; }-if test ${ac_cv_sizeof_size_t+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"-then :--else case e in #(- e) if test "$ac_cv_type_size_t" = yes; then- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error 77 "cannot compute sizeof (size_t)-See 'config.log' for more details" "$LINENO" 5; }- else- ac_cv_sizeof_size_t=0- fi ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5-printf "%s\n" "$ac_cv_sizeof_size_t" >&6; }----printf "%s\n" "#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t" >>confdefs.h---- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5-printf %s "checking for C compiler vendor... " >&6; }-if test ${ax_cv_c_compiler_vendor+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- vendors="- intel: __ICC,__ECC,__INTEL_COMPILER- ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__- pathscale: __PATHCC__,__PATHSCALE__- clang: __clang__- cray: _CRAYC- fujitsu: __FUJITSU- sdcc: SDCC,__SDCC- sx: _SX- nvhpc: __NVCOMPILER- portland: __PGI- gnu: __GNUC__- sun: __SUNPRO_C,__SUNPRO_CC,__SUNPRO_F90,__SUNPRO_F95- hp: __HP_cc,__HP_aCC- dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER- borland: __BORLANDC__,__CODEGEARC__,__TURBOC__- comeau: __COMO__- kai: __KCC- lcc: __LCC__- sgi: __sgi,sgi- microsoft: _MSC_VER- metrowerks: __MWERKS__- watcom: __WATCOMC__- tcc: __TINYC__- unknown: UNKNOWN- "- for ventest in $vendors; do- case $ventest in- *:)- vendor=$ventest- continue- ;;- *)- vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")"- ;;- esac-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{--#if !($vencpp)- thisisanerror;-#endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- break-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- done-- ax_cv_c_compiler_vendor=`echo $vendor | cut -d: -f1`- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5-printf "%s\n" "$ax_cv_c_compiler_vendor" >&6; }-------# Check whether --enable-portable-binary was given.-if test ${enable_portable_binary+y}-then :- enableval=$enable_portable_binary; acx_maxopt_portable=$enableval-else case e in #(- e) acx_maxopt_portable=no ;;-esac-fi---# Try to determine "good" native compiler flags if none specified via CFLAGS-if test "x$ac_test_CFLAGS" = "x"; then- case $ax_cv_c_compiler_vendor in- dec) CFLAGS="$CFLAGS -newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host"- if test "x$acx_maxopt_portable" = xno; then- CFLAGS="$CFLAGS -arch host"- fi;;-- sun) CFLAGS="$CFLAGS -native -fast -xO5 -dalign"- if test "x$acx_maxopt_portable" = xyes; then- CFLAGS="$CFLAGS -xarch=generic"- fi;;-- hp) CFLAGS="$CFLAGS +Oall +Optrs_ansi +DSnative"- if test "x$acx_maxopt_portable" = xyes; then- CFLAGS="$CFLAGS +DAportable"- fi;;-- ibm) if test "x$acx_maxopt_portable" = xno; then- xlc_opt="-qarch=auto -qtune=auto"- else- xlc_opt="-qtune=auto"- fi- as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$xlc_opt" | sed "$as_sed_sh"`-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $xlc_opt" >&5-printf %s "checking whether the C compiler accepts $xlc_opt... " >&6; }-if eval test \${$as_CACHEVAR+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS $xlc_opt $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- eval "$as_CACHEVAR=yes"-else case e in #(- e) eval "$as_CACHEVAR=no" ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-eval ac_res=\$$as_CACHEVAR- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-printf "%s\n" "$ac_res" >&6; }-if eval test \"x\$"$as_CACHEVAR"\" = x"yes"-then :- CFLAGS="$CFLAGS -O3 -qansialias -w $xlc_opt"-else case e in #(- e) CFLAGS="$CFLAGS -O3 -qansialias -w"- echo "******************************************************"- echo "* You seem to have the IBM C compiler. It is *"- echo "* recommended for best performance that you use: *"- echo "* *"- echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *"- echo "* ^^^ ^^^ *"- echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *"- echo "* CPU you have. (Set the CFLAGS environment var. *"- echo "* and re-run configure.) For more info, man cc. *"- echo "******************************************************" ;;-esac-fi-- ;;-- intel) CFLAGS="$CFLAGS -O3 -ansi_alias"- if test "x$acx_maxopt_portable" = xno; then- icc_archflag=unknown- icc_flags=""- case $host_cpu in- i686*|x86_64*)- # icc accepts gcc assembly syntax, so these should work:--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5-printf %s "checking for x86 cpuid 0 output... " >&6; }-if test ${ax_cv_gcc_x86_cpuid_0+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test "$cross_compiling" = yes-then :- ax_cv_gcc_x86_cpuid_0=unknown-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdio.h>-int-main (void)-{-- int op = 0, level = 0, eax, ebx, ecx, edx;- FILE *f;- __asm__ __volatile__ ("xchg %%ebx, %1\n"- "cpuid\n"- "xchg %%ebx, %1\n"- : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)- : "a" (op), "2" (level));-- f = fopen("conftest_cpuid", "w"); if (!f) return 1;- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);- fclose(f);- return 0;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid-else case e in #(- e) ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5-printf "%s\n" "$ax_cv_gcc_x86_cpuid_0" >&6; }-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-----ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5-printf %s "checking for x86 cpuid 1 output... " >&6; }-if test ${ax_cv_gcc_x86_cpuid_1+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test "$cross_compiling" = yes-then :- ax_cv_gcc_x86_cpuid_1=unknown-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdio.h>-int-main (void)-{-- int op = 1, level = 0, eax, ebx, ecx, edx;- FILE *f;- __asm__ __volatile__ ("xchg %%ebx, %1\n"- "cpuid\n"- "xchg %%ebx, %1\n"- : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)- : "a" (op), "2" (level));-- f = fopen("conftest_cpuid", "w"); if (!f) return 1;- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);- fclose(f);- return 0;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid-else case e in #(- e) ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5-printf "%s\n" "$ax_cv_gcc_x86_cpuid_1" >&6; }-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---- case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG- *:756e6547:6c65746e:49656e69) # Intel- case $ax_cv_gcc_x86_cpuid_1 in- *0?6[78ab]?:*:*:*|?6[78ab]?:*:*:*|6[78ab]?:*:*:*) icc_flags="-xK" ;;- *0?6[9d]?:*:*:*|?6[9d]?:*:*:*|6[9d]?:*:*:*|*1?65?:*:*:*) icc_flags="-xSSE2 -xB -xK" ;;- *0?6e?:*:*:*|?6e?:*:*:*|6e?:*:*:*) icc_flags="-xSSE3 -xP -xO -xB -xK" ;;- *0?6f?:*:*:*|?6f?:*:*:*|6f?:*:*:*|*1?66?:*:*:*) icc_flags="-xSSSE3 -xT -xB -xK" ;;- *1?6[7d]?:*:*:*) icc_flags="-xSSE4.1 -xS -xT -xB -xK" ;;- *1?6[aef]?:*:*:*|*2?6[5cef]?:*:*:*) icc_flags="-xSSE4.2 -xS -xT -xB -xK" ;;- *2?6[ad]?:*:*:*) icc_flags="-xAVX -SSE4.2 -xS -xT -xB -xK" ;;- *3?6[ae]?:*:*:*) icc_flags="-xCORE-AVX-I -xAVX -SSE4.2 -xS -xT -xB -xK" ;;- *3?6[cf]?:*:*:*|*4?6[56]?:*:*:*) icc_flags="-xCORE-AVX2 -xCORE-AVX-I -xAVX -SSE4.2 -xS -xT -xB -xK" ;;- *000?f[346]?:*:*:*|?f[346]?:*:*:*|f[346]?:*:*:*) icc_flags="-xSSE3 -xP -xO -xN -xW -xK" ;;- *00??f??:*:*:*|??f??:*:*:*|?f??:*:*:*|f??:*:*:*) icc_flags="-xSSE2 -xN -xW -xK" ;;- esac ;;- esac ;;- esac- if test "x$icc_flags" != x; then- for flag in $icc_flags; do- as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | sed "$as_sed_sh"`-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $flag" >&5-printf %s "checking whether the C compiler accepts $flag... " >&6; }-if eval test \${$as_CACHEVAR+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS $flag $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- eval "$as_CACHEVAR=yes"-else case e in #(- e) eval "$as_CACHEVAR=no" ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-eval ac_res=\$$as_CACHEVAR- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-printf "%s\n" "$ac_res" >&6; }-if eval test \"x\$"$as_CACHEVAR"\" = x"yes"-then :- icc_archflag=$flag; break-else case e in #(- e) : ;;-esac-fi-- done- fi- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for icc architecture flag" >&5-printf %s "checking for icc architecture flag... " >&6; }- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $icc_archflag" >&5-printf "%s\n" "$icc_archflag" >&6; }- if test "x$icc_archflag" != xunknown; then- CFLAGS="$CFLAGS $icc_archflag"- fi- fi- ;;-- nvhpc)- # default optimization flags for nvhpc- CFLAGS="$CFLAGS -O3"- ;;-- gnu)- # default optimization flags for gcc on all systems- CFLAGS="$CFLAGS -O3 -fomit-frame-pointer"-- # -malign-double for x86 systems- # LIBFFI_LOCAL: don't do this.- # The testsuite doesn't use these flags and we'll get test failures.- # AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double")-- # -fstrict-aliasing for gcc-2.95+- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fstrict-aliasing" >&5-printf %s "checking whether the C compiler accepts -fstrict-aliasing... " >&6; }-if test ${ax_cv_check_cflags___fstrict_aliasing+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS -fstrict-aliasing $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ax_cv_check_cflags___fstrict_aliasing=yes-else case e in #(- e) ax_cv_check_cflags___fstrict_aliasing=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstrict_aliasing" >&5-printf "%s\n" "$ax_cv_check_cflags___fstrict_aliasing" >&6; }-if test "x$ax_cv_check_cflags___fstrict_aliasing" = xyes-then :- CFLAGS="$CFLAGS -fstrict-aliasing"-else case e in #(- e) : ;;-esac-fi--- # note that we enable "unsafe" fp optimization with other compilers, too- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -ffast-math" >&5-printf %s "checking whether the C compiler accepts -ffast-math... " >&6; }-if test ${ax_cv_check_cflags___ffast_math+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS -ffast-math $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ax_cv_check_cflags___ffast_math=yes-else case e in #(- e) ax_cv_check_cflags___ffast_math=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___ffast_math" >&5-printf "%s\n" "$ax_cv_check_cflags___ffast_math" >&6; }-if test "x$ax_cv_check_cflags___ffast_math" = xyes-then :- CFLAGS="$CFLAGS -ffast-math"-else case e in #(- e) : ;;-esac-fi---------# Check whether --with-gcc-arch was given.-if test ${with_gcc_arch+y}-then :- withval=$with_gcc_arch; ax_gcc_arch=$withval-else case e in #(- e) ax_gcc_arch=yes ;;-esac-fi---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5-printf %s "checking for gcc architecture flag... " >&6; }-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5-printf "%s\n" "" >&6; }-if test ${ax_cv_gcc_archflag+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)-ax_cv_gcc_archflag="unknown"--if test "$GCC" = yes; then--if test "x$ax_gcc_arch" = xyes; then-ax_gcc_arch=""-if test "$cross_compiling" = no; then-case $host_cpu in- i[3456]86*|x86_64*|amd64*) # use cpuid codes--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5-printf %s "checking for x86 cpuid 0 output... " >&6; }-if test ${ax_cv_gcc_x86_cpuid_0+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test "$cross_compiling" = yes-then :- ax_cv_gcc_x86_cpuid_0=unknown-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdio.h>-int-main (void)-{-- int op = 0, level = 0, eax, ebx, ecx, edx;- FILE *f;- __asm__ __volatile__ ("xchg %%ebx, %1\n"- "cpuid\n"- "xchg %%ebx, %1\n"- : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)- : "a" (op), "2" (level));-- f = fopen("conftest_cpuid", "w"); if (!f) return 1;- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);- fclose(f);- return 0;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid-else case e in #(- e) ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5-printf "%s\n" "$ax_cv_gcc_x86_cpuid_0" >&6; }-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-----ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5-printf %s "checking for x86 cpuid 1 output... " >&6; }-if test ${ax_cv_gcc_x86_cpuid_1+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if test "$cross_compiling" = yes-then :- ax_cv_gcc_x86_cpuid_1=unknown-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <stdio.h>-int-main (void)-{-- int op = 1, level = 0, eax, ebx, ecx, edx;- FILE *f;- __asm__ __volatile__ ("xchg %%ebx, %1\n"- "cpuid\n"- "xchg %%ebx, %1\n"- : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)- : "a" (op), "2" (level));-- f = fopen("conftest_cpuid", "w"); if (!f) return 1;- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);- fclose(f);- return 0;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid-else case e in #(- e) ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5-printf "%s\n" "$ax_cv_gcc_x86_cpuid_1" >&6; }-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---- case $ax_cv_gcc_x86_cpuid_0 in- *:756e6547:6c65746e:49656e69) # Intel- case $ax_cv_gcc_x86_cpuid_1 in- *5[4578]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;- *5[123]?:*:*:*) ax_gcc_arch=pentium ;;- *0?61?:*:*:*|?61?:*:*:*|61?:*:*:*) ax_gcc_arch=pentiumpro ;;- *0?6[356]?:*:*:*|?6[356]?:*:*:*|6[356]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;- *0?6[78ab]?:*:*:*|?6[78ab]?:*:*:*|6[78ab]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;- *0?6[9d]?:*:*:*|?6[9d]?:*:*:*|6[9d]?:*:*:*|*1?65?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;- *0?6e?:*:*:*|?6e?:*:*:*|6e?:*:*:*) ax_gcc_arch="yonah pentium-m pentium3 pentiumpro" ;;- *0?6f?:*:*:*|?6f?:*:*:*|6f?:*:*:*|*1?66?:*:*:*) ax_gcc_arch="core2 pentium-m pentium3 pentiumpro" ;;- *1?6[7d]?:*:*:*) ax_gcc_arch="penryn core2 pentium-m pentium3 pentiumpro" ;;- *1?6[aef]?:*:*:*|*2?6e?:*:*:*) ax_gcc_arch="nehalem corei7 core2 pentium-m pentium3 pentiumpro" ;;- *2?6[5cf]?:*:*:*) ax_gcc_arch="westmere corei7 core2 pentium-m pentium3 pentiumpro" ;;- *2?6[ad]?:*:*:*) ax_gcc_arch="sandybridge corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;- *3?6[ae]?:*:*:*) ax_gcc_arch="ivybridge core-avx-i corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;- *3?6[cf]?:*:*:*|*4?6[56]?:*:*:*) ax_gcc_arch="haswell core-avx2 core-avx-i corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;- *3?6d?:*:*:*|*4?6[7f]?:*:*:*|*5?66?:*:*:*) ax_gcc_arch="broadwell core-avx2 core-avx-i corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;- *1?6c?:*:*:*|*2?6[67]?:*:*:*|*3?6[56]?:*:*:*) ax_gcc_arch="bonnell atom core2 pentium-m pentium3 pentiumpro" ;;- *3?67?:*:*:*|*[45]?6[ad]?:*:*:*) ax_gcc_arch="silvermont atom core2 pentium-m pentium3 pentiumpro" ;;- *000?f[012]?:*:*:*|?f[012]?:*:*:*|f[012]?:*:*:*) ax_gcc_arch="pentium4 pentiumpro" ;;- *000?f[346]?:*:*:*|?f[346]?:*:*:*|f[346]?:*:*:*) ax_gcc_arch="nocona prescott pentium4 pentiumpro" ;;- # fallback- *5??:*:*:*) ax_gcc_arch=pentium ;;- *??6??:*:*:*) ax_gcc_arch="core2 pentiumpro" ;;- *6??:*:*:*) ax_gcc_arch=pentiumpro ;;- *00??f??:*:*:*|??f??:*:*:*|?f??:*:*:*|f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro" ;;- esac ;;- *:68747541:444d4163:69746e65) # AMD- case $ax_cv_gcc_x86_cpuid_1 in- *5[67]?:*:*:*) ax_gcc_arch=k6 ;;- *5[8]?:*:*:*) ax_gcc_arch="k6-2 k6" ;;- *5[9d]?:*:*:*) ax_gcc_arch="k6-3 k6" ;;- *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;;- *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;;- *6[678a]?:*:*:*) ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;- *000?f[4578bcef]?:*:*:*|?f[4578bcef]?:*:*:*|f[4578bcef]?:*:*:*|*001?f[4578bcf]?:*:*:*|1?f[4578bcf]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;- *002?f[13457bcf]?:*:*:*|2?f[13457bcf]?:*:*:*|*004?f[138bcf]?:*:*:*|4?f[138bcf]?:*:*:*|*005?f[df]?:*:*:*|5?f[df]?:*:*:*|*006?f[8bcf]?:*:*:*|6?f[8bcf]?:*:*:*|*007?f[cf]?:*:*:*|7?f[cf]?:*:*:*|*00c?f1?:*:*:*|c?f1?:*:*:*|*020?f3?:*:*:*|20?f3?:*:*:*) ax_gcc_arch="athlon64-sse3 k8-sse3 athlon64 k8" ;;- *010?f[245689a]?:*:*:*|10?f[245689a]?:*:*:*|*030?f1?:*:*:*|30?f1?:*:*:*) ax_gcc_arch="barcelona amdfam10 k8" ;;- *050?f[12]?:*:*:*|50?f[12]?:*:*:*) ax_gcc_arch="btver1 amdfam10 k8" ;;- *060?f1?:*:*:*|60?f1?:*:*:*) ax_gcc_arch="bdver1 amdfam10 k8" ;;- *060?f2?:*:*:*|60?f2?:*:*:*|*061?f[03]?:*:*:*|61?f[03]?:*:*:*) ax_gcc_arch="bdver2 bdver1 amdfam10 k8" ;;- *063?f0?:*:*:*|63?f0?:*:*:*) ax_gcc_arch="bdver3 bdver2 bdver1 amdfam10 k8" ;;- *07[03]?f0?:*:*:*|7[03]?f0?:*:*:*) ax_gcc_arch="btver2 btver1 amdfam10 k8" ;;- # fallback- *0[13]??f??:*:*:*|[13]??f??:*:*:*) ax_gcc_arch="barcelona amdfam10 k8" ;;- *020?f??:*:*:*|20?f??:*:*:*) ax_gcc_arch="athlon64-sse3 k8-sse3 athlon64 k8" ;;- *05??f??:*:*:*|5??f??:*:*:*) ax_gcc_arch="btver1 amdfam10 k8" ;;- *060?f??:*:*:*|60?f??:*:*:*) ax_gcc_arch="bdver1 amdfam10 k8" ;;- *061?f??:*:*:*|61?f??:*:*:*) ax_gcc_arch="bdver2 bdver1 amdfam10 k8" ;;- *06??f??:*:*:*|6??f??:*:*:*) ax_gcc_arch="bdver3 bdver2 bdver1 amdfam10 k8" ;;- *070?f??:*:*:*|70?f??:*:*:*) ax_gcc_arch="btver2 btver1 amdfam10 k8" ;;- *???f??:*:*:*) ax_gcc_arch="amdfam10 k8" ;;- esac ;;- *:746e6543:736c7561:48727561) # IDT / VIA (Centaur)- case $ax_cv_gcc_x86_cpuid_1 in- *54?:*:*:*) ax_gcc_arch=winchip-c6 ;;- *5[89]?:*:*:*) ax_gcc_arch=winchip2 ;;- *66?:*:*:*) ax_gcc_arch=winchip2 ;;- *6[78]?:*:*:*) ax_gcc_arch=c3 ;;- *6[9adf]?:*:*:*) ax_gcc_arch="c3-2 c3" ;;- esac ;;- esac- if test x"$ax_gcc_arch" = x; then # fallback- case $host_cpu in- i586*) ax_gcc_arch=pentium ;;- i686*) ax_gcc_arch=pentiumpro ;;- esac- fi- ;;-- sparc*)- # Extract the first word of "prtdiag", so it can be a program name with args.-set dummy prtdiag; ac_word=$2-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5-printf %s "checking for $ac_word... " >&6; }-if test ${ac_cv_path_PRTDIAG+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) case $PRTDIAG in- [\\/]* | ?:[\\/]*)- ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path.- ;;- *)- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/"-for as_dir in $as_dummy-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- for ac_exec_ext in '' $ac_executable_extensions; do- if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then- ac_cv_path_PRTDIAG="$as_dir$ac_word$ac_exec_ext"- printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5- break 2- fi-done- done-IFS=$as_save_IFS-- test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag"- ;;-esac ;;-esac-fi-PRTDIAG=$ac_cv_path_PRTDIAG-if test -n "$PRTDIAG"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PRTDIAG" >&5-printf "%s\n" "$PRTDIAG" >&6; }-else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5-printf "%s\n" "no" >&6; }-fi--- cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`- cputype=`echo "$cputype" | tr -d ' -' | $SED 's/SPARCIIi/SPARCII/' |tr $as_cr_LETTERS $as_cr_letters`- case $cputype in- *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;- *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;- *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;;- *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;;- *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;;- *cypress*) ax_gcc_arch=cypress ;;- esac ;;-- alphaev5) ax_gcc_arch=ev5 ;;- alphaev56) ax_gcc_arch=ev56 ;;- alphapca56) ax_gcc_arch="pca56 ev56" ;;- alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;;- alphaev6) ax_gcc_arch=ev6 ;;- alphaev67) ax_gcc_arch=ev67 ;;- alphaev68) ax_gcc_arch="ev68 ev67" ;;- alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;;- alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;;- alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;;-- powerpc*)- cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | $SED 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null`- cputype=`echo $cputype | $SED -e 's/ppc//g;s/ *//g'`- case $cputype in- *750*) ax_gcc_arch="750 G3" ;;- *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;;- *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;;- *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;;- *970*) ax_gcc_arch="970 G5 power4";;- *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";;- *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";;- 603ev|8240) ax_gcc_arch="$cputype 603e 603";;- *POWER7*) ax_gcc_arch="power7";;- *POWER8*) ax_gcc_arch="power8";;- *POWER9*) ax_gcc_arch="power9";;- *POWER10*) ax_gcc_arch="power10";;- *) ax_gcc_arch=$cputype ;;- esac- ax_gcc_arch="$ax_gcc_arch powerpc"- ;;- aarch64)- cpuimpl=`grep 'CPU implementer' /proc/cpuinfo 2> /dev/null | cut -d: -f2 | tr -d " " | head -n 1`- cpuarch=`grep 'CPU architecture' /proc/cpuinfo 2> /dev/null | cut -d: -f2 | tr -d " " | head -n 1`- cpuvar=`grep 'CPU variant' /proc/cpuinfo 2> /dev/null | cut -d: -f2 | tr -d " " | head -n 1`- case $cpuimpl in- 0x42) case $cpuarch in- 8) case $cpuvar in- 0x0) ax_gcc_arch="thunderx2t99 vulcan armv8.1-a armv8-a+lse armv8-a native" ;;- esac- ;;- esac- ;;- 0x43) case $cpuarch in- 8) case $cpuvar in- 0x0) ax_gcc_arch="thunderx armv8-a native" ;;- 0x1) ax_gcc_arch="thunderx+lse armv8.1-a armv8-a+lse armv8-a native" ;;- esac- ;;- esac- ;;- esac- ;;-esac-fi # not cross-compiling-fi # guess arch--if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then-if test "x$acx_maxopt_portable" = xyes; then # if we require portable code- flag_prefixes="-mtune="- if test "x$ax_cv_c_compiler_vendor" = xclang; then flag_prefixes="-march="; fi- # -mcpu=$arch and m$arch generate nonportable code on every arch except- # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr.- case $host_cpu in i*86|x86_64*|amd64*) flag_prefixes="$flag_prefixes -mcpu= -m";; esac-else- flag_prefixes="-march= -mcpu= -m"-fi-for flag_prefix in $flag_prefixes; do- for arch in $ax_gcc_arch; do- flag="$flag_prefix$arch"- as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$flag" | sed "$as_sed_sh"`-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $flag" >&5-printf %s "checking whether the C compiler accepts $flag... " >&6; }-if eval test \${$as_CACHEVAR+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS $flag $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- eval "$as_CACHEVAR=yes"-else case e in #(- e) eval "$as_CACHEVAR=no" ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-eval ac_res=\$$as_CACHEVAR- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-printf "%s\n" "$ac_res" >&6; }-if eval test \"x\$"$as_CACHEVAR"\" = x"yes"-then :- if test "x$ax_cv_c_compiler_vendor" = xclang; then- if test "x$acx_maxopt_portable" = xyes; then- if test "x$flag" = "x-march=$arch"; then flag=-mtune=$arch; fi- fi- fi; ax_cv_gcc_archflag=$flag; break-else case e in #(- e) : ;;-esac-fi-- done- test "x$ax_cv_gcc_archflag" = xunknown || break-done-fi--fi # $GCC=yes- ;;-esac-fi--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5-printf %s "checking for gcc architecture flag... " >&6; }-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_archflag" >&5-printf "%s\n" "$ax_cv_gcc_archflag" >&6; }-if test "x$ax_cv_gcc_archflag" = xunknown; then- :-else- CFLAGS="$CFLAGS $ax_cv_gcc_archflag"-fi-- ;;-- microsoft)- # default optimization flags for MSVC opt builds- CFLAGS="$CFLAGS -O2"- ;;- esac-- if test -z "$CFLAGS"; then- echo ""- echo "********************************************************"- echo "* WARNING: Don't know the best CFLAGS for this system *"- echo "* Use ./configure CFLAGS=... to specify your own flags *"- echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"- echo "********************************************************"- echo ""- CFLAGS="$CFLAGS -O3"- fi-- as_CACHEVAR=`printf "%s\n" "ax_cv_check_cflags__$CFLAGS" | sed "$as_sed_sh"`-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $CFLAGS" >&5-printf %s "checking whether the C compiler accepts $CFLAGS... " >&6; }-if eval test \${$as_CACHEVAR+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS $CFLAGS $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- eval "$as_CACHEVAR=yes"-else case e in #(- e) eval "$as_CACHEVAR=no" ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-eval ac_res=\$$as_CACHEVAR- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5-printf "%s\n" "$ac_res" >&6; }-if eval test \"x\$"$as_CACHEVAR"\" = x"yes"-then :- :-else case e in #(- e)- echo ""- echo "********************************************************"- echo "* WARNING: The guessed CFLAGS don't seem to work with *"- echo "* your compiler. *"- echo "* Use ./configure CFLAGS=... to specify your own flags *"- echo "********************************************************"- echo ""- ;;-esac-fi---fi--# The AX_CFLAGS_WARN_ALL macro doesn't currently work for sunpro-# compiler.-if test "$ax_cv_c_compiler_vendor" != "sun"; then- ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu------ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking CFLAGS for most reasonable warnings" >&5-printf %s "checking CFLAGS for most reasonable warnings... " >&6; }-if test ${ac_cv_cflags_warn_all+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ac_cv_cflags_warn_all=""- ac_save_cflags_warn_all_found="yes"- case "$ax_cv_c_compiler_vendor" in #(- intel) :- ac_cv_cflags_warn_all="-w2" ;; #(- ibm) :- ac_cv_cflags_warn_all="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" ;; #(- pathscale) :- ;; #(- clang) :- ac_cv_cflags_warn_all="-Wall" ;; #(- cray) :- ac_cv_cflags_warn_all="-h msglevel 2" ;; #(- fujitsu) :- ;; #(- sdcc) :- ;; #(- sx) :- ac_cv_cflags_warn_all="-pvctl,fullmsg" ;; #(- portland) :- ;; #(- gnu) :- ac_cv_cflags_warn_all="-Wall" ;; #(- sun) :- ac_cv_cflags_warn_all="-v" ;; #(- hp) :- ac_cv_cflags_warn_all="+w1" ;; #(- dec) :- ac_cv_cflags_warn_all="-verbose -w0 -warnprotos" ;; #(- borland) :- ;; #(- comeau) :- ;; #(- kai) :- ;; #(- lcc) :- ;; #(- sgi) :- ac_cv_cflags_warn_all="-fullwarn" ;; #(- microsoft) :- ;; #(- metrowerks) :- ;; #(- watcom) :- ;; #(- tcc) :- ;; #(- unknown) :-- ac_cv_cflags_warn_all=""- ac_save_cflags_warn_all_found="no"- ;; #(- *) :-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Unknown compiler vendor returned by AX_COMPILER_VENDOR" >&5-printf "%s\n" "$as_me: WARNING: Unknown compiler vendor returned by AX_COMPILER_VENDOR" >&2;}- ac_cv_cflags_warn_all=""- ac_save_cflags_warn_all_found="no"-- ;;-esac-- if test "x$ac_save_cflags_warn_all_found" = "xyes"-then :- if test "x$ac_cv_cflags_warn_all" != "x"-then :--if test ${CFLAGS+y}-then :-- case " $CFLAGS " in #(- *" $ac_cv_cflags_warn_all "*) :- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$ac_cv_cflags_warn_all"; } >&5- (: CFLAGS already contains $ac_cv_cflags_warn_all) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } ;; #(- *) :-- CFLAGS="$ac_cv_cflags_warn_all $CFLAGS"- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5- (: CFLAGS="$CFLAGS") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- ;;-esac--else case e in #(- e)- CFLAGS=$ac_cv_cflags_warn_all- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5- (: CFLAGS="$CFLAGS") 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }- ;;-esac-fi--fi--else case e in #(- e) true- ;;-esac-fi ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5-printf "%s\n" "$ac_cv_cflags_warn_all" >&6; }-- ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---fi--if test "x$GCC" = "xyes"; then- CFLAGS="$CFLAGS -fexceptions"-fi--cat > local.exp <<EOF-set CC_FOR_TARGET "$CC"-set CXX_FOR_TARGET "$CXX"-set compiler_vendor "$ax_cv_c_compiler_vendor"-EOF---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5-printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }- # Check whether --enable-maintainer-mode was given.-if test ${enable_maintainer_mode+y}-then :- enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval-else case e in #(- e) USE_MAINTAINER_MODE=no ;;-esac-fi-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5-printf "%s\n" "$USE_MAINTAINER_MODE" >&6; }- if test $USE_MAINTAINER_MODE = yes; then- MAINTAINER_MODE_TRUE=- MAINTAINER_MODE_FALSE='#'-else- MAINTAINER_MODE_TRUE='#'- MAINTAINER_MODE_FALSE=-fi-- MAINT=$MAINTAINER_MODE_TRUE----ac_fn_c_check_header_compile "$LINENO" "sys/memfd.h" "ac_cv_header_sys_memfd_h" "$ac_includes_default"-if test "x$ac_cv_header_sys_memfd_h" = xyes-then :- printf "%s\n" "#define HAVE_SYS_MEMFD_H 1" >>confdefs.h--fi--ac_fn_c_check_func "$LINENO" "memfd_create" "ac_cv_func_memfd_create"-if test "x$ac_cv_func_memfd_create" = xyes-then :- printf "%s\n" "#define HAVE_MEMFD_CREATE 1" >>confdefs.h--fi---HAVE_LONG_DOUBLE_VARIANT=0--. ${srcdir}/configure.host--if test -n "${UNSUPPORTED}"; then- as_fn_error $? "\"libffi has not been ported to $host.\"" "$LINENO" 5-fi------ac_fn_c_check_func "$LINENO" "memcpy" "ac_cv_func_memcpy"-if test "x$ac_cv_func_memcpy" = xyes-then :- printf "%s\n" "#define HAVE_MEMCPY 1" >>confdefs.h--fi--ac_fn_c_check_header_compile "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "$ac_includes_default"-if test "x$ac_cv_header_alloca_h" = xyes-then :- printf "%s\n" "#define HAVE_ALLOCA_H 1" >>confdefs.h--fi---# The cast to long int works around a bug in the HP C Compiler-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.-# This bug is HP SR number 8606223364.-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of double" >&5-printf %s "checking size of double... " >&6; }-if test ${ac_cv_sizeof_double+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"-then :--else case e in #(- e) if test "$ac_cv_type_double" = yes; then- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error 77 "cannot compute sizeof (double)-See 'config.log' for more details" "$LINENO" 5; }- else- ac_cv_sizeof_double=0- fi ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5-printf "%s\n" "$ac_cv_sizeof_double" >&6; }----printf "%s\n" "#define SIZEOF_DOUBLE $ac_cv_sizeof_double" >>confdefs.h---# The cast to long int works around a bug in the HP C Compiler-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects-# declarations like 'int a3[[(sizeof (unsigned char)) >= 0]];'.-# This bug is HP SR number 8606223364.-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5-printf %s "checking size of long double... " >&6; }-if test ${ac_cv_sizeof_long_double+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"-then :--else case e in #(- e) if test "$ac_cv_type_long_double" = yes; then- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error 77 "cannot compute sizeof (long double)-See 'config.log' for more details" "$LINENO" 5; }- else- ac_cv_sizeof_long_double=0- fi ;;-esac-fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5-printf "%s\n" "$ac_cv_sizeof_long_double" >&6; }----printf "%s\n" "#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double" >>confdefs.h----# Also AC_SUBST this variable for ffi.h.-if test -z "$HAVE_LONG_DOUBLE"; then- HAVE_LONG_DOUBLE=0- if test $ac_cv_sizeof_long_double != 0; then- if test $HAVE_LONG_DOUBLE_VARIANT != 0; then--printf "%s\n" "#define HAVE_LONG_DOUBLE_VARIANT 1" >>confdefs.h-- HAVE_LONG_DOUBLE=1- else- if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then- HAVE_LONG_DOUBLE=1--printf "%s\n" "#define HAVE_LONG_DOUBLE 1" >>confdefs.h-- fi- fi- fi-fi---- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5-printf %s "checking whether byte ordering is bigendian... " >&6; }-if test ${ac_cv_c_bigendian+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_cv_c_bigendian=unknown- # See if we're dealing with a universal compiler.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#ifndef __APPLE_CC__- not a universal capable compiler- #endif- typedef int dummy;--_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :-- # Check for potential -arch flags. It is not universal unless- # there are at least two -arch flags with different values.- ac_arch=- ac_prev=- for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do- if test -n "$ac_prev"; then- case $ac_word in- i?86 | x86_64 | ppc | ppc64)- if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then- ac_arch=$ac_word- else- ac_cv_c_bigendian=universal- break- fi- ;;- esac- ac_prev=- elif test "x$ac_word" = "x-arch"; then- ac_prev=arch- fi- done-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- if test $ac_cv_c_bigendian = unknown; then- # See if sys/param.h defines the BYTE_ORDER macro.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <sys/types.h>- #include <sys/param.h>--int-main (void)-{-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \\- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \\- && LITTLE_ENDIAN)- bogus endian macros- #endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- # It does; now see whether it defined to BIG_ENDIAN or not.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <sys/types.h>- #include <sys/param.h>--int-main (void)-{-#if BYTE_ORDER != BIG_ENDIAN- not big endian- #endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_c_bigendian=yes-else case e in #(- e) ac_cv_c_bigendian=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- fi- if test $ac_cv_c_bigendian = unknown; then- # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <limits.h>--int-main (void)-{-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)- bogus endian macros- #endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- # It does; now see whether it defined to _BIG_ENDIAN or not.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-#include <limits.h>--int-main (void)-{-#ifndef _BIG_ENDIAN- not big endian- #endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ac_cv_c_bigendian=yes-else case e in #(- e) ac_cv_c_bigendian=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- fi- if test $ac_cv_c_bigendian = unknown; then- # Compile a test program.- if test "$cross_compiling" = yes-then :- # Try to guess by grepping values from an object file.- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-unsigned short int ascii_mm[] =- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };- unsigned short int ascii_ii[] =- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };- int use_ascii (int i) {- return ascii_mm[i] + ascii_ii[i];- }- unsigned short int ebcdic_ii[] =- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };- unsigned short int ebcdic_mm[] =- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };- int use_ebcdic (int i) {- return ebcdic_mm[i] + ebcdic_ii[i];- }- int- main (int argc, char **argv)- {- /* Intimidate the compiler so that it does not- optimize the arrays away. */- char *p = argv[0];- ascii_mm[1] = *p++; ebcdic_mm[1] = *p++;- ascii_ii[1] = *p++; ebcdic_ii[1] = *p++;- return use_ascii (argc) == use_ebcdic (*p);- }-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- if grep BIGenDianSyS conftest$ac_exeext >/dev/null; then- ac_cv_c_bigendian=yes- fi- if grep LiTTleEnDian conftest$ac_exeext >/dev/null ; then- if test "$ac_cv_c_bigendian" = unknown; then- ac_cv_c_bigendian=no- else- # finding both strings is unlikely to happen, but who knows?- ac_cv_c_bigendian=unknown- fi- fi-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-$ac_includes_default-int-main (void)-{-- /* Are we little or big endian? From Harbison&Steele. */- union- {- long int l;- char c[sizeof (long int)];- } u;- u.l = 1;- return u.c[sizeof (long int) - 1] == 1;-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- ac_cv_c_bigendian=no-else case e in #(- e) ac_cv_c_bigendian=yes ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-- fi ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5-printf "%s\n" "$ac_cv_c_bigendian" >&6; }- case $ac_cv_c_bigendian in #(- yes)- printf "%s\n" "#define WORDS_BIGENDIAN 1" >>confdefs.h-;; #(- no)- ;; #(- universal)--printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h-- ;; #(- *)- as_fn_error $? "unknown endianness- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;- esac---- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5-printf %s "checking assembler .cfi pseudo-op support... " >&6; }-if test ${gcc_cv_as_cfi_pseudo_op+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-- #ifdef _MSC_VER- Nope.- #endif- int foo (void)- {- __asm__ (".cfi_remember_state\n\t"- ".cfi_restore_state\n\t");- return 0;- }--_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- gcc_cv_as_cfi_pseudo_op=yes-else case e in #(- e) gcc_cv_as_cfi_pseudo_op=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_pseudo_op" >&5-printf "%s\n" "$gcc_cv_as_cfi_pseudo_op" >&6; }-- if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then--printf "%s\n" "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h-- fi-----case "$TARGET" in- SPARC)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5-printf %s "checking assembler and linker support unaligned pc related relocs... " >&6; }-if test ${libffi_cv_as_sparc_ua_pcrel+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- save_CFLAGS="$CFLAGS"- save_LDFLAGS="$LDFLAGS"- CFLAGS="$CFLAGS -fpic"- LDFLAGS="$LDFLAGS -shared"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");-int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- libffi_cv_as_sparc_ua_pcrel=yes-else case e in #(- e) libffi_cv_as_sparc_ua_pcrel=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- CFLAGS="$save_CFLAGS"- LDFLAGS="$save_LDFLAGS" ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_sparc_ua_pcrel" >&5-printf "%s\n" "$libffi_cv_as_sparc_ua_pcrel" >&6; }- if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then--printf "%s\n" "#define HAVE_AS_SPARC_UA_PCREL 1" >>confdefs.h-- fi-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler .register pseudo-op support" >&5-printf %s "checking assembler .register pseudo-op support... " >&6; }-if test ${libffi_cv_as_register_pseudo_op+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- libffi_cv_as_register_pseudo_op=unknown- # Check if we have .register- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-asm (".register %g2, #scratch");- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- libffi_cv_as_register_pseudo_op=yes-else case e in #(- e) libffi_cv_as_register_pseudo_op=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_register_pseudo_op" >&5-printf "%s\n" "$libffi_cv_as_register_pseudo_op" >&6; }- if test "x$libffi_cv_as_register_pseudo_op" = xyes; then--printf "%s\n" "#define HAVE_AS_REGISTER_PSEUDO_OP 1" >>confdefs.h-- fi- ;;-- X86*)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking assembler supports pc related relocs" >&5-printf %s "checking assembler supports pc related relocs... " >&6; }-if test ${libffi_cv_as_x86_pcrel+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- libffi_cv_as_x86_pcrel=no- echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s- if $CC $CFLAGS -c conftest.s > /dev/null 2>&1; then- libffi_cv_as_x86_pcrel=yes- fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_x86_pcrel" >&5-printf "%s\n" "$libffi_cv_as_x86_pcrel" >&6; }- if test "x$libffi_cv_as_x86_pcrel" = xyes; then--printf "%s\n" "#define HAVE_AS_X86_PCREL 1" >>confdefs.h-- fi- ;;-- S390)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler uses zarch features" >&5-printf %s "checking compiler uses zarch features... " >&6; }-if test ${libffi_cv_as_s390_zarch+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- libffi_cv_as_s390_zarch=no- echo 'void foo(void) { bar(); bar(); }' > conftest.c- if $CC $CFLAGS -S conftest.c > /dev/null 2>&1; then- if $GREP -q brasl conftest.s; then- libffi_cv_as_s390_zarch=yes- fi- fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_s390_zarch" >&5-printf "%s\n" "$libffi_cv_as_s390_zarch" >&6; }- if test "x$libffi_cv_as_s390_zarch" = xyes; then--printf "%s\n" "#define HAVE_AS_S390_ZARCH 1" >>confdefs.h-- fi- ;;- wasm64)- if test -z "$WASM64_MEMORY64"; then- WASM64_MEMORY64=1- fi- CFLAGS="$CFLAGS -sMEMORY64=$WASM64_MEMORY64"- ;;-esac--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether compiler supports pointer authentication" >&5-printf %s "checking whether compiler supports pointer authentication... " >&6; }-if test ${libffi_cv_as_ptrauth+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- libffi_cv_as_ptrauth=unknown- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{--#ifdef __clang__-# if __has_feature(ptrauth_calls)-# define HAVE_ARM64E_PTRAUTH 1-# endif-#endif--#ifndef HAVE_ARM64E_PTRAUTH-# error Pointer authentication not supported-#endif-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- libffi_cv_as_ptrauth=yes-else case e in #(- e) libffi_cv_as_ptrauth=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_ptrauth" >&5-printf "%s\n" "$libffi_cv_as_ptrauth" >&6; }-if test "x$libffi_cv_as_ptrauth" = xyes; then--printf "%s\n" "#define HAVE_ARM64E_PTRAUTH 1" >>confdefs.h--fi--# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC;-# if EMUTRAMP is active too ffi could try mapping without PROT_EXEC,-# but the kernel needs to recognize the trampoline generated by ffi.-# Otherwise fallback to double mmap trick.-# Check whether --enable-pax_emutramp was given.-if test ${enable_pax_emutramp+y}-then :- enableval=$enable_pax_emutramp; if test "$enable_pax_emutramp" = "yes"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: EMUTRAMP is experimental only. Use --enable-pax_emutramp=experimental to enforce." >&5-printf "%s\n" "$as_me: WARNING: EMUTRAMP is experimental only. Use --enable-pax_emutramp=experimental to enforce." >&2;}- elif test "$enable_pax_emutramp" = "experimental"; then--printf "%s\n" "#define FFI_MMAP_EXEC_EMUTRAMP_PAX 1" >>confdefs.h-- fi-fi---{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _ prefix in compiled symbols" >&5-printf %s "checking for _ prefix in compiled symbols... " >&6; }-if test ${lt_cv_sys_symbol_underscore+y}-then :- printf %s "(cached) " >&6-else case e in #(- e) lt_cv_sys_symbol_underscore=no- cat > conftest.$ac_ext <<_LT_EOF-void nm_test_func(){}-int main(void){nm_test_func;return 0;}-_LT_EOF- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5- (eval $ac_compile) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; then- # Now try to grab the symbols.- ac_nlist=conftest.nm- if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\""; } >&5- (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; } && test -s "$ac_nlist"; then- # See whether the symbols have a leading underscore.- if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then- lt_cv_sys_symbol_underscore=yes- else- if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then- :- else- echo "configure: cannot find nm_test_func in $ac_nlist" >&5- fi- fi- else- echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5- fi- else- echo "configure: failed program was:" >&5- cat conftest.c >&5- fi- rm -rf conftest*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_symbol_underscore" >&5-printf "%s\n" "$lt_cv_sys_symbol_underscore" >&6; }- sys_symbol_underscore=$lt_cv_sys_symbol_underscore---if test "x$sys_symbol_underscore" = xyes; then--printf "%s\n" "#define SYMBOL_UNDERSCORE 1" >>confdefs.h--fi--FFI_EXEC_TRAMPOLINE_TABLE=0-case "$target" in- *arm*-apple-* | aarch64-apple-*)- FFI_EXEC_TRAMPOLINE_TABLE=1--printf "%s\n" "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h-- ;;- *-apple-* | *-*-dragonfly* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*)--printf "%s\n" "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h-- ;;-esac- if test x$FFI_EXEC_TRAMPOLINE_TABLE = x1; then- FFI_EXEC_TRAMPOLINE_TABLE_TRUE=- FFI_EXEC_TRAMPOLINE_TABLE_FALSE='#'-else- FFI_EXEC_TRAMPOLINE_TABLE_TRUE='#'- FFI_EXEC_TRAMPOLINE_TABLE_FALSE=-fi----if test x$TARGET = xX86_64; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking toolchain supports unwind section type" >&5-printf %s "checking toolchain supports unwind section type... " >&6; }-if test ${libffi_cv_as_x86_64_unwind_section_type+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- cat > conftest1.s << EOF-.text-.globl foo-foo:-jmp bar-.section .eh_frame,"a",@unwind-bar:-EOF-- cat > conftest2.c << EOF-extern void foo();-int main(){foo();}-EOF-- libffi_cv_as_x86_64_unwind_section_type=no- # we ensure that we can compile _and_ link an assembly file containing an @unwind section- # since the compiler can support it and not the linker (ie old binutils)- if $CC -Wa,--fatal-warnings $CFLAGS -c conftest1.s > /dev/null 2>&1 && \- $CC conftest2.c conftest1.o > /dev/null 2>&1 ; then- libffi_cv_as_x86_64_unwind_section_type=yes- fi- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_x86_64_unwind_section_type" >&5-printf "%s\n" "$libffi_cv_as_x86_64_unwind_section_type" >&6; }- if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then--printf "%s\n" "#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1" >>confdefs.h-- fi-fi--if test "x$GCC" = "xyes"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-lto" >&5-printf %s "checking whether the C compiler accepts -fno-lto... " >&6; }-if test ${ax_cv_check_cflags___fno_lto+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- ax_check_save_flags=$CFLAGS- if test x"$GCC" = xyes ; then- add_gnu_werror="-Werror"- fi- CFLAGS="$CFLAGS -fno-lto $add_gnu_werror"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-- ;- return 0;-}-_ACEOF-if ac_fn_c_try_compile "$LINENO"-then :- ax_cv_check_cflags___fno_lto=yes-else case e in #(- e) ax_cv_check_cflags___fno_lto=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- CFLAGS=$ax_check_save_flags ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_lto" >&5-printf "%s\n" "$ax_cv_check_cflags___fno_lto" >&6; }-if test "x$ax_cv_check_cflags___fno_lto" = xyes-then :- libffi_cv_no_lto=-fno-lto-else case e in #(- e) : ;;-esac-fi--- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether .eh_frame section should be read-only" >&5-printf %s "checking whether .eh_frame section should be read-only... " >&6; }-if test ${libffi_cv_ro_eh_frame+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- libffi_cv_ro_eh_frame=yes- echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c- if $CC $CFLAGS -c -fpic -fexceptions $libffi_cv_no_lto -o conftest.o conftest.c > /dev/null 2>&1; then- if $READELF -WS conftest.o 2>/dev/null | $GREP -q -n 'eh_frame .* WA'; then- libffi_cv_ro_eh_frame=no- fi- fi- rm -f conftest.*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_ro_eh_frame" >&5-printf "%s\n" "$libffi_cv_ro_eh_frame" >&6; }- if test "x$libffi_cv_ro_eh_frame" = xyes; then--printf "%s\n" "#define HAVE_RO_EH_FRAME 1" >>confdefs.h---printf "%s\n" "#define EH_FRAME_FLAGS \"a\"" >>confdefs.h-- else--printf "%s\n" "#define EH_FRAME_FLAGS \"aw\"" >>confdefs.h-- fi-- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __attribute__((visibility(\"hidden\")))" >&5-printf %s "checking for __attribute__((visibility(\"hidden\")))... " >&6; }-if test ${libffi_cv_hidden_visibility_attribute+y}-then :- printf %s "(cached) " >&6-else case e in #(- e)- echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1 ; }' > conftest.c- libffi_cv_hidden_visibility_attribute=no- if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'- { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5- (eval $ac_try) 2>&5- ac_status=$?- printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5- test $ac_status = 0; }; }; then- if $EGREP '(\.hidden|\.private_extern).*foo|foo.*,hidden' conftest.s >/dev/null; then- libffi_cv_hidden_visibility_attribute=yes- fi- fi- rm -f conftest.*- ;;-esac-fi-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_hidden_visibility_attribute" >&5-printf "%s\n" "$libffi_cv_hidden_visibility_attribute" >&6; }- if test $libffi_cv_hidden_visibility_attribute = yes; then--printf "%s\n" "#define HAVE_HIDDEN_VISIBILITY_ATTRIBUTE 1" >>confdefs.h-- fi-fi------EXTRA_SOURCES=` printf " %s " "$SOURCES" | sed -E "s/ ([^ ]+)/src\/$TARGETDIR\/\1 /g" `--EXTRA_ASM_SOURCES=` printf " %s " "$ASM_SOURCES" | sed -E "s/ ([^ ]+)/src\/$TARGETDIR\/\1 /g" `---# Check whether --enable-debug was given.-if test ${enable_debug+y}-then :- enableval=$enable_debug; if test "$enable_debug" = "yes"; then--printf "%s\n" "#define FFI_DEBUG 1" >>confdefs.h-- fi-fi-- if test "$enable_debug" = "yes"; then- FFI_DEBUG_TRUE=- FFI_DEBUG_FALSE='#'-else- FFI_DEBUG_TRUE='#'- FFI_DEBUG_FALSE=-fi---# Check whether --enable-structs was given.-if test ${enable_structs+y}-then :- enableval=$enable_structs; if test "$enable_structs" = "no"; then--printf "%s\n" "#define FFI_NO_STRUCTS 1" >>confdefs.h-- fi-fi-- if test "$enable_debug" = "yes"; then- FFI_DEBUG_TRUE=- FFI_DEBUG_FALSE='#'-else- FFI_DEBUG_TRUE='#'- FFI_DEBUG_FALSE=-fi---# Check whether --enable-raw-api was given.-if test ${enable_raw_api+y}-then :- enableval=$enable_raw_api; if test "$enable_raw_api" = "no"; then--printf "%s\n" "#define FFI_NO_RAW_API 1" >>confdefs.h-- fi-fi---# Check whether --enable-exec-static-tramp was given.-if test ${enable_exec_static_tramp+y}-then :- enableval=$enable_exec_static_tramp;-fi---if test "$enable_exec_static_tramp" != no; then-case "$target" in- *-cygwin* | *-msys*)- # Only define static trampolines if we are using the cygwin runtime.- # Will this need to be changed for mingw?- if test "x$GCC" = "xyes"; then--printf "%s\n" "#define FFI_EXEC_STATIC_TRAMP 1" >>confdefs.h-- fi- ;;- *arm*-*-linux-* | aarch64*-*-linux-* | i*86-*-linux-* | x86_64-*-linux-* \- | loongarch*-*-linux-* | s390x*-linux-* | powerpc*-linux-*)--printf "%s\n" "#define FFI_EXEC_STATIC_TRAMP 1" >>confdefs.h-- ;;-esac-fi--# Check whether --enable-purify-safety was given.-if test ${enable_purify_safety+y}-then :- enableval=$enable_purify_safety; if test "$enable_purify_safety" = "yes"; then--printf "%s\n" "#define USING_PURIFY 1" >>confdefs.h-- fi-fi---# Check linker support.-- # If we're not using GNU ld, then there's no point in even trying these- # tests. Check for that first. We should have already tested for gld- # by now (in libtool), but require it now just to be safe...- test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''- test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''---- # The name set by libtool depends on the version of libtool. Shame on us- # for depending on an impl detail, but c'est la vie. Older versions used- # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on- # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually- # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't- # set (hence we're using an older libtool), then set it.- if test x${with_gnu_ld+set} != xset; then- if test x${ac_cv_prog_gnu_ld+set} != xset; then- # We got through "ac_require(ac_prog_ld)" and still not set? Huh?- with_gnu_ld=no- else- with_gnu_ld=$ac_cv_prog_gnu_ld- fi- fi-- # Start by getting the version number. I think the libtool test already- # does some of this, but throws away the result.- libat_ld_is_gold=no- if $LD --version 2>/dev/null | grep 'GNU gold'> /dev/null 2>&1; then- libat_ld_is_gold=yes- fi- libat_ld_is_lld=no- if $LD --version 2>/dev/null | grep 'LLD '> /dev/null 2>&1; then- libat_ld_is_lld=yes- fi- libat_ld_is_mold=no- if $LD --version 2>/dev/null | grep 'mold '> /dev/null 2>&1; then- libat_ld_is_mold=yes- fi-- ldver=`$LD --version 2>/dev/null |- sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`-- libat_gnu_ld_version=`echo $ldver | \- $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`-- # Set --gc-sections.- if test "$with_gnu_ld" = "notbroken"; then- # GNU ld it is! Joy and bunny rabbits!-- # All these tests are for C++; save the language and the compiler flags.- # Need to do this so that g++ won't try to link in libstdc++- ac_test_CFLAGS="${CFLAGS+set}"- ac_save_CFLAGS="$CFLAGS"- CFLAGS='-x c++ -Wl,--gc-sections'-- # Check for -Wl,--gc-sections- # XXX This test is broken at the moment, as symbols required for linking- # are now in libsupc++ (not built yet). In addition, this test has- # cored on solaris in the past. In addition, --gc-sections doesn't- # really work at the moment (keeps on discarding used sections, first- # .eh_frame and now some of the glibc sections for iconv).- # Bzzzzt. Thanks for playing, maybe next time.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5-printf %s "checking for ld that supports -Wl,--gc-sections... " >&6; }- if test "$cross_compiling" = yes-then :- ac_sectionLDflags=yes-else case e in #(- e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */-- int main(void)- {- try { throw 1; }- catch (...) { };- return 0;- }--_ACEOF-if ac_fn_c_try_run "$LINENO"-then :- ac_sectionLDflags=yes-else case e in #(- e) ac_sectionLDflags=no ;;-esac-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \- conftest.$ac_objext conftest.beam conftest.$ac_ext ;;-esac-fi-- if test "$ac_test_CFLAGS" = set; then- CFLAGS="$ac_save_CFLAGS"- else- # this is the suspicious part- CFLAGS=''- fi- if test "$ac_sectionLDflags" = "yes"; then- SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"- fi- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_sectionLDflags" >&5-printf "%s\n" "$ac_sectionLDflags" >&6; }- fi-- # Set linker optimization flags.- if test x"$with_gnu_ld" = x"yes"; then- OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"- fi------- # Check whether --enable-symvers was given.-if test ${enable_symvers+y}-then :- enableval=$enable_symvers;- case "$enableval" in- yes|no|gnu*|sun) ;;- *) as_fn_error $? "Unknown argument to enable/disable symvers" "$LINENO" 5 ;;- esac--else case e in #(- e) enable_symvers=yes ;;-esac-fi----# If we never went through the LIBFFI_CHECK_LINKER_FEATURES macro, then we-# don't know enough about $LD to do tricks...---# Turn a 'yes' into a suitable default.-if test x$enable_symvers = xyes ; then- # FIXME The following test is too strict, in theory.- if test $enable_shared = no || test "x$LD" = x; then- enable_symvers=no- else- if test $with_gnu_ld = yes ; then- enable_symvers=gnu- else- case ${target_os} in- # Sun symbol versioning exists since Solaris 2.5.- solaris2.[5-9]* | solaris2.1[0-9]*)- enable_symvers=sun ;;- *)- enable_symvers=no ;;- esac- fi- fi-fi--# Check if 'sun' was requested on non-Solaris 2 platforms.-if test x$enable_symvers = xsun ; then- case ${target_os} in- solaris2*)- # All fine.- ;;- *)- # Unlikely to work.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested Sun symbol versioning, but" >&5-printf "%s\n" "$as_me: WARNING: === You have requested Sun symbol versioning, but" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === you are not targetting Solaris 2." >&5-printf "%s\n" "$as_me: WARNING: === you are not targetting Solaris 2." >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5-printf "%s\n" "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}- enable_symvers=no- ;;- esac-fi--# Check to see if libgcc_s exists, indicating that shared libgcc is possible.-if test $enable_symvers != no; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared libgcc" >&5-printf %s "checking for shared libgcc... " >&6; }- ac_save_CFLAGS="$CFLAGS"- CFLAGS=' -lgcc_s'- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-return 0;- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- libat_shared_libgcc=yes-else case e in #(- e) libat_shared_libgcc=no ;;-esac-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- CFLAGS="$ac_save_CFLAGS"- if test $libat_shared_libgcc = no; then- cat > conftest.c <<EOF-int main (void) { return 0; }-EOF- libat_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \- -shared -shared-libgcc -o conftest.so \- conftest.c -v 2>&1 >/dev/null \- | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`- rm -f conftest.c conftest.so- if test x${libat_libgcc_s_suffix+set} = xset; then- CFLAGS=" -lgcc_s$libat_libgcc_s_suffix"- cat confdefs.h - <<_ACEOF >conftest.$ac_ext-/* end confdefs.h. */--int-main (void)-{-return 0;- ;- return 0;-}-_ACEOF-if ac_fn_c_try_link "$LINENO"-then :- libat_shared_libgcc=yes-fi-rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext- CFLAGS="$ac_save_CFLAGS"- fi- fi- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libat_shared_libgcc" >&5-printf "%s\n" "$libat_shared_libgcc" >&6; }-fi--# For GNU ld, we need at least this version. The format is described in-# LIBFFI_CHECK_LINKER_FEATURES above.-libat_min_gnu_ld_version=21400-# XXXXXXXXXXX libat_gnu_ld_version=21390--# Check to see if unspecified "yes" value can win, given results above.-# Change "yes" into either "no" or a style name.-if test $enable_symvers != no && test $libat_shared_libgcc = yes; then- if test $with_gnu_ld = yes; then- if test $libat_gnu_ld_version -ge $libat_min_gnu_ld_version ; then- enable_symvers=gnu- elif test $libat_ld_is_gold = yes ; then- enable_symvers=gnu- elif test $libat_ld_is_lld = yes ; then- enable_symvers=gnu- elif test $libat_ld_is_mold = yes ; then- enable_symvers=gnu- else- # The right tools, the right setup, but too old. Fallbacks?- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === Linker version $libat_gnu_ld_version is too old for" >&5-printf "%s\n" "$as_me: WARNING: === Linker version $libat_gnu_ld_version is too old for" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === full symbol versioning support in this release of GCC." >&5-printf "%s\n" "$as_me: WARNING: === full symbol versioning support in this release of GCC." >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === You would need to upgrade your binutils to version" >&5-printf "%s\n" "$as_me: WARNING: === You would need to upgrade your binutils to version" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === $libat_min_gnu_ld_version or later and rebuild GCC." >&5-printf "%s\n" "$as_me: WARNING: === $libat_min_gnu_ld_version or later and rebuild GCC." >&2;}- if test $libat_gnu_ld_version -ge 21200 ; then- # Globbing fix is present, proper block support is not.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5-printf "%s\n" "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}- enable_symvers=no- else- # 2.11 or older.- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5-printf "%s\n" "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}- enable_symvers=no- fi- fi- elif test $enable_symvers = sun; then- : All interesting versions of Sun ld support sun style symbol versioning.- else- # just fail for now- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested some kind of symbol versioning, but" >&5-printf "%s\n" "$as_me: WARNING: === You have requested some kind of symbol versioning, but" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === either you are not using a supported linker, or you are" >&5-printf "%s\n" "$as_me: WARNING: === either you are not using a supported linker, or you are" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === not building a shared libgcc_s (which is required)." >&5-printf "%s\n" "$as_me: WARNING: === not building a shared libgcc_s (which is required)." >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5-printf "%s\n" "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}- enable_symvers=no- fi-fi-if test $enable_symvers = gnu; then--printf "%s\n" "#define LIBFFI_GNU_SYMBOL_VERSIONING 1" >>confdefs.h--fi-- if test $enable_symvers != no; then- LIBFFI_BUILD_VERSIONED_SHLIB_TRUE=- LIBFFI_BUILD_VERSIONED_SHLIB_FALSE='#'-else- LIBFFI_BUILD_VERSIONED_SHLIB_TRUE='#'- LIBFFI_BUILD_VERSIONED_SHLIB_FALSE=-fi-- if test $enable_symvers = gnu; then- LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE=- LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE='#'-else- LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE='#'- LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE=-fi-- if test $enable_symvers = sun; then- LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE=- LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE='#'-else- LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE='#'- LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE=-fi--{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: versioning on shared library symbols is $enable_symvers" >&5-printf "%s\n" "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}---ac_config_files="$ac_config_files include/ffi.h"---EXTRA_LIBS=` printf " %s " "$LIBS" | sed -E 's/ -l([^ ]*)/\1 /g' `--ac_config_files="$ac_config_files libffi-clib.buildinfo"---cat >confcache <<\_ACEOF-# This file is a shell script that caches the results of configure-# tests run on this system so they can be shared between configure-# scripts and configure runs, see configure's option --config-cache.-# It is not useful on other systems. If it contains results you don't-# want to keep, you may remove or edit it.-#-# config.status only pays attention to the cache file if you give it-# the --recheck option to rerun configure.-#-# 'ac_cv_env_foo' variables (set or unset) will be overridden when-# loading this file, other *unset* 'ac_cv_foo' will be assigned the-# following values.--_ACEOF--# The following way of writing the cache mishandles newlines in values,-# but we know of no workaround that is simple, portable, and efficient.-# So, we kill variables containing newlines.-# Ultrix sh set writes to stderr and can't be redirected directly,-# and sets the high bit in the cache file unless we assign to the vars.-(- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do- eval ac_val=\$$ac_var- case $ac_val in #(- *${as_nl}*)- case $ac_var in #(- *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5-printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;- esac- case $ac_var in #(- _ | IFS | as_nl) ;; #(- BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(- *) { eval $ac_var=; unset $ac_var;} ;;- esac ;;- esac- done-- (set) 2>&1 |- case $as_nl`(ac_space=' '; set) 2>&1` in #(- *${as_nl}ac_space=\ *)- # 'set' does not quote correctly, so add quotes: double-quote- # substitution turns \\\\ into \\, and sed turns \\ into \.- sed -n \- "s/'/'\\\\''/g;- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"- ;; #(- *)- # 'set' quotes correctly as required by POSIX, so do not add quotes.- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"- ;;- esac |- sort-) |- sed '- /^ac_cv_env_/b end- t clear- :clear- s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/- t end- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/- :end' >>confcache-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else- if test -w "$cache_file"; then- if test "x$cache_file" != "x/dev/null"; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5-printf "%s\n" "$as_me: updating cache $cache_file" >&6;}- if test ! -f "$cache_file" || test -h "$cache_file"; then- cat confcache >"$cache_file"- else- case $cache_file in #(- */* | ?:*)- mv -f confcache "$cache_file"$$ &&- mv -f "$cache_file"$$ "$cache_file" ;; #(- *)- mv -f confcache "$cache_file" ;;- esac- fi- fi- else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5-printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}- fi-fi-rm -f confcache--test "x$prefix" = xNONE && prefix=$ac_default_prefix-# Let make expand exec_prefix.-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'--DEFS=-DHAVE_CONFIG_H--ac_libobjs=-ac_ltlibobjs=-U=-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue- # 1. Remove the extension, and $U if already installed.- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'- ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR- # will be set to the directory where LIBOBJS objects are built.- as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"- as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'-done-LIBOBJS=$ac_libobjs--LTLIBOBJS=$ac_ltlibobjs---if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then- as_fn_error $? "conditional \"AMDEP\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then- as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then- as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi--if test -z "${FFI_EXEC_TRAMPOLINE_TABLE_TRUE}" && test -z "${FFI_EXEC_TRAMPOLINE_TABLE_FALSE}"; then- as_fn_error $? "conditional \"FFI_EXEC_TRAMPOLINE_TABLE\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then- as_fn_error $? "conditional \"FFI_DEBUG\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then- as_fn_error $? "conditional \"FFI_DEBUG\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_TRUE}" && test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_FALSE}"; then- as_fn_error $? "conditional \"LIBFFI_BUILD_VERSIONED_SHLIB\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE}" && test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE}"; then- as_fn_error $? "conditional \"LIBFFI_BUILD_VERSIONED_SHLIB_GNU\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi-if test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE}" && test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE}"; then- as_fn_error $? "conditional \"LIBFFI_BUILD_VERSIONED_SHLIB_SUN\" was never defined.-Usually this means the macro was only invoked conditionally." "$LINENO" 5-fi--: "${CONFIG_STATUS=./config.status}"-ac_write_fail=0-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files $CONFIG_STATUS"-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5-printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}-as_write_fail=0-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1-#! $SHELL-# Generated by $as_me.-# Run this file to recreate the current configuration.-# Compiler output produced by configure, useful for debugging-# configure, is in config.log if it exists.--debug=false-ac_cs_recheck=false-ac_cs_silent=false--SHELL=\${CONFIG_SHELL-$SHELL}-export SHELL-_ASEOF-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1-## -------------------- ##-## M4sh Initialization. ##-## -------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1-then :- emulate sh- NULLCMD=:- # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which- # is contrary to our usage. Disable this feature.- alias -g '${1+"$@"}'='"$@"'- setopt NO_GLOB_SUBST-else case e in #(- e) case `(set -o) 2>/dev/null` in #(- *posix*) :- set -o posix ;; #(- *) :- ;;-esac ;;-esac-fi----# Reset variables that may have inherited troublesome values from-# the environment.--# IFS needs to be set, to space, tab, and newline, in precisely that order.-# (If _AS_PATH_WALK were called with IFS unset, it would have the-# side effect of setting IFS to empty, thus disabling word splitting.)-# Quoting is to prevent editors from complaining about space-tab.-as_nl='-'-export as_nl-IFS=" "" $as_nl"--PS1='$ '-PS2='> '-PS4='+ '--# Ensure predictable behavior from utilities with locale-dependent output.-LC_ALL=C-export LC_ALL-LANGUAGE=C-export LANGUAGE--# We cannot yet rely on "unset" to work, but we need these variables-# to be unset--not just set to an empty or harmless value--now, to-# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct-# also avoids known problems related to "unset" and subshell syntax-# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).-for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH-do eval test \${$as_var+y} \- && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :-done--# Ensure that fds 0, 1, and 2 are open.-if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi-if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi-if (exec 3>&2) ; then :; else exec 2>/dev/null; fi--# The user is always right.-if ${PATH_SEPARATOR+false} :; then- PATH_SEPARATOR=:- (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {- (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||- PATH_SEPARATOR=';'- }-fi---# Find who we are. Look in the path if we contain no directory separator.-as_myself=-case $0 in #((- *[\\/]* ) as_myself=$0 ;;- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- case $as_dir in #(((- '') as_dir=./ ;;- */) ;;- *) as_dir=$as_dir/ ;;- esac- test -r "$as_dir$0" && as_myself=$as_dir$0 && break- done-IFS=$as_save_IFS-- ;;-esac-# We did not find ourselves, most probably we were run as 'sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then- as_myself=$0-fi-if test ! -f "$as_myself"; then- printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2- exit 1-fi----# as_fn_error STATUS ERROR [LINENO LOG_FD]-# -----------------------------------------# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the-# script with STATUS, using 1 if that was 0.-as_fn_error ()-{- as_status=$1; test $as_status -eq 0 && as_status=1- if test "$4"; then- as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack- printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4- fi- printf "%s\n" "$as_me: error: $2" >&2- as_fn_exit $as_status-} # as_fn_error---# as_fn_set_status STATUS-# ------------------------# Set $? to STATUS, without forking.-as_fn_set_status ()-{- return $1-} # as_fn_set_status--# as_fn_exit STATUS-# ------------------# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.-as_fn_exit ()-{- set +e- as_fn_set_status $1- exit $1-} # as_fn_exit--# as_fn_unset VAR-# ----------------# Portably unset VAR.-as_fn_unset ()-{- { eval $1=; unset $1;}-}-as_unset=as_fn_unset--# as_fn_append VAR VALUE-# -----------------------# Append the text in VALUE to the end of the definition contained in VAR. Take-# advantage of any shell optimizations that allow amortized linear growth over-# repeated appends, instead of the typical quadratic growth present in naive-# implementations.-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null-then :- eval 'as_fn_append ()- {- eval $1+=\$2- }'-else case e in #(- e) as_fn_append ()- {- eval $1=\$$1\$2- } ;;-esac-fi # as_fn_append--# as_fn_arith ARG...-# -------------------# Perform arithmetic evaluation on the ARGs, and store the result in the-# global $as_val. Take advantage of shells that can avoid forks. The arguments-# must be portable across $(()) and expr.-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null-then :- eval 'as_fn_arith ()- {- as_val=$(( $* ))- }'-else case e in #(- e) as_fn_arith ()- {- as_val=`expr "$@" || test $? -eq 1`- } ;;-esac-fi # as_fn_arith---if expr a : '\(a\)' >/dev/null 2>&1 &&- test "X`expr 00001 : '.*\(...\)'`" = X001; then- as_expr=expr-else- as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then- as_basename=basename-else- as_basename=false-fi--if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then- as_dirname=dirname-else- as_dirname=false-fi--as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \- X"$0" : 'X\(//\)$' \| \- X"$0" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X/"$0" |- sed '/^.*\/\([^/][^/]*\)\/*$/{- s//\1/- q- }- /^X\/\(\/\/\)$/{- s//\1/- q- }- /^X\/\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`--# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits---# Determine whether it's possible to make 'echo' print without a newline.-# These variables are no longer used directly by Autoconf, but are AC_SUBSTed-# for compatibility with existing Makefiles.-ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in #(((((--n*)- case `echo 'xy\c'` in- *c*) ECHO_T=' ';; # ECHO_T is single tab character.- xy) ECHO_C='\c';;- *) echo `echo ksh88 bug on AIX 6.1` > /dev/null- ECHO_T=' ';;- esac;;-*)- ECHO_N='-n';;-esac--# For backward compatibility with old third-party macros, we provide-# the shell variables $as_echo and $as_echo_n. New code should use-# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.-as_echo='printf %s\n'-as_echo_n='printf %s'--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then- rm -f conf$$.dir/conf$$.file-else- rm -f conf$$.dir- mkdir conf$$.dir 2>/dev/null-fi-if (echo >conf$$.file) 2>/dev/null; then- if ln -s conf$$.file conf$$ 2>/dev/null; then- as_ln_s='ln -s'- # ... but there are two gotchas:- # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.- # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.- # In both cases, we have to default to 'cp -pR'.- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||- as_ln_s='cp -pR'- elif ln conf$$.file conf$$ 2>/dev/null; then- as_ln_s=ln- else- as_ln_s='cp -pR'- fi-else- as_ln_s='cp -pR'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null---# as_fn_mkdir_p-# --------------# Create "$as_dir" as a directory, including parents if necessary.-as_fn_mkdir_p ()-{-- case $as_dir in #(- -*) as_dir=./$as_dir;;- esac- test -d "$as_dir" || eval $as_mkdir_p || {- as_dirs=- while :; do- case $as_dir in #(- *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(- *) as_qdir=$as_dir;;- esac- as_dirs="'$as_qdir' $as_dirs"- as_dir=`$as_dirname -- "$as_dir" ||-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$as_dir" : 'X\(//\)[^/]' \| \- X"$as_dir" : 'X\(//\)$' \| \- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X"$as_dir" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- test -d "$as_dir" && break- done- test -z "$as_dirs" || eval "mkdir $as_dirs"- } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"---} # as_fn_mkdir_p-if mkdir -p . 2>/dev/null; then- as_mkdir_p='mkdir -p "$as_dir"'-else- test -d ./-p && rmdir ./-p- as_mkdir_p=false-fi---# as_fn_executable_p FILE-# ------------------------# Test if FILE is an executable regular file.-as_fn_executable_p ()-{- test -f "$1" && test -x "$1"-} # as_fn_executable_p-as_test_x='test -x'-as_executable_p=as_fn_executable_p--# Sed expression to map a string onto a valid CPP name.-as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"-as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated--# Sed expression to map a string onto a valid variable name.-as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"-as_tr_sh="eval sed '$as_sed_sh'" # deprecated---exec 6>&1-## ----------------------------------- ##-## Main body of $CONFIG_STATUS script. ##-## ----------------------------------- ##-_ASEOF-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-# Save the log message, to keep $0 and so on meaningful, and to-# report actual input values of CONFIG_FILES etc. instead of their-# values after options handling.-ac_log="-This file was extended by libffi $as_me 3.5.2, which was-generated by GNU Autoconf 2.72. Invocation command line was-- CONFIG_FILES = $CONFIG_FILES- CONFIG_HEADERS = $CONFIG_HEADERS- CONFIG_LINKS = $CONFIG_LINKS- CONFIG_COMMANDS = $CONFIG_COMMANDS- $ $0 $@--on `(hostname || uname -n) 2>/dev/null | sed 1q`-"--_ACEOF--case $ac_config_files in *"-"*) set x $ac_config_files; shift; ac_config_files=$*;;-esac--case $ac_config_headers in *"-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;-esac---cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-# Files that config.status was made for.-config_files="$ac_config_files"-config_headers="$ac_config_headers"-config_commands="$ac_config_commands"--_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-ac_cs_usage="\-'$as_me' instantiates files and other configuration actions-from templates according to the current configuration. Unless the files-and actions are specified as TAGs, all are instantiated by default.--Usage: $0 [OPTION]... [TAG]...-- -h, --help print this help, then exit- -V, --version print version number and configuration settings, then exit- --config print configuration, then exit- -q, --quiet, --silent- do not print progress messages- -d, --debug don't remove temporary files- --recheck update $as_me by reconfiguring in the same conditions- --file=FILE[:TEMPLATE]- instantiate the configuration file FILE- --header=FILE[:TEMPLATE]- instantiate the configuration header FILE--Configuration files:-$config_files--Configuration headers:-$config_headers--Configuration commands:-$config_commands--Report bugs to <http://github.com/libffi/libffi/issues>."--_ACEOF-ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`-ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-ac_cs_config='$ac_cs_config_escaped'-ac_cs_version="\\-libffi config.status 3.5.2-configured by $0, generated by GNU Autoconf 2.72,- with options \\"\$ac_cs_config\\"--Copyright (C) 2023 Free Software Foundation, Inc.-This config.status script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it."--ac_pwd='$ac_pwd'-srcdir='$srcdir'-AWK='$AWK'-test -n "\$AWK" || AWK=awk-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-# The default lists apply if the user does not specify any file.-ac_need_defaults=:-while test $# != 0-do- case $1 in- --*=?*)- ac_option=`expr "X$1" : 'X\([^=]*\)='`- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`- ac_shift=:- ;;- --*=)- ac_option=`expr "X$1" : 'X\([^=]*\)='`- ac_optarg=- ac_shift=:- ;;- *)- ac_option=$1- ac_optarg=$2- ac_shift=shift- ;;- esac-- case $ac_option in- # Handling of the options.- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)- ac_cs_recheck=: ;;- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )- printf "%s\n" "$ac_cs_version"; exit ;;- --config | --confi | --conf | --con | --co | --c )- printf "%s\n" "$ac_cs_config"; exit ;;- --debug | --debu | --deb | --de | --d | -d )- debug=: ;;- --file | --fil | --fi | --f )- $ac_shift- case $ac_optarg in- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;- '') as_fn_error $? "missing file argument" ;;- esac- as_fn_append CONFIG_FILES " '$ac_optarg'"- ac_need_defaults=false;;- --header | --heade | --head | --hea )- $ac_shift- case $ac_optarg in- *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;- esac- as_fn_append CONFIG_HEADERS " '$ac_optarg'"- ac_need_defaults=false;;- --he | --h)- # Conflict between --help and --header- as_fn_error $? "ambiguous option: '$1'-Try '$0 --help' for more information.";;- --help | --hel | -h )- printf "%s\n" "$ac_cs_usage"; exit ;;- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil | --si | --s)- ac_cs_silent=: ;;-- # This is an error.- -*) as_fn_error $? "unrecognized option: '$1'-Try '$0 --help' for more information." ;;-- *) as_fn_append ac_config_targets " $1"- ac_need_defaults=false ;;-- esac- shift-done--ac_configure_extra_args=--if $ac_cs_silent; then- exec 6>/dev/null- ac_configure_extra_args="$ac_configure_extra_args --silent"-fi--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-if \$ac_cs_recheck; then- set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion- shift- \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6- CONFIG_SHELL='$SHELL'- export CONFIG_SHELL- exec "\$@"-fi--_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-exec 5>>config.log-{- echo- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX-## Running $as_me. ##-_ASBOX- printf "%s\n" "$ac_log"-} >&5--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-#-# INIT-COMMANDS-#-ax_enable_builddir_srcdir="$srcdir" # $srcdir-ax_enable_builddir_host="$HOST" # $HOST / $host-ax_enable_builddir_version="$VERSION" # $VERSION-ax_enable_builddir_package="$PACKAGE" # $PACKAGE-ax_enable_builddir_auxdir="$ax_enable_builddir_auxdir" # $AUX-ax_enable_builddir_sed="$ax_enable_builddir_sed" # $SED-ax_enable_builddir="$ax_enable_builddir" # $SUB--AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"---# The HP-UX ksh and POSIX shell print the target directory to stdout-# if CDPATH is set.-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH--sed_quote_subst='$sed_quote_subst'-double_quote_subst='$double_quote_subst'-delay_variable_subst='$delay_variable_subst'-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'-shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'-FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'-lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'-lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'-lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'-lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'-configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'-configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'--LTCC='$LTCC'-LTCFLAGS='$LTCFLAGS'-compiler='$compiler_DEFAULT'--# A function that is used when there is no print builtin or printf.-func_fallback_echo ()-{- eval 'cat <<_LTECHO_EOF-\$1-_LTECHO_EOF'-}--# Quote evaled strings.-for var in SHELL \-ECHO \-PATH_SEPARATOR \-SED \-GREP \-EGREP \-FGREP \-LD \-NM \-LN_S \-lt_SP2NL \-lt_NL2SP \-reload_flag \-FILECMD \-OBJDUMP \-deplibs_check_method \-file_magic_cmd \-file_magic_glob \-want_nocaseglob \-DLLTOOL \-sharedlib_from_linklib_cmd \-AR \-archiver_list_spec \-STRIP \-RANLIB \-CC \-CFLAGS \-compiler \-lt_cv_sys_global_symbol_pipe \-lt_cv_sys_global_symbol_to_cdecl \-lt_cv_sys_global_symbol_to_import \-lt_cv_sys_global_symbol_to_c_name_address \-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \-lt_cv_nm_interface \-nm_file_list_spec \-lt_cv_truncate_bin \-lt_prog_compiler_no_builtin_flag \-lt_prog_compiler_pic \-lt_prog_compiler_wl \-lt_prog_compiler_static \-lt_cv_prog_compiler_c_o \-need_locks \-MANIFEST_TOOL \-DSYMUTIL \-NMEDIT \-LIPO \-OTOOL \-OTOOL64 \-shrext_cmds \-export_dynamic_flag_spec \-whole_archive_flag_spec \-compiler_needs_object \-with_gnu_ld \-allow_undefined_flag \-no_undefined_flag \-hardcode_libdir_flag_spec \-hardcode_libdir_separator \-exclude_expsyms \-include_expsyms \-file_list_spec \-variables_saved_for_relink \-libname_spec \-library_names_spec \-soname_spec \-install_override_mode \-finish_eval \-old_striplib \-striplib \-compiler_lib_search_dirs \-predep_objects \-postdep_objects \-predeps \-postdeps \-compiler_lib_search_path \-LD_CXX \-reload_flag_CXX \-compiler_CXX \-lt_prog_compiler_no_builtin_flag_CXX \-lt_prog_compiler_pic_CXX \-lt_prog_compiler_wl_CXX \-lt_prog_compiler_static_CXX \-lt_cv_prog_compiler_c_o_CXX \-export_dynamic_flag_spec_CXX \-whole_archive_flag_spec_CXX \-compiler_needs_object_CXX \-with_gnu_ld_CXX \-allow_undefined_flag_CXX \-no_undefined_flag_CXX \-hardcode_libdir_flag_spec_CXX \-hardcode_libdir_separator_CXX \-exclude_expsyms_CXX \-include_expsyms_CXX \-file_list_spec_CXX \-compiler_lib_search_dirs_CXX \-predep_objects_CXX \-postdep_objects_CXX \-predeps_CXX \-postdeps_CXX \-compiler_lib_search_path_CXX; do- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in- *[\\\\\\\`\\"\\\$]*)- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes- ;;- *)- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""- ;;- esac-done--# Double-quote double-evaled strings.-for var in reload_cmds \-old_postinstall_cmds \-old_postuninstall_cmds \-old_archive_cmds \-extract_expsyms_cmds \-old_archive_from_new_cmds \-old_archive_from_expsyms_cmds \-archive_cmds \-archive_expsym_cmds \-module_cmds \-module_expsym_cmds \-export_symbols_cmds \-prelink_cmds \-postlink_cmds \-postinstall_cmds \-postuninstall_cmds \-finish_cmds \-sys_lib_search_path_spec \-configure_time_dlsearch_path \-configure_time_lt_sys_library_path \-reload_cmds_CXX \-old_archive_cmds_CXX \-old_archive_from_new_cmds_CXX \-old_archive_from_expsyms_cmds_CXX \-archive_cmds_CXX \-archive_expsym_cmds_CXX \-module_cmds_CXX \-module_expsym_cmds_CXX \-export_symbols_cmds_CXX \-prelink_cmds_CXX \-postlink_cmds_CXX; do- case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in- *[\\\\\\\`\\"\\\$]*)- eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes- ;;- *)- eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""- ;;- esac-done--ac_aux_dir='$ac_aux_dir'--# See if we are running on zsh, and set the options that allow our-# commands through without removal of \ escapes INIT.-if test -n "\${ZSH_VERSION+set}"; then- setopt NO_GLOB_SUBST-fi--- PACKAGE='$PACKAGE'- VERSION='$VERSION'- RM='$RM'- ofile='$ofile'-------_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1--# Handling of arguments.-for ac_config_target in $ac_config_targets-do- case $ac_config_target in- "fficonfig.h") CONFIG_HEADERS="$CONFIG_HEADERS fficonfig.h" ;;- "buildir") CONFIG_COMMANDS="$CONFIG_COMMANDS buildir" ;;- "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;- "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;- "include/ffi.h") CONFIG_FILES="$CONFIG_FILES include/ffi.h" ;;- "libffi-clib.buildinfo") CONFIG_FILES="$CONFIG_FILES libffi-clib.buildinfo" ;;-- *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;;- esac-done---# If the user did not use the arguments to specify the items to instantiate,-# then the envvar interface is used. Set only those that are not.-# We use the long form for the default assignment because of an extremely-# bizarre bug on SunOS 4.1.3.-if $ac_need_defaults; then- test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files- test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers- test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands-fi--# Have a temporary directory for convenience. Make it in the build tree-# simply because there is no reason against having it here, and in addition,-# creating and moving files from /tmp can sometimes cause problems.-# Hook for its removal unless debugging.-# Note that there is a small window in which the directory will not be cleaned:-# after its creation but before its name has been assigned to '$tmp'.-$debug ||-{- tmp= ac_tmp=- trap 'exit_status=$?- : "${ac_tmp:=$tmp}"- { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status-' 0- trap 'as_fn_exit 1' 1 2 13 15-}-# Create a (secure) tmp directory for tmp files.--{- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&- test -d "$tmp"-} ||-{- tmp=./conf$$-$RANDOM- (umask 077 && mkdir "$tmp")-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5-ac_tmp=$tmp--# Set up the scripts for CONFIG_FILES section.-# No need to generate them if there are no CONFIG_FILES.-# This happens for instance with './config.status config.h'.-if test -n "$CONFIG_FILES"; then---ac_cr=`echo X | tr X '\015'`-# On cygwin, bash can eat \r inside `` if the user requested igncr.-# But we know of no other shell where ac_cr would be empty at this-# point, so we can use a bashism as a fallback.-if test "x$ac_cr" = x; then- eval ac_cr=\$\'\\r\'-fi-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then- ac_cs_awk_cr='\\r'-else- ac_cs_awk_cr=$ac_cr-fi--echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&-_ACEOF---{- echo "cat >conf$$subs.awk <<_ACEOF" &&- echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&- echo "_ACEOF"-} >conf$$subs.sh ||- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`-ac_delim='%!_!# '-for ac_last_try in false false false false false :; do- . ./conf$$subs.sh ||- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5-- ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`- if test $ac_delim_n = $ac_delim_num; then- break- elif $ac_last_try; then- as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5- else- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "- fi-done-rm -f conf$$subs.sh--cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&-_ACEOF-sed -n '-h-s/^/S["/; s/!.*/"]=/-p-g-s/^[^!]*!//-:repl-t repl-s/'"$ac_delim"'$//-t delim-:nl-h-s/\(.\{148\}\)..*/\1/-t more1-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/-p-n-b repl-:more1-s/["\\]/\\&/g; s/^/"/; s/$/"\\/-p-g-s/.\{148\}//-t nl-:delim-h-s/\(.\{148\}\)..*/\1/-t more2-s/["\\]/\\&/g; s/^/"/; s/$/"/-p-b-:more2-s/["\\]/\\&/g; s/^/"/; s/$/"\\/-p-g-s/.\{148\}//-t delim-' <conf$$subs.awk | sed '-/^[^""]/{- N- s/\n//-}-' >>$CONFIG_STATUS || ac_write_fail=1-rm -f conf$$subs.awk-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-_ACAWK-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&- for (key in S) S_is_set[key] = 1- FS = ""--}-{- line = $ 0- nfields = split(line, field, "@")- substed = 0- len = length(field[1])- for (i = 2; i < nfields; i++) {- key = field[i]- keylen = length(key)- if (S_is_set[key]) {- value = S[key]- line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)- len += length(value) + length(field[++i])- substed = 1- } else- len += 1 + keylen- }-- print line-}--_ACAWK-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then- sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"-else- cat-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \- || as_fn_error $? "could not setup config files machinery" "$LINENO" 5-_ACEOF--# VPATH may cause trouble with some makes, so we remove sole $(srcdir),-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and-# trailing colons and then remove the whole line if VPATH becomes empty-# (actually we leave an empty line to preserve line numbers).-if test "x$srcdir" = x.; then- ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{-h-s///-s/^/:/-s/[ ]*$/:/-s/:\$(srcdir):/:/g-s/:\${srcdir}:/:/g-s/:@srcdir@:/:/g-s/^:*//-s/:*$//-x-s/\(=[ ]*\).*/\1/-G-s/\n//-s/^[^=]*=[ ]*$//-}'-fi--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-fi # test -n "$CONFIG_FILES"--# Set up the scripts for CONFIG_HEADERS section.-# No need to generate them if there are no CONFIG_HEADERS.-# This happens for instance with './config.status Makefile'.-if test -n "$CONFIG_HEADERS"; then-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||-BEGIN {-_ACEOF--# Transform confdefs.h into an awk script 'defines.awk', embedded as-# here-document in config.status, that substitutes the proper values into-# config.h.in to produce config.h.--# Create a delimiter string that does not exist in confdefs.h, to ease-# handling of long lines.-ac_delim='%!_!# '-for ac_last_try in false false :; do- ac_tt=`sed -n "/$ac_delim/p" confdefs.h`- if test -z "$ac_tt"; then- break- elif $ac_last_try; then- as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5- else- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "- fi-done--# For the awk script, D is an array of macro values keyed by name,-# likewise P contains macro parameters if any. Preserve backslash-# newline sequences.--ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*-sed -n '-s/.\{148\}/&'"$ac_delim"'/g-t rset-:rset-s/^[ ]*#[ ]*define[ ][ ]*/ /-t def-d-:def-s/\\$//-t bsnl-s/["\\]/\\&/g-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\-D["\1"]=" \3"/p-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p-d-:bsnl-s/["\\]/\\&/g-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\-D["\1"]=" \3\\\\\\n"\\/p-t cont-s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p-t cont-d-:cont-n-s/.\{148\}/&'"$ac_delim"'/g-t clear-:clear-s/\\$//-t bsnlc-s/["\\]/\\&/g; s/^/"/; s/$/"/p-d-:bsnlc-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p-b cont-' <confdefs.h | sed '-s/'"$ac_delim"'/"\\\-"/g' >>$CONFIG_STATUS || ac_write_fail=1--cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1- for (key in D) D_is_set[key] = 1- FS = ""-}-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {- line = \$ 0- split(line, arg, " ")- if (arg[1] == "#") {- defundef = arg[2]- mac1 = arg[3]- } else {- defundef = substr(arg[1], 2)- mac1 = arg[2]- }- split(mac1, mac2, "(") #)- macro = mac2[1]- prefix = substr(line, 1, index(line, defundef) - 1)- if (D_is_set[macro]) {- # Preserve the white space surrounding the "#".- print prefix "define", macro P[macro] D[macro]- next- } else {- # Replace #undef with comments. This is necessary, for example,- # in the case of _POSIX_SOURCE, which is predefined and required- # on some systems where configure will not decide to define it.- if (defundef == "undef") {- print "/*", prefix defundef, macro, "*/"- next- }- }-}-{ print }-_ACAWK-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1- as_fn_error $? "could not setup config headers machinery" "$LINENO" 5-fi # test -n "$CONFIG_HEADERS"---eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"-shift-for ac_tag-do- case $ac_tag in- :[FHLC]) ac_mode=$ac_tag; continue;;- esac- case $ac_mode$ac_tag in- :[FHL]*:*);;- :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;;- :[FH]-) ac_tag=-:-;;- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;- esac- ac_save_IFS=$IFS- IFS=:- set x $ac_tag- IFS=$ac_save_IFS- shift- ac_file=$1- shift-- case $ac_mode in- :L) ac_source=$1;;- :[FH])- ac_file_inputs=- for ac_f- do- case $ac_f in- -) ac_f="$ac_tmp/stdin";;- *) # Look for the file first in the build tree, then in the source tree- # (if the path is not absolute). The absolute path cannot be DOS-style,- # because $ac_f cannot contain ':'.- test -f "$ac_f" ||- case $ac_f in- [\\/$]*) false;;- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;- esac ||- as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;- esac- case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac- as_fn_append ac_file_inputs " '$ac_f'"- done-- # Let's still pretend it is 'configure' which instantiates (i.e., don't- # use $as_me), people would be surprised to read:- # /* config.h. Generated by config.status. */- configure_input='Generated from '`- printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'- `' by configure.'- if test x"$ac_file" != x-; then- configure_input="$ac_file. $configure_input"- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5-printf "%s\n" "$as_me: creating $ac_file" >&6;}- fi- # Neutralize special characters interpreted by sed in replacement strings.- case $configure_input in #(- *\&* | *\|* | *\\* )- ac_sed_conf_input=`printf "%s\n" "$configure_input" |- sed 's/[\\\\&|]/\\\\&/g'`;; #(- *) ac_sed_conf_input=$configure_input;;- esac-- case $ac_tag in- *:-:* | *:-) cat >"$ac_tmp/stdin" \- || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;- esac- ;;- esac-- ac_dir=`$as_dirname -- "$ac_file" ||-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$ac_file" : 'X\(//\)[^/]' \| \- X"$ac_file" : 'X\(//\)$' \| \- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X"$ac_file" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- as_dir="$ac_dir"; as_fn_mkdir_p- ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)- ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`- # A ".." for each directory in $ac_dir_suffix.- ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`- case $ac_top_builddir_sub in- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;- esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in- .) # We are building in place.- ac_srcdir=.- ac_top_srcdir=$ac_top_builddir_sub- ac_abs_top_srcdir=$ac_pwd ;;- [\\/]* | ?:[\\/]* ) # Absolute name.- ac_srcdir=$srcdir$ac_dir_suffix;- ac_top_srcdir=$srcdir- ac_abs_top_srcdir=$srcdir ;;- *) # Relative name.- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix- ac_top_srcdir=$ac_top_build_prefix$srcdir- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix--- case $ac_mode in- :F)- #- # CONFIG_FILE- #--_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-# If the template does not know about datarootdir, expand it.-# FIXME: This hack should be removed a few years after 2.60.-ac_datarootdir_hack=; ac_datarootdir_seen=-ac_sed_dataroot='-/datarootdir/ {- p- q-}-/@datadir@/p-/@docdir@/p-/@infodir@/p-/@localedir@/p-/@mandir@/p'-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in-*datarootdir*) ac_datarootdir_seen=yes;;-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5-printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}-_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1- ac_datarootdir_hack='- s&@datadir@&$datadir&g- s&@docdir@&$docdir&g- s&@infodir@&$infodir&g- s&@localedir@&$localedir&g- s&@mandir@&$mandir&g- s&\\\${datarootdir}&$datarootdir&g' ;;-esac-_ACEOF--# Neutralize VPATH when '$srcdir' = '.'.-# Shell code in configure.ac might set extrasub.-# FIXME: do we really want to maintain this feature?-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1-ac_sed_extra="$ac_vpsub-$extrasub-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1-:t-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b-s|@configure_input@|$ac_sed_conf_input|;t t-s&@top_builddir@&$ac_top_builddir_sub&;t t-s&@top_build_prefix@&$ac_top_build_prefix&;t t-s&@srcdir@&$ac_srcdir&;t t-s&@abs_srcdir@&$ac_abs_srcdir&;t t-s&@top_srcdir@&$ac_top_srcdir&;t t-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t-s&@builddir@&$ac_builddir&;t t-s&@abs_builddir@&$ac_abs_builddir&;t t-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t-$ac_datarootdir_hack-"-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \- >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5--test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&- { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \- "$ac_tmp/out"`; test -z "$ac_out"; } &&- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'-which seems to be undefined. Please make sure it is defined" >&5-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'-which seems to be undefined. Please make sure it is defined" >&2;}-- rm -f "$ac_tmp/stdin"- case $ac_file in- -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;- *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;- esac \- || as_fn_error $? "could not create $ac_file" "$LINENO" 5- ;;- :H)- #- # CONFIG_HEADER- #- if test x"$ac_file" != x-; then- {- printf "%s\n" "/* $configure_input */" >&1 \- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"- } >"$ac_tmp/config.h" \- || as_fn_error $? "could not create $ac_file" "$LINENO" 5- if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5-printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}- else- rm -f "$ac_file"- mv "$ac_tmp/config.h" "$ac_file" \- || as_fn_error $? "could not create $ac_file" "$LINENO" 5- fi- else- printf "%s\n" "/* $configure_input */" >&1 \- && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \- || as_fn_error $? "could not create -" "$LINENO" 5- fi-# Compute "$ac_file"'s index in $config_headers.-_am_arg="$ac_file"-_am_stamp_count=1-for _am_header in $config_headers :; do- case $_am_header in- $_am_arg | $_am_arg:* )- break ;;- * )- _am_stamp_count=`expr $_am_stamp_count + 1` ;;- esac-done-echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||-$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$_am_arg" : 'X\(//\)[^/]' \| \- X"$_am_arg" : 'X\(//\)$' \| \- X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X"$_am_arg" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`/stamp-h$_am_stamp_count- ;;-- :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5-printf "%s\n" "$as_me: executing $ac_file commands" >&6;}- ;;- esac--- case $ac_file$ac_mode in- "buildir":C) ac_top_srcdir="$ax_enable_builddir_srcdir"- if test ".$ax_enable_builddir" = ".." ; then- if test -f "$top_srcdir/Makefile" ; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: skipping top_srcdir/Makefile - left untouched" >&5-printf "%s\n" "$as_me: skipping top_srcdir/Makefile - left untouched" >&6;}- else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: skipping top_srcdir/Makefile - not created" >&5-printf "%s\n" "$as_me: skipping top_srcdir/Makefile - not created" >&6;}- fi- else- if test -f "$ac_top_srcdir/Makefile" ; then- a=`grep "^VERSION " "$ac_top_srcdir/Makefile"` ; b=`grep "^VERSION " Makefile`- test "$a" != "$b" && rm "$ac_top_srcdir/Makefile"- fi- if test -f "$ac_top_srcdir/Makefile" ; then- echo "$ac_top_srcdir/Makefile : $ac_top_srcdir/Makefile.in" > $tmp/conftemp.mk- echo " @ echo 'REMOVED,,,' >\$@" >> $tmp/conftemp.mk- eval "${MAKE-make} -f $tmp/conftemp.mk 2>/dev/null >/dev/null"- if grep '^REMOVED,,,' "$ac_top_srcdir/Makefile" >/dev/null- then rm $ac_top_srcdir/Makefile ; fi- cp $tmp/conftemp.mk $ac_top_srcdir/makefiles.mk~ ## DEBUGGING- fi- if test ! -f "$ac_top_srcdir/Makefile" ; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: create top_srcdir/Makefile guessed from local Makefile" >&5-printf "%s\n" "$as_me: create top_srcdir/Makefile guessed from local Makefile" >&6;}- x='`' ; cat >$tmp/conftemp.sed <<_EOF-/^\$/n-x-/^\$/bS-x-/\\\\\$/{H;d;}-{H;s/.*//;x;}-bM-:S-x-/\\\\\$/{h;d;}-{h;s/.*//;x;}-:M-s/\\(\\n\\) /\\1 /g-/^ /d-/^[ ]*[\\#]/d-/^VPATH *=/d-s/^srcdir *=.*/srcdir = ./-s/^top_srcdir *=.*/top_srcdir = ./-/[:=]/!d-/^\\./d-/ = /b-/ .= /b-/:/!b-s/:.*/:/-s/ / /g-s/ \\([a-z][a-z-]*[a-zA-Z0-9]\\)\\([ :]\\)/ \\1 \\1-all\\2/g-s/^\\([a-z][a-z-]*[a-zA-Z0-9]\\)\\([ :]\\)/\\1 \\1-all\\2/-s/ / /g-/^all all-all[ :]/i\\-all-configured : all-all-s/ [a-zA-Z0-9-]*-all [a-zA-Z0-9-]*-all-all//g-/-all-all/d-a\\- @ HOST="\$(HOST)\" \\\\\\- ; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\- ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\- ; use=$x basename "\$\@" -all $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\- ; echo "MAKE \$\$HOST : \$\$n * \$\@"; if test "\$\$n" -eq "0" ; then : \\\\\\- ; BUILD=$x grep "^####.*|" Makefile |tail -1| sed -e 's/.*|//' $x ; fi \\\\\\- ; test ".\$\$BUILD" = "." && BUILD="." \\\\\\- ; test "\$\$use" = "\$\@" && BUILD=$x echo "\$\$BUILD" | tail -1 $x \\\\\\- ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\- ; (cd "\$\$i" && test ! -f configure && \$(MAKE) \$\$use) || exit; done-/dist-all *:/a\\- @ HOST="\$(HOST)\" \\\\\\- ; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\- ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\- ; found=$x echo \$\$BUILD | wc -w $x \\\\\\- ; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).tar.*" \\\\\\- ; if test "\$\$found" -eq "0" ; then : \\\\\\- ; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\- ; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\- ; for f in \$\$i/\$(PACKAGE)-\$(VERSION).tar.* \\\\\\- ; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done-/dist-[a-zA-Z0-9]*-all *:/a\\- @ HOST="\$(HOST)\" \\\\\\- ; test ".\$\$HOST" = "." && HOST=$x sh ./config.guess $x \\\\\\- ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\- ; found=$x echo \$\$BUILD | wc -w $x \\\\\\- ; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).*" \\\\\\- ; if test "\$\$found" -eq "0" ; then : \\\\\\- ; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\- ; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\- ; for f in \$\$i/\$(PACKAGE)-\$(VERSION).* \\\\\\- ; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done-/distclean-all *:/a\\- @ HOST="\$(HOST)\" \\\\\\- ; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\- ; BUILD=$x grep "^#### .*|" Makefile | sed -e 's/.*|//' $x \\\\\\- ; use=$x basename "\$\@" -all $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\- ; echo "MAKE \$\$HOST : \$\$n * \$\@ (all local builds)" \\\\\\- ; test ".\$\$BUILD" = "." && BUILD="." \\\\\\- ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\- ; echo "# rm -r \$\$i"; done ; echo "# (sleep 3)" ; sleep 3 \\\\\\- ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\- ; echo "\$\$i" | grep "^/" > /dev/null && continue \\\\\\- ; echo "\$\$i" | grep "^../" > /dev/null && continue \\\\\\- ; echo "rm -r \$\$i"; (rm -r "\$\$i") ; done ; rm Makefile-_EOF- cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefile.sed~" ## DEBUGGING- $ax_enable_builddir_sed -f $tmp/conftemp.sed Makefile >$ac_top_srcdir/Makefile- if test -f "$ac_top_srcdir/Makefile.mk" ; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&5-printf "%s\n" "$as_me: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&6;}- cat $ac_top_srcdir/Makefile.mk >>$ac_top_srcdir/Makefile- fi ; xxxx="####"- echo "$xxxx CONFIGURATIONS FOR TOPLEVEL MAKEFILE: " >>$ac_top_srcdir/Makefile- # sanity check- if grep '^; echo "MAKE ' $ac_top_srcdir/Makefile >/dev/null ; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: buggy sed found - it deletes tab in \"a\" text parts" >&5-printf "%s\n" "$as_me: buggy sed found - it deletes tab in \"a\" text parts" >&6;}- $ax_enable_builddir_sed -e '/^@ HOST=/s/^/ /' -e '/^; /s/^/ /' $ac_top_srcdir/Makefile \- >$ac_top_srcdir/Makefile~- (test -s $ac_top_srcdir/Makefile~ && mv $ac_top_srcdir/Makefile~ $ac_top_srcdir/Makefile) 2>/dev/null- fi- else- xxxx="\\#\\#\\#\\#"- # echo "/^$xxxx *$ax_enable_builddir_host /d" >$tmp/conftemp.sed- echo "s!^$xxxx [^|]* | *$ax_enable_builddir *\$!$xxxx ...... $ax_enable_builddir!" >$tmp/conftemp.sed- $ax_enable_builddir_sed -f "$tmp/conftemp.sed" "$ac_top_srcdir/Makefile" >$tmp/mkfile.tmp- cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefiles.sed~" ## DEBUGGING- cp "$tmp/mkfile.tmp" "$ac_top_srcdir/makefiles.out~" ## DEBUGGING- if cmp -s "$ac_top_srcdir/Makefile" "$tmp/mkfile.tmp" 2>/dev/null ; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: keeping top_srcdir/Makefile from earlier configure" >&5-printf "%s\n" "$as_me: keeping top_srcdir/Makefile from earlier configure" >&6;}- rm "$tmp/mkfile.tmp"- else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: reusing top_srcdir/Makefile from earlier configure" >&5-printf "%s\n" "$as_me: reusing top_srcdir/Makefile from earlier configure" >&6;}- mv "$tmp/mkfile.tmp" "$ac_top_srcdir/Makefile"- fi- fi- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: build in $ax_enable_builddir (HOST=$ax_enable_builddir_host)" >&5-printf "%s\n" "$as_me: build in $ax_enable_builddir (HOST=$ax_enable_builddir_host)" >&6;}- xxxx="####"- echo "$xxxx" "$ax_enable_builddir_host" "|$ax_enable_builddir" >>$ac_top_srcdir/Makefile- fi- ;;- "depfiles":C) test x"$AMDEP_TRUE" != x"" || {- # Older Autoconf quotes --file arguments for eval, but not when files- # are listed without --file. Let's play safe and only enable the eval- # if we detect the quoting.- # TODO: see whether this extra hack can be removed once we start- # requiring Autoconf 2.70 or later.- case $CONFIG_FILES in #(- *\'*) :- eval set x "$CONFIG_FILES" ;; #(- *) :- set x $CONFIG_FILES ;; #(- *) :- ;;-esac- shift- # Used to flag and report bootstrapping failures.- am_rc=0- for am_mf- do- # Strip MF so we end up with the name of the file.- am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`- # Check whether this is an Automake generated Makefile which includes- # dependency-tracking related rules and includes.- # Grep'ing the whole file directly is not great: AIX grep has a line- # limit of 2048, but all sed's we know have understand at least 4000.- sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \- || continue- am_dirpart=`$as_dirname -- "$am_mf" ||-$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$am_mf" : 'X\(//\)[^/]' \| \- X"$am_mf" : 'X\(//\)$' \| \- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X"$am_mf" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- am_filepart=`$as_basename -- "$am_mf" ||-$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \- X"$am_mf" : 'X\(//\)$' \| \- X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||-printf "%s\n" X/"$am_mf" |- sed '/^.*\/\([^/][^/]*\)\/*$/{- s//\1/- q- }- /^X\/\(\/\/\)$/{- s//\1/- q- }- /^X\/\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- { echo "$as_me:$LINENO: cd "$am_dirpart" \- && sed -e '/# am--include-marker/d' "$am_filepart" \- | $MAKE -f - am--depfiles" >&5- (cd "$am_dirpart" \- && sed -e '/# am--include-marker/d' "$am_filepart" \- | $MAKE -f - am--depfiles) >&5 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } || am_rc=$?- done- if test $am_rc -ne 0; then- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}-as_fn_error $? "Something went wrong bootstrapping makefile fragments- for automatic dependency tracking. If GNU make was not used, consider- re-running the configure script with MAKE=\"gmake\" (or whatever is- necessary). You can also try re-running configure with the- '--disable-dependency-tracking' option to at least be able to build- the package (albeit without support for automatic dependency tracking).-See 'config.log' for more details" "$LINENO" 5; }- fi- { am_dirpart=; unset am_dirpart;}- { am_filepart=; unset am_filepart;}- { am_mf=; unset am_mf;}- { am_rc=; unset am_rc;}- rm -f conftest-deps.mk-}- ;;- "libtool":C)-- # See if we are running on zsh, and set the options that allow our- # commands through without removal of \ escapes.- if test -n "${ZSH_VERSION+set}"; then- setopt NO_GLOB_SUBST- fi-- cfgfile=${ofile}T- trap "$RM \"$cfgfile\"; exit 1" 1 2 15- $RM "$cfgfile"-- cat <<_LT_EOF >> "$cfgfile"-#! $SHELL-# Generated automatically by $as_me ($PACKAGE) $VERSION-# NOTE: Changes made to this file will be lost: look at ltmain.sh.--# Provide generalized library-building support services.-# Written by Gordon Matzigkeit, 1996--# Copyright (C) 2024 Free Software Foundation, Inc.-# This is free software; see the source for copying conditions. There is NO-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.--# GNU Libtool 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 2 of the License, or-# (at your option) any later version.-#-# As a special exception to the GNU General Public License, if you-# distribute this file as part of a program or library that is built-# using GNU Libtool, you may include this file under the same-# distribution terms that you use for the rest of that program.-#-# GNU Libtool 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.-#-# You should have received a copy of the GNU General Public License-# along with this program. If not, see <http://www.gnu.org/licenses/>.---# The names of the tagged configurations supported by this script.-available_tags='CXX '--# Configured defaults for sys_lib_dlsearch_path munging.-: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}--# ### BEGIN LIBTOOL CONFIG--# Which release of libtool.m4 was used?-macro_version=$macro_version-macro_revision=$macro_revision--# Whether or not to build shared libraries.-build_libtool_libs=$enable_shared--# Whether or not to build static libraries.-build_old_libs=$enable_static--# What type of objects to build.-pic_mode=$pic_mode--# Whether or not to optimize for fast installation.-fast_install=$enable_fast_install--# Shared archive member basename,for filename based shared library versioning on AIX.-shared_archive_member_spec=$shared_archive_member_spec--# Shell to use when invoking shell scripts.-SHELL=$lt_SHELL--# An echo program that protects backslashes.-ECHO=$lt_ECHO--# The PATH separator for the build system.-PATH_SEPARATOR=$lt_PATH_SEPARATOR--# The host system.-host_alias=$host_alias-host=$host-host_os=$host_os--# The build system.-build_alias=$build_alias-build=$build-build_os=$build_os--# A sed program that does not truncate output.-SED=$lt_SED--# Sed that helps us avoid accidentally triggering echo(1) options like -n.-Xsed="\$SED -e 1s/^X//"--# A grep program that handles long lines.-GREP=$lt_GREP--# An ERE matcher.-EGREP=$lt_EGREP--# A literal string matcher.-FGREP=$lt_FGREP--# A BSD- or MS-compatible name lister.-NM=$lt_NM--# Whether we need soft or hard links.-LN_S=$lt_LN_S--# What is the maximum length of a command?-max_cmd_len=$max_cmd_len--# Object file suffix (normally "o").-objext=$ac_objext--# Executable file suffix (normally "").-exeext=$exeext--# whether the shell understands "unset".-lt_unset=$lt_unset--# turn spaces into newlines.-SP2NL=$lt_lt_SP2NL--# turn newlines into spaces.-NL2SP=$lt_lt_NL2SP--# convert \$build file names to \$host format.-to_host_file_cmd=$lt_cv_to_host_file_cmd--# convert \$build files to toolchain format.-to_tool_file_cmd=$lt_cv_to_tool_file_cmd--# A file(cmd) program that detects file types.-FILECMD=$lt_FILECMD--# An object symbol dumper.-OBJDUMP=$lt_OBJDUMP--# Method to check whether dependent libraries are shared objects.-deplibs_check_method=$lt_deplibs_check_method--# Command to use when deplibs_check_method = "file_magic".-file_magic_cmd=$lt_file_magic_cmd--# How to find potential files when deplibs_check_method = "file_magic".-file_magic_glob=$lt_file_magic_glob--# Find potential files using nocaseglob when deplibs_check_method = "file_magic".-want_nocaseglob=$lt_want_nocaseglob--# DLL creation program.-DLLTOOL=$lt_DLLTOOL--# Command to associate shared and link libraries.-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd--# The archiver.-AR=$lt_AR--# Flags to create an archive (by configure).-lt_ar_flags=$lt_ar_flags--# Flags to create an archive.-AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}--# How to feed a file listing to the archiver.-archiver_list_spec=$lt_archiver_list_spec--# A symbol stripping program.-STRIP=$lt_STRIP--# Commands used to install an old-style archive.-RANLIB=$lt_RANLIB-old_postinstall_cmds=$lt_old_postinstall_cmds-old_postuninstall_cmds=$lt_old_postuninstall_cmds--# Whether to use a lock for old archive extraction.-lock_old_archive_extraction=$lock_old_archive_extraction--# A C compiler.-LTCC=$lt_CC--# LTCC compiler flags.-LTCFLAGS=$lt_CFLAGS--# Take the output of nm and produce a listing of raw symbols and C names.-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe--# Transform the output of nm in a proper C declaration.-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl--# Transform the output of nm into a list of symbols to manually relocate.-global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import--# Transform the output of nm in a C name address pair.-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address--# Transform the output of nm in a C name address pair when lib prefix is needed.-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix--# The name lister interface.-nm_interface=$lt_lt_cv_nm_interface--# Specify filename containing input files for \$NM.-nm_file_list_spec=$lt_nm_file_list_spec--# The root where to search for dependent libraries,and where our libraries should be installed.-lt_sysroot=$lt_sysroot--# Command to truncate a binary pipe.-lt_truncate_bin=$lt_lt_cv_truncate_bin--# The name of the directory that contains temporary libtool files.-objdir=$objdir--# Used to examine libraries when file_magic_cmd begins with "file".-MAGIC_CMD=$MAGIC_CMD--# Must we lock files when doing compilation?-need_locks=$lt_need_locks--# Manifest tool.-MANIFEST_TOOL=$lt_MANIFEST_TOOL--# Tool to manipulate archived DWARF debug symbol files on Mac OS X.-DSYMUTIL=$lt_DSYMUTIL--# Tool to change global to local symbols on Mac OS X.-NMEDIT=$lt_NMEDIT--# Tool to manipulate fat objects and archives on Mac OS X.-LIPO=$lt_LIPO--# ldd/readelf like tool for Mach-O binaries on Mac OS X.-OTOOL=$lt_OTOOL--# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.-OTOOL64=$lt_OTOOL64--# Old archive suffix (normally "a").-libext=$libext--# Shared library suffix (normally ".so").-shrext_cmds=$lt_shrext_cmds--# The commands to extract the exported symbol list from a shared archive.-extract_expsyms_cmds=$lt_extract_expsyms_cmds--# Variables whose values should be saved in libtool wrapper scripts and-# restored at link time.-variables_saved_for_relink=$lt_variables_saved_for_relink--# Do we need the "lib" prefix for modules?-need_lib_prefix=$need_lib_prefix--# Do we need a version for libraries?-need_version=$need_version--# Library versioning type.-version_type=$version_type--# Shared library runtime path variable.-runpath_var=$runpath_var--# Shared library path variable.-shlibpath_var=$shlibpath_var--# Is shlibpath searched before the hard-coded library search path?-shlibpath_overrides_runpath=$shlibpath_overrides_runpath--# Format of library name prefix.-libname_spec=$lt_libname_spec--# List of archive names. First name is the real one, the rest are links.-# The last name is the one that the linker finds with -lNAME-library_names_spec=$lt_library_names_spec--# The coded name of the library, if different from the real name.-soname_spec=$lt_soname_spec--# Permission mode override for installation of shared libraries.-install_override_mode=$lt_install_override_mode--# Command to use after installation of a shared archive.-postinstall_cmds=$lt_postinstall_cmds--# Command to use after uninstallation of a shared archive.-postuninstall_cmds=$lt_postuninstall_cmds--# Commands used to finish a libtool library installation in a directory.-finish_cmds=$lt_finish_cmds--# As "finish_cmds", except a single script fragment to be evaled but-# not shown.-finish_eval=$lt_finish_eval--# Whether we should hardcode library paths into libraries.-hardcode_into_libs=$hardcode_into_libs--# Compile-time system search path for libraries.-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec--# Detected run-time system search path for libraries.-sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path--# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.-configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path--# Whether dlopen is supported.-dlopen_support=$enable_dlopen--# Whether dlopen of programs is supported.-dlopen_self=$enable_dlopen_self--# Whether dlopen of statically linked programs is supported.-dlopen_self_static=$enable_dlopen_self_static--# Commands to strip libraries.-old_striplib=$lt_old_striplib-striplib=$lt_striplib---# The linker used to build libraries.-LD=$lt_LD--# How to create reloadable object files.-reload_flag=$lt_reload_flag-reload_cmds=$lt_reload_cmds--# Commands used to build an old-style archive.-old_archive_cmds=$lt_old_archive_cmds--# A language specific compiler.-CC=$lt_compiler--# Is the compiler the GNU compiler?-with_gcc=$GCC--# Compiler flag to turn off builtin functions.-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag--# Additional compiler flags for building library objects.-pic_flag=$lt_lt_prog_compiler_pic--# How to pass a linker flag through the compiler.-wl=$lt_lt_prog_compiler_wl--# Compiler flag to prevent dynamic linking.-link_static_flag=$lt_lt_prog_compiler_static--# Does compiler simultaneously support -c and -o options?-compiler_c_o=$lt_lt_cv_prog_compiler_c_o--# Whether or not to add -lc for building shared libraries.-build_libtool_need_lc=$archive_cmds_need_lc--# Whether or not to disallow shared libs when runtime libs are static.-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes--# Compiler flag to allow reflexive dlopens.-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec--# Compiler flag to generate shared objects directly from archives.-whole_archive_flag_spec=$lt_whole_archive_flag_spec--# Whether the compiler copes with passing no objects directly.-compiler_needs_object=$lt_compiler_needs_object--# Create an old-style archive from a shared archive.-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds--# Create a temporary old-style archive to link instead of a shared archive.-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds--# Commands used to build a shared archive.-archive_cmds=$lt_archive_cmds-archive_expsym_cmds=$lt_archive_expsym_cmds--# Commands used to build a loadable module if different from building-# a shared archive.-module_cmds=$lt_module_cmds-module_expsym_cmds=$lt_module_expsym_cmds--# Whether we are building with GNU ld or not.-with_gnu_ld=$lt_with_gnu_ld--# Flag that allows shared libraries with undefined symbols to be built.-allow_undefined_flag=$lt_allow_undefined_flag--# Flag that enforces no undefined symbols.-no_undefined_flag=$lt_no_undefined_flag--# Flag to hardcode \$libdir into a binary during linking.-# This must work even if \$libdir does not exist-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec--# Whether we need a single "-rpath" flag with a separated argument.-hardcode_libdir_separator=$lt_hardcode_libdir_separator--# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes-# DIR into the resulting binary.-hardcode_direct=$hardcode_direct--# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes-# DIR into the resulting binary and the resulting library dependency is-# "absolute",i.e. impossible to change by setting \$shlibpath_var if the-# library is relocated.-hardcode_direct_absolute=$hardcode_direct_absolute--# Set to "yes" if using the -LDIR flag during linking hardcodes DIR-# into the resulting binary.-hardcode_minus_L=$hardcode_minus_L--# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR-# into the resulting binary.-hardcode_shlibpath_var=$hardcode_shlibpath_var--# Set to "yes" if building a shared library automatically hardcodes DIR-# into the library and all subsequent libraries and executables linked-# against it.-hardcode_automatic=$hardcode_automatic--# Set to yes if linker adds runtime paths of dependent libraries-# to runtime path list.-inherit_rpath=$inherit_rpath--# Whether libtool must link a program against all its dependency libraries.-link_all_deplibs=$link_all_deplibs--# Set to "yes" if exported symbols are required.-always_export_symbols=$always_export_symbols--# The commands to list exported symbols.-export_symbols_cmds=$lt_export_symbols_cmds--# Symbols that should not be listed in the preloaded symbols.-exclude_expsyms=$lt_exclude_expsyms--# Symbols that must always be exported.-include_expsyms=$lt_include_expsyms--# Commands necessary for linking programs (against libraries) with templates.-prelink_cmds=$lt_prelink_cmds--# Commands necessary for finishing linking programs.-postlink_cmds=$lt_postlink_cmds--# Specify filename containing input files.-file_list_spec=$lt_file_list_spec--# How to hardcode a shared library path into an executable.-hardcode_action=$hardcode_action--# The directories searched by this compiler when creating a shared library.-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs--# Dependencies to place before and after the objects being linked to-# create a shared library.-predep_objects=$lt_predep_objects-postdep_objects=$lt_postdep_objects-predeps=$lt_predeps-postdeps=$lt_postdeps--# The library search path used internally by the compiler when linking-# a shared library.-compiler_lib_search_path=$lt_compiler_lib_search_path--# ### END LIBTOOL CONFIG--_LT_EOF-- cat <<'_LT_EOF' >> "$cfgfile"--# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE--# func_munge_path_list VARIABLE PATH-# ------------------------------------# VARIABLE is name of variable containing _space_ separated list of-# directories to be munged by the contents of PATH, which is string-# having a format:-# "DIR[:DIR]:"-# string "DIR[ DIR]" will be prepended to VARIABLE-# ":DIR[:DIR]"-# string "DIR[ DIR]" will be appended to VARIABLE-# "DIRP[:DIRP]::[DIRA:]DIRA"-# string "DIRP[ DIRP]" will be prepended to VARIABLE and string-# "DIRA[ DIRA]" will be appended to VARIABLE-# "DIR[:DIR]"-# VARIABLE will be replaced by "DIR[ DIR]"-func_munge_path_list ()-{- case x$2 in- x)- ;;- *:)- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"- ;;- x:*)- eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"- ;;- *::*)- eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"- eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"- ;;- *)- eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"- ;;- esac-}---# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.-func_cc_basename ()-{- for cc_temp in $*""; do- case $cc_temp in- compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;- distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;- \-*) ;;- *) break;;- esac- done- func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`-}---# ### END FUNCTIONS SHARED WITH CONFIGURE--_LT_EOF-- case $host_os in- aix3*)- cat <<\_LT_EOF >> "$cfgfile"-# AIX sometimes has problems with the GCC collect2 program. For some-# reason, if we set the COLLECT_NAMES environment variable, the problems-# vanish in a puff of smoke.-if test set != "${COLLECT_NAMES+set}"; then- COLLECT_NAMES=- export COLLECT_NAMES-fi-_LT_EOF- ;;- esac----ltmain=$ac_aux_dir/ltmain.sh--- # We use sed instead of cat because bash on DJGPP gets confused if- # if finds mixed CR/LF and LF-only lines. Since sed operates in- # text mode, it properly converts lines to CR/LF. This bash problem- # is reportedly fixed, but why not run on old versions too?- $SED '$q' "$ltmain" >> "$cfgfile" \- || (rm -f "$cfgfile"; exit 1)-- mv -f "$cfgfile" "$ofile" ||- (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")- chmod +x "$ofile"--- cat <<_LT_EOF >> "$ofile"--# ### BEGIN LIBTOOL TAG CONFIG: CXX--# The linker used to build libraries.-LD=$lt_LD_CXX--# How to create reloadable object files.-reload_flag=$lt_reload_flag_CXX-reload_cmds=$lt_reload_cmds_CXX--# Commands used to build an old-style archive.-old_archive_cmds=$lt_old_archive_cmds_CXX--# A language specific compiler.-CC=$lt_compiler_CXX--# Is the compiler the GNU compiler?-with_gcc=$GCC_CXX--# Compiler flag to turn off builtin functions.-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX--# Additional compiler flags for building library objects.-pic_flag=$lt_lt_prog_compiler_pic_CXX--# How to pass a linker flag through the compiler.-wl=$lt_lt_prog_compiler_wl_CXX--# Compiler flag to prevent dynamic linking.-link_static_flag=$lt_lt_prog_compiler_static_CXX--# Does compiler simultaneously support -c and -o options?-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX--# Whether or not to add -lc for building shared libraries.-build_libtool_need_lc=$archive_cmds_need_lc_CXX--# Whether or not to disallow shared libs when runtime libs are static.-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX--# Compiler flag to allow reflexive dlopens.-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX--# Compiler flag to generate shared objects directly from archives.-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX--# Whether the compiler copes with passing no objects directly.-compiler_needs_object=$lt_compiler_needs_object_CXX--# Create an old-style archive from a shared archive.-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX--# Create a temporary old-style archive to link instead of a shared archive.-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX--# Commands used to build a shared archive.-archive_cmds=$lt_archive_cmds_CXX-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX--# Commands used to build a loadable module if different from building-# a shared archive.-module_cmds=$lt_module_cmds_CXX-module_expsym_cmds=$lt_module_expsym_cmds_CXX--# Whether we are building with GNU ld or not.-with_gnu_ld=$lt_with_gnu_ld_CXX--# Flag that allows shared libraries with undefined symbols to be built.-allow_undefined_flag=$lt_allow_undefined_flag_CXX--# Flag that enforces no undefined symbols.-no_undefined_flag=$lt_no_undefined_flag_CXX--# Flag to hardcode \$libdir into a binary during linking.-# This must work even if \$libdir does not exist-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX--# Whether we need a single "-rpath" flag with a separated argument.-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX--# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes-# DIR into the resulting binary.-hardcode_direct=$hardcode_direct_CXX--# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes-# DIR into the resulting binary and the resulting library dependency is-# "absolute",i.e. impossible to change by setting \$shlibpath_var if the-# library is relocated.-hardcode_direct_absolute=$hardcode_direct_absolute_CXX--# Set to "yes" if using the -LDIR flag during linking hardcodes DIR-# into the resulting binary.-hardcode_minus_L=$hardcode_minus_L_CXX--# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR-# into the resulting binary.-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX--# Set to "yes" if building a shared library automatically hardcodes DIR-# into the library and all subsequent libraries and executables linked-# against it.-hardcode_automatic=$hardcode_automatic_CXX--# Set to yes if linker adds runtime paths of dependent libraries-# to runtime path list.-inherit_rpath=$inherit_rpath_CXX--# Whether libtool must link a program against all its dependency libraries.-link_all_deplibs=$link_all_deplibs_CXX--# Set to "yes" if exported symbols are required.-always_export_symbols=$always_export_symbols_CXX--# The commands to list exported symbols.-export_symbols_cmds=$lt_export_symbols_cmds_CXX--# Symbols that should not be listed in the preloaded symbols.-exclude_expsyms=$lt_exclude_expsyms_CXX--# Symbols that must always be exported.-include_expsyms=$lt_include_expsyms_CXX--# Commands necessary for linking programs (against libraries) with templates.-prelink_cmds=$lt_prelink_cmds_CXX--# Commands necessary for finishing linking programs.-postlink_cmds=$lt_postlink_cmds_CXX--# Specify filename containing input files.-file_list_spec=$lt_file_list_spec_CXX--# How to hardcode a shared library path into an executable.-hardcode_action=$hardcode_action_CXX--# The directories searched by this compiler when creating a shared library.-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX--# Dependencies to place before and after the objects being linked to-# create a shared library.-predep_objects=$lt_predep_objects_CXX-postdep_objects=$lt_postdep_objects_CXX-predeps=$lt_predeps_CXX-postdeps=$lt_postdeps_CXX--# The library search path used internally by the compiler when linking-# a shared library.-compiler_lib_search_path=$lt_compiler_lib_search_path_CXX--# ### END LIBTOOL TAG CONFIG: CXX-_LT_EOF-- ;;-- esac-done # for ac_tag---as_fn_exit 0-_ACEOF-ac_clean_files=$ac_clean_files_save--test $ac_write_fail = 0 ||- as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5---# configure is writing to config.log, and then calls config.status.-# config.status does its own redirection, appending to config.log.-# Unfortunately, on DOS this fails, as config.log is still kept open-# by configure, so config.status won't be able to write to it; its-# output is simply discarded. So we exec the FD to /dev/null,-# effectively closing config.log, so it can be properly (re)opened and-# appended to by config.status. When coming back to configure, we-# need to make the FD available again.-if test "$no_create" != yes; then- ac_cs_success=:- ac_config_status_args=- test "$silent" = yes &&- ac_config_status_args="$ac_config_status_args --quiet"- exec 5>/dev/null- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false- exec 5>>config.log- # Use ||, not &&, to avoid exiting from the if with $? = 1, which- # would make configure fail if this is the last instruction.- $ac_cs_success || as_fn_exit 1-fi-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5-printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}-fi-+# Generated by GNU Autoconf 2.69 for libffi 3.6.0.+#+# Report bugs to <http://github.com/libffi/libffi/issues>.+#+#+# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.+#+#+# This configure script is free software; the Free Software Foundation+# gives unlimited permission to copy, distribute and modify it.+## -------------------- ##+## M4sh Initialization. ##+## -------------------- ##++# Be more Bourne compatible+DUALCASE=1; export DUALCASE # for MKS sh+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '${1+"$@"}'='"$@"'+ setopt NO_GLOB_SUBST+else+ case `(set -o) 2>/dev/null` in #(+ *posix*) :+ set -o posix ;; #(+ *) :+ ;;+esac+fi+++as_nl='+'+export as_nl+# Printing a long string crashes Solaris 7 /usr/bin/printf.+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo+# Prefer a ksh shell builtin over an external printf program on Solaris,+# but without wasting forks for bash or zsh.+if test -z "$BASH_VERSION$ZSH_VERSION" \+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then+ as_echo='print -r --'+ as_echo_n='print -rn --'+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then+ as_echo='printf %s\n'+ as_echo_n='printf %s'+else+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'+ as_echo_n='/usr/ucb/echo -n'+ else+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'+ as_echo_n_body='eval+ arg=$1;+ case $arg in #(+ *"$as_nl"*)+ expr "X$arg" : "X\\(.*\\)$as_nl";+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;+ esac;+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"+ '+ export as_echo_n_body+ as_echo_n='sh -c $as_echo_n_body as_echo'+ fi+ export as_echo_body+ as_echo='sh -c $as_echo_body as_echo'+fi++# The user is always right.+if test "${PATH_SEPARATOR+set}" != set; then+ PATH_SEPARATOR=:+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||+ PATH_SEPARATOR=';'+ }+fi+++# IFS+# We need space, tab and new line, in precisely that order. Quoting is+# there to prevent editors from complaining about space-tab.+# (If _AS_PATH_WALK were called with IFS unset, it would disable word+# splitting by setting IFS to empty value.)+IFS=" "" $as_nl"++# Find who we are. Look in the path if we contain no directory separator.+as_myself=+case $0 in #((+ *[\\/]* ) as_myself=$0 ;;+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break+ done+IFS=$as_save_IFS++ ;;+esac+# We did not find ourselves, most probably we were run as `sh COMMAND'+# in which case we are not to be found in the path.+if test "x$as_myself" = x; then+ as_myself=$0+fi+if test ! -f "$as_myself"; then+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2+ exit 1+fi++# Unset variables that we do not need and which cause bugs (e.g. in+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"+# suppresses any "Segmentation fault" message there. '((' could+# trigger a bug in pdksh 5.2.14.+for as_var in BASH_ENV ENV MAIL MAILPATH+do eval test x\${$as_var+set} = xset \+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :+done+PS1='$ '+PS2='> '+PS4='+ '++# NLS nuisances.+LC_ALL=C+export LC_ALL+LANGUAGE=C+export LANGUAGE++# CDPATH.+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH++# Use a proper internal environment variable to ensure we don't fall+ # into an infinite loop, continuously re-executing ourselves.+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then+ _as_can_reexec=no; export _as_can_reexec;+ # We cannot yet assume a decent shell, so we have to provide a+# neutralization value for shells without unset; and this also+# works around shells that cannot unset nonexistent variables.+# Preserve -v and -x to the replacement shell.+BASH_ENV=/dev/null+ENV=/dev/null+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV+case $- in # ((((+ *v*x* | *x*v* ) as_opts=-vx ;;+ *v* ) as_opts=-v ;;+ *x* ) as_opts=-x ;;+ * ) as_opts= ;;+esac+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}+# Admittedly, this is quite paranoid, since all the known shells bail+# out after a failed `exec'.+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2+as_fn_exit 255+ fi+ # We don't want this to propagate to other subprocesses.+ { _as_can_reexec=; unset _as_can_reexec;}+if test "x$CONFIG_SHELL" = x; then+ as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '\${1+\"\$@\"}'='\"\$@\"'+ setopt NO_GLOB_SUBST+else+ case \`(set -o) 2>/dev/null\` in #(+ *posix*) :+ set -o posix ;; #(+ *) :+ ;;+esac+fi+"+ as_required="as_fn_return () { (exit \$1); }+as_fn_success () { as_fn_return 0; }+as_fn_failure () { as_fn_return 1; }+as_fn_ret_success () { return 0; }+as_fn_ret_failure () { return 1; }++exitcode=0+as_fn_success || { exitcode=1; echo as_fn_success failed.; }+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :++else+ exitcode=1; echo positional parameters were not saved.+fi+test x\$exitcode = x0 || exit 1+test -x / || exit 1"+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1+test \$(( 1 + 1 )) = 2 || exit 1++ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO+ PATH=/empty FPATH=/empty; export PATH FPATH+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"+ if (eval "$as_required") 2>/dev/null; then :+ as_have_required=yes+else+ as_have_required=no+fi+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :++else+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+as_found=false+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ as_found=:+ case $as_dir in #(+ /*)+ for as_base in sh bash ksh sh5; do+ # Try only shells that exist, to save several forks.+ as_shell=$as_dir/$as_base+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :+ CONFIG_SHELL=$as_shell as_have_required=yes+ if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :+ break 2+fi+fi+ done;;+ esac+ as_found=false+done+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&+ { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :+ CONFIG_SHELL=$SHELL as_have_required=yes+fi; }+IFS=$as_save_IFS+++ if test "x$CONFIG_SHELL" != x; then :+ export CONFIG_SHELL+ # We cannot yet assume a decent shell, so we have to provide a+# neutralization value for shells without unset; and this also+# works around shells that cannot unset nonexistent variables.+# Preserve -v and -x to the replacement shell.+BASH_ENV=/dev/null+ENV=/dev/null+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV+case $- in # ((((+ *v*x* | *x*v* ) as_opts=-vx ;;+ *v* ) as_opts=-v ;;+ *x* ) as_opts=-x ;;+ * ) as_opts= ;;+esac+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}+# Admittedly, this is quite paranoid, since all the known shells bail+# out after a failed `exec'.+$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2+exit 255+fi++ if test x$as_have_required = xno; then :+ $as_echo "$0: This script requires a shell more modern than all"+ $as_echo "$0: the shells that I found on your system."+ if test x${ZSH_VERSION+set} = xset ; then+ $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"+ $as_echo "$0: be upgraded to zsh 4.3.4 or later."+ else+ $as_echo "$0: Please tell bug-autoconf@gnu.org and+$0: http://github.com/libffi/libffi/issues about your+$0: system, including any error possibly output before this+$0: message. Then install a modern shell, or manually run+$0: the script under such a shell if you do have one."+ fi+ exit 1+fi+fi+fi+SHELL=${CONFIG_SHELL-/bin/sh}+export SHELL+# Unset more variables known to interfere with behavior of common tools.+CLICOLOR_FORCE= GREP_OPTIONS=+unset CLICOLOR_FORCE GREP_OPTIONS++## --------------------- ##+## M4sh Shell Functions. ##+## --------------------- ##+# as_fn_unset VAR+# ---------------+# Portably unset VAR.+as_fn_unset ()+{+ { eval $1=; unset $1;}+}+as_unset=as_fn_unset++# as_fn_set_status STATUS+# -----------------------+# Set $? to STATUS, without forking.+as_fn_set_status ()+{+ return $1+} # as_fn_set_status++# as_fn_exit STATUS+# -----------------+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.+as_fn_exit ()+{+ set +e+ as_fn_set_status $1+ exit $1+} # as_fn_exit++# as_fn_mkdir_p+# -------------+# Create "$as_dir" as a directory, including parents if necessary.+as_fn_mkdir_p ()+{++ case $as_dir in #(+ -*) as_dir=./$as_dir;;+ esac+ test -d "$as_dir" || eval $as_mkdir_p || {+ as_dirs=+ while :; do+ case $as_dir in #(+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(+ *) as_qdir=$as_dir;;+ esac+ as_dirs="'$as_qdir' $as_dirs"+ as_dir=`$as_dirname -- "$as_dir" ||+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$as_dir" : 'X\(//\)[^/]' \| \+ X"$as_dir" : 'X\(//\)$' \| \+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_dir" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ test -d "$as_dir" && break+ done+ test -z "$as_dirs" || eval "mkdir $as_dirs"+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"+++} # as_fn_mkdir_p++# as_fn_executable_p FILE+# -----------------------+# Test if FILE is an executable regular file.+as_fn_executable_p ()+{+ test -f "$1" && test -x "$1"+} # as_fn_executable_p+# as_fn_append VAR VALUE+# ----------------------+# Append the text in VALUE to the end of the definition contained in VAR. Take+# advantage of any shell optimizations that allow amortized linear growth over+# repeated appends, instead of the typical quadratic growth present in naive+# implementations.+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :+ eval 'as_fn_append ()+ {+ eval $1+=\$2+ }'+else+ as_fn_append ()+ {+ eval $1=\$$1\$2+ }+fi # as_fn_append++# as_fn_arith ARG...+# ------------------+# Perform arithmetic evaluation on the ARGs, and store the result in the+# global $as_val. Take advantage of shells that can avoid forks. The arguments+# must be portable across $(()) and expr.+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :+ eval 'as_fn_arith ()+ {+ as_val=$(( $* ))+ }'+else+ as_fn_arith ()+ {+ as_val=`expr "$@" || test $? -eq 1`+ }+fi # as_fn_arith+++# as_fn_error STATUS ERROR [LINENO LOG_FD]+# ----------------------------------------+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the+# script with STATUS, using 1 if that was 0.+as_fn_error ()+{+ as_status=$1; test $as_status -eq 0 && as_status=1+ if test "$4"; then+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4+ fi+ $as_echo "$as_me: error: $2" >&2+ as_fn_exit $as_status+} # as_fn_error++if expr a : '\(a\)' >/dev/null 2>&1 &&+ test "X`expr 00001 : '.*\(...\)'`" = X001; then+ as_expr=expr+else+ as_expr=false+fi++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then+ as_basename=basename+else+ as_basename=false+fi++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then+ as_dirname=dirname+else+ as_dirname=false+fi++as_me=`$as_basename -- "$0" ||+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \+ X"$0" : 'X\(//\)$' \| \+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$0" |+ sed '/^.*\/\([^/][^/]*\)\/*$/{+ s//\1/+ q+ }+ /^X\/\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\/\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`++# Avoid depending upon Character Ranges.+as_cr_letters='abcdefghijklmnopqrstuvwxyz'+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+as_cr_Letters=$as_cr_letters$as_cr_LETTERS+as_cr_digits='0123456789'+as_cr_alnum=$as_cr_Letters$as_cr_digits+++ as_lineno_1=$LINENO as_lineno_1a=$LINENO+ as_lineno_2=$LINENO as_lineno_2a=$LINENO+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)+ sed -n '+ p+ /[$]LINENO/=+ ' <$as_myself |+ sed '+ s/[$]LINENO.*/&-/+ t lineno+ b+ :lineno+ N+ :loop+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/+ t loop+ s/-\n.*//+ ' >$as_me.lineno &&+ chmod +x "$as_me.lineno" ||+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }++ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have+ # already done that, so ensure we don't try to do so again and fall+ # in an infinite loop. This has already happened in practice.+ _as_can_reexec=no; export _as_can_reexec+ # Don't try to exec as it changes $[0], causing all sort of problems+ # (the dirname of $[0] is not the place where we might find the+ # original and so on. Autoconf is especially sensitive to this).+ . "./$as_me.lineno"+ # Exit status is that of the last command.+ exit+}++ECHO_C= ECHO_N= ECHO_T=+case `echo -n x` in #(((((+-n*)+ case `echo 'xy\c'` in+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.+ xy) ECHO_C='\c';;+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null+ ECHO_T=' ';;+ esac;;+*)+ ECHO_N='-n';;+esac++rm -f conf$$ conf$$.exe conf$$.file+if test -d conf$$.dir; then+ rm -f conf$$.dir/conf$$.file+else+ rm -f conf$$.dir+ mkdir conf$$.dir 2>/dev/null+fi+if (echo >conf$$.file) 2>/dev/null; then+ if ln -s conf$$.file conf$$ 2>/dev/null; then+ as_ln_s='ln -s'+ # ... but there are two gotchas:+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.+ # In both cases, we have to default to `cp -pR'.+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||+ as_ln_s='cp -pR'+ elif ln conf$$.file conf$$ 2>/dev/null; then+ as_ln_s=ln+ else+ as_ln_s='cp -pR'+ fi+else+ as_ln_s='cp -pR'+fi+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file+rmdir conf$$.dir 2>/dev/null++if mkdir -p . 2>/dev/null; then+ as_mkdir_p='mkdir -p "$as_dir"'+else+ test -d ./-p && rmdir ./-p+ as_mkdir_p=false+fi++as_test_x='test -x'+as_executable_p=as_fn_executable_p++# Sed expression to map a string onto a valid CPP name.+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"++# Sed expression to map a string onto a valid variable name.+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"++SHELL=${CONFIG_SHELL-/bin/sh}+++test -n "$DJDIR" || exec 7<&0 </dev/null+exec 6>&1++# Name of the host.+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,+# so uname gets run too.+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`++#+# Initializations.+#+ac_default_prefix=/usr/local+ac_clean_files=+ac_config_libobj_dir=.+LIBOBJS=+cross_compiling=no+subdirs=+MFLAGS=+MAKEFLAGS=++# Identity of this package.+PACKAGE_NAME='libffi'+PACKAGE_TARNAME='libffi'+PACKAGE_VERSION='3.6.0'+PACKAGE_STRING='libffi 3.6.0'+PACKAGE_BUGREPORT='http://github.com/libffi/libffi/issues'+PACKAGE_URL=''++# Factoring default headers for most tests.+ac_includes_default="\+#include <stdio.h>+#ifdef HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif+#ifdef HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif+#ifdef STDC_HEADERS+# include <stdlib.h>+# include <stddef.h>+#else+# ifdef HAVE_STDLIB_H+# include <stdlib.h>+# endif+#endif+#ifdef HAVE_STRING_H+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H+# include <memory.h>+# endif+# include <string.h>+#endif+#ifdef HAVE_STRINGS_H+# include <strings.h>+#endif+#ifdef HAVE_INTTYPES_H+# include <inttypes.h>+#endif+#ifdef HAVE_STDINT_H+# include <stdint.h>+#endif+#ifdef HAVE_UNISTD_H+# include <unistd.h>+#endif"++ac_subst_vars='LTLIBOBJS+LIBOBJS+EXTRA_LIBS+LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE+LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE+LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE+LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE+LIBFFI_BUILD_VERSIONED_SHLIB_FALSE+LIBFFI_BUILD_VERSIONED_SHLIB_TRUE+OPT_LDFLAGS+SECTION_LDFLAGS+FFI_DEBUG_FALSE+FFI_DEBUG_TRUE+EXTRA_ASM_SOURCES+EXTRA_SOURCES+TARGETDIR+TARGET+FFI_EXEC_TRAMPOLINE_TABLE+FFI_EXEC_TRAMPOLINE_TABLE_FALSE+FFI_EXEC_TRAMPOLINE_TABLE_TRUE+sys_symbol_underscore+WASM64_MEMORY64+HAVE_LONG_DOUBLE_VARIANT+HAVE_LONG_DOUBLE+AM_LTLDFLAGS+AM_RUNTESTFLAGS+MAINT+MAINTAINER_MODE_FALSE+MAINTAINER_MODE_TRUE+PRTDIAG+CXXCPP+CPP+LT_SYS_LIBRARY_PATH+OTOOL64+OTOOL+LIPO+NMEDIT+DSYMUTIL+MANIFEST_TOOL+AWK+RANLIB+STRIP+ac_ct_AR+AR+DLLTOOL+OBJDUMP+FILECMD+LN_S+NM+ac_ct_DUMPBIN+DUMPBIN+LD+FGREP+SED+LIBTOOL+EGREP+GREP+am__fastdepCCAS_FALSE+am__fastdepCCAS_TRUE+CCASDEPMODE+am__nodep+AMDEPBACKSLASH+AMDEP_FALSE+AMDEP_TRUE+am__include+DEPDIR+am__leading_dot+CCASFLAGS+CCAS+ac_ct_CXX+CXXFLAGS+CXX+OBJEXT+EXEEXT+ac_ct_CC+CPPFLAGS+LDFLAGS+CFLAGS+CC+ax_enable_builddir_sed+target_os+target_vendor+target_cpu+target+host_os+host_vendor+host_cpu+host+build_os+build_vendor+build_cpu+build+FFI_VERSION_NUMBER+FFI_VERSION_STRING+target_alias+host_alias+build_alias+LIBS+ECHO_T+ECHO_N+ECHO_C+DEFS+mandir+localedir+libdir+psdir+pdfdir+dvidir+htmldir+infodir+docdir+oldincludedir+includedir+localstatedir+sharedstatedir+sysconfdir+datadir+datarootdir+libexecdir+sbindir+bindir+program_transform_name+prefix+exec_prefix+PACKAGE_URL+PACKAGE_BUGREPORT+PACKAGE_STRING+PACKAGE_VERSION+PACKAGE_TARNAME+PACKAGE_NAME+PATH_SEPARATOR+SHELL+am__quote'+ac_subst_files=''+ac_user_opts='+enable_option_checking+enable_builddir+enable_dependency_tracking+enable_shared+enable_static+with_pic+enable_fast_install+with_aix_soname+with_gnu_ld+with_sysroot+enable_libtool_lock+enable_portable_binary+with_gcc_arch+enable_maintainer_mode+enable_pax_emutramp+enable_debug+enable_structs+enable_raw_api+enable_exec_static_tramp+enable_purify_safety+enable_symvers+'+ ac_precious_vars='build_alias+host_alias+target_alias+CCAS+CCASFLAGS+LT_SYS_LIBRARY_PATH+CPP+CPPFLAGS+CXXCPP+WASM64_MEMORY64'+++# Initialize some variables set by options.+ac_init_help=+ac_init_version=false+ac_unrecognized_opts=+ac_unrecognized_sep=+# The variables have the same names as the options, with+# dashes changed to underlines.+cache_file=/dev/null+exec_prefix=NONE+no_create=+no_recursion=+prefix=NONE+program_prefix=NONE+program_suffix=NONE+program_transform_name=s,x,x,+silent=+site=+srcdir=+verbose=+x_includes=NONE+x_libraries=NONE++# Installation directory options.+# These are left unexpanded so users can "make install exec_prefix=/foo"+# and all the variables that are supposed to be based on exec_prefix+# by default will actually change.+# Use braces instead of parens because sh, perl, etc. also accept them.+# (The list follows the same order as the GNU Coding Standards.)+bindir='${exec_prefix}/bin'+sbindir='${exec_prefix}/sbin'+libexecdir='${exec_prefix}/libexec'+datarootdir='${prefix}/share'+datadir='${datarootdir}'+sysconfdir='${prefix}/etc'+sharedstatedir='${prefix}/com'+localstatedir='${prefix}/var'+includedir='${prefix}/include'+oldincludedir='/usr/include'+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'+infodir='${datarootdir}/info'+htmldir='${docdir}'+dvidir='${docdir}'+pdfdir='${docdir}'+psdir='${docdir}'+libdir='${exec_prefix}/lib'+localedir='${datarootdir}/locale'+mandir='${datarootdir}/man'++ac_prev=+ac_dashdash=+for ac_option+do+ # If the previous option needs an argument, assign it.+ if test -n "$ac_prev"; then+ eval $ac_prev=\$ac_option+ ac_prev=+ continue+ fi++ case $ac_option in+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;+ *=) ac_optarg= ;;+ *) ac_optarg=yes ;;+ esac++ # Accept the important Cygnus configure options, so we can diagnose typos.++ case $ac_dashdash$ac_option in+ --)+ ac_dashdash=yes ;;++ -bindir | --bindir | --bindi | --bind | --bin | --bi)+ ac_prev=bindir ;;+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)+ bindir=$ac_optarg ;;++ -build | --build | --buil | --bui | --bu)+ ac_prev=build_alias ;;+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)+ build_alias=$ac_optarg ;;++ -cache-file | --cache-file | --cache-fil | --cache-fi \+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)+ ac_prev=cache_file ;;+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)+ cache_file=$ac_optarg ;;++ --config-cache | -C)+ cache_file=config.cache ;;++ -datadir | --datadir | --datadi | --datad)+ ac_prev=datadir ;;+ -datadir=* | --datadir=* | --datadi=* | --datad=*)+ datadir=$ac_optarg ;;++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \+ | --dataroo | --dataro | --datar)+ ac_prev=datarootdir ;;+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)+ datarootdir=$ac_optarg ;;++ -disable-* | --disable-*)+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ as_fn_error $? "invalid feature name: $ac_useropt"+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"enable_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval enable_$ac_useropt=no ;;++ -docdir | --docdir | --docdi | --doc | --do)+ ac_prev=docdir ;;+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)+ docdir=$ac_optarg ;;++ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)+ ac_prev=dvidir ;;+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)+ dvidir=$ac_optarg ;;++ -enable-* | --enable-*)+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ as_fn_error $? "invalid feature name: $ac_useropt"+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"enable_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval enable_$ac_useropt=\$ac_optarg ;;++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \+ | --exec | --exe | --ex)+ ac_prev=exec_prefix ;;+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \+ | --exec=* | --exe=* | --ex=*)+ exec_prefix=$ac_optarg ;;++ -gas | --gas | --ga | --g)+ # Obsolete; use --with-gas.+ with_gas=yes ;;++ -help | --help | --hel | --he | -h)+ ac_init_help=long ;;+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)+ ac_init_help=recursive ;;+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)+ ac_init_help=short ;;++ -host | --host | --hos | --ho)+ ac_prev=host_alias ;;+ -host=* | --host=* | --hos=* | --ho=*)+ host_alias=$ac_optarg ;;++ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)+ ac_prev=htmldir ;;+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \+ | --ht=*)+ htmldir=$ac_optarg ;;++ -includedir | --includedir | --includedi | --included | --include \+ | --includ | --inclu | --incl | --inc)+ ac_prev=includedir ;;+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \+ | --includ=* | --inclu=* | --incl=* | --inc=*)+ includedir=$ac_optarg ;;++ -infodir | --infodir | --infodi | --infod | --info | --inf)+ ac_prev=infodir ;;+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)+ infodir=$ac_optarg ;;++ -libdir | --libdir | --libdi | --libd)+ ac_prev=libdir ;;+ -libdir=* | --libdir=* | --libdi=* | --libd=*)+ libdir=$ac_optarg ;;++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \+ | --libexe | --libex | --libe)+ ac_prev=libexecdir ;;+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \+ | --libexe=* | --libex=* | --libe=*)+ libexecdir=$ac_optarg ;;++ -localedir | --localedir | --localedi | --localed | --locale)+ ac_prev=localedir ;;+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)+ localedir=$ac_optarg ;;++ -localstatedir | --localstatedir | --localstatedi | --localstated \+ | --localstate | --localstat | --localsta | --localst | --locals)+ ac_prev=localstatedir ;;+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)+ localstatedir=$ac_optarg ;;++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)+ ac_prev=mandir ;;+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)+ mandir=$ac_optarg ;;++ -nfp | --nfp | --nf)+ # Obsolete; use --without-fp.+ with_fp=no ;;++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \+ | --no-cr | --no-c | -n)+ no_create=yes ;;++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)+ no_recursion=yes ;;++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \+ | --oldin | --oldi | --old | --ol | --o)+ ac_prev=oldincludedir ;;+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)+ oldincludedir=$ac_optarg ;;++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)+ ac_prev=prefix ;;+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)+ prefix=$ac_optarg ;;++ -program-prefix | --program-prefix | --program-prefi | --program-pref \+ | --program-pre | --program-pr | --program-p)+ ac_prev=program_prefix ;;+ -program-prefix=* | --program-prefix=* | --program-prefi=* \+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)+ program_prefix=$ac_optarg ;;++ -program-suffix | --program-suffix | --program-suffi | --program-suff \+ | --program-suf | --program-su | --program-s)+ ac_prev=program_suffix ;;+ -program-suffix=* | --program-suffix=* | --program-suffi=* \+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)+ program_suffix=$ac_optarg ;;++ -program-transform-name | --program-transform-name \+ | --program-transform-nam | --program-transform-na \+ | --program-transform-n | --program-transform- \+ | --program-transform | --program-transfor \+ | --program-transfo | --program-transf \+ | --program-trans | --program-tran \+ | --progr-tra | --program-tr | --program-t)+ ac_prev=program_transform_name ;;+ -program-transform-name=* | --program-transform-name=* \+ | --program-transform-nam=* | --program-transform-na=* \+ | --program-transform-n=* | --program-transform-=* \+ | --program-transform=* | --program-transfor=* \+ | --program-transfo=* | --program-transf=* \+ | --program-trans=* | --program-tran=* \+ | --progr-tra=* | --program-tr=* | --program-t=*)+ program_transform_name=$ac_optarg ;;++ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)+ ac_prev=pdfdir ;;+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)+ pdfdir=$ac_optarg ;;++ -psdir | --psdir | --psdi | --psd | --ps)+ ac_prev=psdir ;;+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)+ psdir=$ac_optarg ;;++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil)+ silent=yes ;;++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)+ ac_prev=sbindir ;;+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \+ | --sbi=* | --sb=*)+ sbindir=$ac_optarg ;;++ -sharedstatedir | --sharedstatedir | --sharedstatedi \+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \+ | --sharedst | --shareds | --shared | --share | --shar \+ | --sha | --sh)+ ac_prev=sharedstatedir ;;+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \+ | --sha=* | --sh=*)+ sharedstatedir=$ac_optarg ;;++ -site | --site | --sit)+ ac_prev=site ;;+ -site=* | --site=* | --sit=*)+ site=$ac_optarg ;;++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)+ ac_prev=srcdir ;;+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)+ srcdir=$ac_optarg ;;++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \+ | --syscon | --sysco | --sysc | --sys | --sy)+ ac_prev=sysconfdir ;;+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)+ sysconfdir=$ac_optarg ;;++ -target | --target | --targe | --targ | --tar | --ta | --t)+ ac_prev=target_alias ;;+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)+ target_alias=$ac_optarg ;;++ -v | -verbose | --verbose | --verbos | --verbo | --verb)+ verbose=yes ;;++ -version | --version | --versio | --versi | --vers | -V)+ ac_init_version=: ;;++ -with-* | --with-*)+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ as_fn_error $? "invalid package name: $ac_useropt"+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"with_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval with_$ac_useropt=\$ac_optarg ;;++ -without-* | --without-*)+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ as_fn_error $? "invalid package name: $ac_useropt"+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"with_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval with_$ac_useropt=no ;;++ --x)+ # Obsolete; use --with-x.+ with_x=yes ;;++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \+ | --x-incl | --x-inc | --x-in | --x-i)+ ac_prev=x_includes ;;+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)+ x_includes=$ac_optarg ;;++ -x-libraries | --x-libraries | --x-librarie | --x-librari \+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)+ ac_prev=x_libraries ;;+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)+ x_libraries=$ac_optarg ;;++ -*) as_fn_error $? "unrecognized option: \`$ac_option'+Try \`$0 --help' for more information"+ ;;++ *=*)+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`+ # Reject names that are not valid shell variable names.+ case $ac_envvar in #(+ '' | [0-9]* | *[!_$as_cr_alnum]* )+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;+ esac+ eval $ac_envvar=\$ac_optarg+ export $ac_envvar ;;++ *)+ # FIXME: should be removed in autoconf 3.0.+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"+ ;;++ esac+done++if test -n "$ac_prev"; then+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`+ as_fn_error $? "missing argument to $ac_option"+fi++if test -n "$ac_unrecognized_opts"; then+ case $enable_option_checking in+ no) ;;+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;+ esac+fi++# Check all directory arguments for consistency.+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \+ datadir sysconfdir sharedstatedir localstatedir includedir \+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \+ libdir localedir mandir+do+ eval ac_val=\$$ac_var+ # Remove trailing slashes.+ case $ac_val in+ */ )+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`+ eval $ac_var=\$ac_val;;+ esac+ # Be sure to have absolute directory names.+ case $ac_val in+ [\\/$]* | ?:[\\/]* ) continue;;+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;+ esac+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"+done++# There might be people who depend on the old broken behavior: `$host'+# used to hold the argument of --host etc.+# FIXME: To remove some day.+build=$build_alias+host=$host_alias+target=$target_alias++# FIXME: To remove some day.+if test "x$host_alias" != x; then+ if test "x$build_alias" = x; then+ cross_compiling=maybe+ elif test "x$build_alias" != "x$host_alias"; then+ cross_compiling=yes+ fi+fi++ac_tool_prefix=+test -n "$host_alias" && ac_tool_prefix=$host_alias-++test "$silent" = yes && exec 6>/dev/null+++ac_pwd=`pwd` && test -n "$ac_pwd" &&+ac_ls_di=`ls -di .` &&+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||+ as_fn_error $? "working directory cannot be determined"+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||+ as_fn_error $? "pwd does not report name of working directory"+++# Find the source files, if location was not specified.+if test -z "$srcdir"; then+ ac_srcdir_defaulted=yes+ # Try the directory containing this script, then the parent directory.+ ac_confdir=`$as_dirname -- "$as_myself" ||+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$as_myself" : 'X\(//\)[^/]' \| \+ X"$as_myself" : 'X\(//\)$' \| \+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_myself" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ srcdir=$ac_confdir+ if test ! -r "$srcdir/$ac_unique_file"; then+ srcdir=..+ fi+else+ ac_srcdir_defaulted=no+fi+if test ! -r "$srcdir/$ac_unique_file"; then+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"+fi+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"+ac_abs_confdir=`(+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"+ pwd)`+# When building in place, set srcdir=.+if test "$ac_abs_confdir" = "$ac_pwd"; then+ srcdir=.+fi+# Remove unnecessary trailing slashes from srcdir.+# Double slashes in file names in object file debugging info+# mess up M-x gdb in Emacs.+case $srcdir in+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;+esac+for ac_var in $ac_precious_vars; do+ eval ac_env_${ac_var}_set=\${${ac_var}+set}+ eval ac_env_${ac_var}_value=\$${ac_var}+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}+ eval ac_cv_env_${ac_var}_value=\$${ac_var}+done++#+# Report the --help message.+#+if test "$ac_init_help" = "long"; then+ # Omit some internal or obsolete options to make the list less imposing.+ # This message is too long to be a string in the A/UX 3.1 sh.+ cat <<_ACEOF+\`configure' configures libffi 3.6.0 to adapt to many kinds of systems.++Usage: $0 [OPTION]... [VAR=VALUE]...++To assign environment variables (e.g., CC, CFLAGS...), specify them as+VAR=VALUE. See below for descriptions of some of the useful variables.++Defaults for the options are specified in brackets.++Configuration:+ -h, --help display this help and exit+ --help=short display options specific to this package+ --help=recursive display the short help of all the included packages+ -V, --version display version information and exit+ -q, --quiet, --silent do not print \`checking ...' messages+ --cache-file=FILE cache test results in FILE [disabled]+ -C, --config-cache alias for \`--cache-file=config.cache'+ -n, --no-create do not create output files+ --srcdir=DIR find the sources in DIR [configure dir or \`..']++Installation directories:+ --prefix=PREFIX install architecture-independent files in PREFIX+ [$ac_default_prefix]+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX+ [PREFIX]++By default, \`make install' will install all the files in+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify+an installation prefix other than \`$ac_default_prefix' using \`--prefix',+for instance \`--prefix=\$HOME'.++For better control, use the options below.++Fine tuning of the installation directories:+ --bindir=DIR user executables [EPREFIX/bin]+ --sbindir=DIR system admin executables [EPREFIX/sbin]+ --libexecdir=DIR program executables [EPREFIX/libexec]+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]+ --libdir=DIR object code libraries [EPREFIX/lib]+ --includedir=DIR C header files [PREFIX/include]+ --oldincludedir=DIR C header files for non-gcc [/usr/include]+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]+ --infodir=DIR info documentation [DATAROOTDIR/info]+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]+ --mandir=DIR man documentation [DATAROOTDIR/man]+ --docdir=DIR documentation root [DATAROOTDIR/doc/libffi]+ --htmldir=DIR html documentation [DOCDIR]+ --dvidir=DIR dvi documentation [DOCDIR]+ --pdfdir=DIR pdf documentation [DOCDIR]+ --psdir=DIR ps documentation [DOCDIR]+_ACEOF++ cat <<\_ACEOF++System types:+ --build=BUILD configure for building on BUILD [guessed]+ --host=HOST cross-compile to build programs to run on HOST [BUILD]+ --target=TARGET configure for building compilers for TARGET [HOST]+_ACEOF+fi++if test -n "$ac_init_help"; then+ case $ac_init_help in+ short | recursive ) echo "Configuration of libffi 3.6.0:";;+ esac+ cat <<\_ACEOF++Optional Features:+ --disable-option-checking ignore unrecognized --enable/--with options+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]+ --disable-builddir disable automatic build in subdir of sources++ --enable-dependency-tracking+ do not reject slow dependency extractors+ --disable-dependency-tracking+ speeds up one-time build+ --enable-shared[=PKGS] build shared libraries [default=yes]+ --enable-static[=PKGS] build static libraries [default=yes]+ --enable-fast-install[=PKGS]+ optimize for fast installation [default=yes]+ --disable-libtool-lock avoid locking (might break parallel builds)+ --enable-portable-binary+ disable compiler optimizations that would produce+ unportable binaries+ --enable-maintainer-mode+ enable make rules and dependencies not useful (and+ sometimes confusing) to the casual installer+ --enable-pax_emutramp enable pax emulated trampolines (experimental)+ --enable-debug debugging mode+ --disable-structs omit code for struct support+ --disable-raw-api make the raw api unavailable+ --disable-exec-static-tramp disable use of static exec trampolines (enabled by default)+ --enable-purify-safety purify-safe mode+ --enable-symvers=STYLE enables symbol versioning of the shared library+ [default=yes]++Optional Packages:+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use+ both]+ --with-aix-soname=aix|svr4|both+ shared library versioning (aka "SONAME") variant to+ provide on AIX, [default=aix].+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]+ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the+ compiler's sysroot if not specified).+ --with-gcc-arch=<arch> use architecture <arch> for gcc -march/-mtune,+ instead of guessing++Some influential environment variables:+ CC C compiler command+ CFLAGS C compiler flags+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a+ nonstandard directory <lib dir>+ LIBS libraries to pass to the linker, e.g. -l<library>+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if+ you have headers in a nonstandard directory <include dir>+ CXX C++ compiler command+ CXXFLAGS C++ compiler flags+ CCAS assembler compiler command (defaults to CC)+ CCASFLAGS assembler compiler flags (defaults to CFLAGS)+ LT_SYS_LIBRARY_PATH+ User-defined run-time library search path.+ CPP C preprocessor+ CXXCPP C++ preprocessor+ WASM64_MEMORY64+ Used only for the wasm64 target. Set to 1 (default) or 2 for+ Emscripten's -sMEMORY64 mode++Use these variables to override the choices made by `configure' or to help+it to find libraries and programs with nonstandard names/locations.++Report bugs to <http://github.com/libffi/libffi/issues>.+_ACEOF+ac_status=$?+fi++if test "$ac_init_help" = "recursive"; then+ # If there are subdirs, report their specific --help.+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue+ test -d "$ac_dir" ||+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||+ continue+ ac_builddir=.++case "$ac_dir" in+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;+*)+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`+ # A ".." for each directory in $ac_dir_suffix.+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`+ case $ac_top_builddir_sub in+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;+ esac ;;+esac+ac_abs_top_builddir=$ac_pwd+ac_abs_builddir=$ac_pwd$ac_dir_suffix+# for backward compatibility:+ac_top_builddir=$ac_top_build_prefix++case $srcdir in+ .) # We are building in place.+ ac_srcdir=.+ ac_top_srcdir=$ac_top_builddir_sub+ ac_abs_top_srcdir=$ac_pwd ;;+ [\\/]* | ?:[\\/]* ) # Absolute name.+ ac_srcdir=$srcdir$ac_dir_suffix;+ ac_top_srcdir=$srcdir+ ac_abs_top_srcdir=$srcdir ;;+ *) # Relative name.+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix+ ac_top_srcdir=$ac_top_build_prefix$srcdir+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;+esac+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix++ cd "$ac_dir" || { ac_status=$?; continue; }+ # Check for guested configure.+ if test -f "$ac_srcdir/configure.gnu"; then+ echo &&+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive+ elif test -f "$ac_srcdir/configure"; then+ echo &&+ $SHELL "$ac_srcdir/configure" --help=recursive+ else+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2+ fi || ac_status=$?+ cd "$ac_pwd" || { ac_status=$?; break; }+ done+fi++test -n "$ac_init_help" && exit $ac_status+if $ac_init_version; then+ cat <<\_ACEOF+libffi configure 3.6.0+generated by GNU Autoconf 2.69++Copyright (C) 2012 Free Software Foundation, Inc.+This configure script is free software; the Free Software Foundation+gives unlimited permission to copy, distribute and modify it.+_ACEOF+ exit+fi++## ------------------------ ##+## Autoconf initialization. ##+## ------------------------ ##++# ac_fn_c_try_compile LINENO+# --------------------------+# Try to compile conftest.$ac_ext, and return whether this succeeded.+ac_fn_c_try_compile ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ rm -f conftest.$ac_objext+ if { { ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compile") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ grep -v '^ *+' conftest.err >conftest.er1+ cat conftest.er1 >&5+ mv -f conftest.er1 conftest.err+ fi+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then :+ ac_retval=0+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=1+fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_c_try_compile++# ac_fn_cxx_try_compile LINENO+# ----------------------------+# Try to compile conftest.$ac_ext, and return whether this succeeded.+ac_fn_cxx_try_compile ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ rm -f conftest.$ac_objext+ if { { ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compile") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ grep -v '^ *+' conftest.err >conftest.er1+ cat conftest.er1 >&5+ mv -f conftest.er1 conftest.err+ fi+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && {+ test -z "$ac_cxx_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then :+ ac_retval=0+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=1+fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_cxx_try_compile++# ac_fn_c_try_link LINENO+# -----------------------+# Try to link conftest.$ac_ext, and return whether this succeeded.+ac_fn_c_try_link ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ rm -f conftest.$ac_objext conftest$ac_exeext+ if { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ grep -v '^ *+' conftest.err >conftest.er1+ cat conftest.er1 >&5+ mv -f conftest.er1 conftest.err+ fi+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ test -x conftest$ac_exeext+ }; then :+ ac_retval=0+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=1+fi+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would+ # interfere with the next link command; also delete a directory that is+ # left behind by Apple's compiler. We do this before executing the actions.+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_c_try_link++# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES+# -------------------------------------------------------+# Tests whether HEADER exists and can be compiled using the include files in+# INCLUDES, setting the cache variable VAR accordingly.+ac_fn_c_check_header_compile ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5+$as_echo_n "checking for $2... " >&6; }+if eval \${$3+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+#include <$2>+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ eval "$3=yes"+else+ eval "$3=no"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+eval ac_res=\$$3+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno++} # ac_fn_c_check_header_compile++# ac_fn_c_try_cpp LINENO+# ----------------------+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.+ac_fn_c_try_cpp ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ if { { ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ grep -v '^ *+' conftest.err >conftest.er1+ cat conftest.er1 >&5+ mv -f conftest.er1 conftest.err+ fi+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } > conftest.i && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then :+ ac_retval=0+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=1+fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_c_try_cpp++# ac_fn_c_try_run LINENO+# ----------------------+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes+# that executables *can* be run.+ac_fn_c_try_run ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ if { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'+ { { case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_try") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; }; then :+ ac_retval=0+else+ $as_echo "$as_me: program exited with status $ac_status" >&5+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=$ac_status+fi+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_c_try_run++# ac_fn_c_check_func LINENO FUNC VAR+# ----------------------------------+# Tests whether FUNC exists, setting the cache variable VAR accordingly+ac_fn_c_check_func ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5+$as_echo_n "checking for $2... " >&6; }+if eval \${$3+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.+ For example, HP-UX 11i <limits.h> declares gettimeofday. */+#define $2 innocuous_$2++/* System header to define __stub macros and hopefully few prototypes,+ which can conflict with char $2 (); below.+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ <limits.h> exists even on freestanding compilers. */++#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif++#undef $2++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char $2 ();+/* The GNU C library defines this for functions which it implements+ to always fail with ENOSYS. Some functions are actually named+ something starting with __ and the normal name is an alias. */+#if defined __stub_$2 || defined __stub___$2+choke me+#endif++int+main ()+{+return $2 ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ eval "$3=yes"+else+ eval "$3=no"+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+fi+eval ac_res=\$$3+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno++} # ac_fn_c_check_func++# ac_fn_cxx_try_cpp LINENO+# ------------------------+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.+ac_fn_cxx_try_cpp ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ if { { ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ grep -v '^ *+' conftest.err >conftest.er1+ cat conftest.er1 >&5+ mv -f conftest.er1 conftest.err+ fi+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } > conftest.i && {+ test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||+ test ! -s conftest.err+ }; then :+ ac_retval=0+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=1+fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_cxx_try_cpp++# ac_fn_cxx_try_link LINENO+# -------------------------+# Try to link conftest.$ac_ext, and return whether this succeeded.+ac_fn_cxx_try_link ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ rm -f conftest.$ac_objext conftest$ac_exeext+ if { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ grep -v '^ *+' conftest.err >conftest.er1+ cat conftest.er1 >&5+ mv -f conftest.er1 conftest.err+ fi+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && {+ test -z "$ac_cxx_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ test -x conftest$ac_exeext+ }; then :+ ac_retval=0+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_retval=1+fi+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would+ # interfere with the next link command; also delete a directory that is+ # left behind by Apple's compiler. We do this before executing the actions.+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_cxx_try_link++# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES+# --------------------------------------------+# Tries to find the compile-time value of EXPR in a program that includes+# INCLUDES, setting VAR accordingly. Returns whether the value could be+# computed+ac_fn_c_compute_int ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ if test "$cross_compiling" = yes; then+ # Depending upon the size, compute the lo and hi bounds.+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) >= 0)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_lo=0 ac_mid=0+ while :; do+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) <= $ac_mid)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_hi=$ac_mid; break+else+ as_fn_arith $ac_mid + 1 && ac_lo=$as_val+ if test $ac_lo -le $ac_mid; then+ ac_lo= ac_hi=+ break+ fi+ as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ done+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) < 0)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_hi=-1 ac_mid=-1+ while :; do+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) >= $ac_mid)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_lo=$ac_mid; break+else+ as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val+ if test $ac_mid -le $ac_hi; then+ ac_lo= ac_hi=+ break+ fi+ as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ done+else+ ac_lo= ac_hi=+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+# Binary search between lo and hi bounds.+while test "x$ac_lo" != "x$ac_hi"; do+ as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+static int test_array [1 - 2 * !(($2) <= $ac_mid)];+test_array [0] = 0;+return test_array [0];++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_hi=$ac_mid+else+ as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+done+case $ac_lo in #((+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;+'') ac_retval=1 ;;+esac+ else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+static long int longval () { return $2; }+static unsigned long int ulongval () { return $2; }+#include <stdio.h>+#include <stdlib.h>+int+main ()+{++ FILE *f = fopen ("conftest.val", "w");+ if (! f)+ return 1;+ if (($2) < 0)+ {+ long int i = longval ();+ if (i != ($2))+ return 1;+ fprintf (f, "%ld", i);+ }+ else+ {+ unsigned long int i = ulongval ();+ if (i != ($2))+ return 1;+ fprintf (f, "%lu", i);+ }+ /* Do not output a trailing newline, as this causes \r\n confusion+ on some platforms. */+ return ferror (f) || fclose (f) != 0;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ echo >>conftest.val; read $3 <conftest.val; ac_retval=0+else+ ac_retval=1+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f conftest.val++ fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno+ as_fn_set_status $ac_retval++} # ac_fn_c_compute_int++# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES+# -------------------------------------------------------+# Tests whether HEADER exists, giving a warning if it cannot be compiled using+# the include files in INCLUDES and setting the cache variable VAR+# accordingly.+ac_fn_c_check_header_mongrel ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ if eval \${$3+:} false; then :+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5+$as_echo_n "checking for $2... " >&6; }+if eval \${$3+:} false; then :+ $as_echo_n "(cached) " >&6+fi+eval ac_res=\$$3+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+else+ # Is the header compilable?+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5+$as_echo_n "checking $2 usability... " >&6; }+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+#include <$2>+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_header_compiler=yes+else+ ac_header_compiler=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5+$as_echo_n "checking $2 presence... " >&6; }+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <$2>+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :+ ac_header_preproc=yes+else+ ac_header_preproc=no+fi+rm -f conftest.err conftest.i conftest.$ac_ext+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So? What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((+ yes:no: )+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}+ ;;+ no:yes:* )+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}+( $as_echo "## ----------------------------------------------------- ##+## Report this to http://github.com/libffi/libffi/issues ##+## ----------------------------------------------------- ##"+ ) | sed "s/^/$as_me: WARNING: /" >&2+ ;;+esac+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5+$as_echo_n "checking for $2... " >&6; }+if eval \${$3+:} false; then :+ $as_echo_n "(cached) " >&6+else+ eval "$3=\$ac_header_compiler"+fi+eval ac_res=\$$3+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+fi+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno++} # ac_fn_c_check_header_mongrel++# ac_fn_c_check_type LINENO TYPE VAR INCLUDES+# -------------------------------------------+# Tests whether TYPE exists after having included INCLUDES, setting cache+# variable VAR accordingly.+ac_fn_c_check_type ()+{+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5+$as_echo_n "checking for $2... " >&6; }+if eval \${$3+:} false; then :+ $as_echo_n "(cached) " >&6+else+ eval "$3=no"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+if (sizeof ($2))+ return 0;+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$4+int+main ()+{+if (sizeof (($2)))+ return 0;+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :++else+ eval "$3=yes"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+eval ac_res=\$$3+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno++} # ac_fn_c_check_type+cat >config.log <<_ACEOF+This file contains any messages produced by compilers while+running configure, to aid debugging if configure makes a mistake.++It was created by libffi $as_me 3.6.0, which was+generated by GNU Autoconf 2.69. Invocation command line was++ $ $0 $@++_ACEOF+exec 5>>config.log+{+cat <<_ASUNAME+## --------- ##+## Platform. ##+## --------- ##++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`+uname -m = `(uname -m) 2>/dev/null || echo unknown`+uname -r = `(uname -r) 2>/dev/null || echo unknown`+uname -s = `(uname -s) 2>/dev/null || echo unknown`+uname -v = `(uname -v) 2>/dev/null || echo unknown`++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`++_ASUNAME++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ $as_echo "PATH: $as_dir"+ done+IFS=$as_save_IFS++} >&5++cat >&5 <<_ACEOF+++## ----------- ##+## Core tests. ##+## ----------- ##++_ACEOF+++# Keep a trace of the command line.+# Strip out --no-create and --no-recursion so they do not pile up.+# Strip out --silent because we don't want to record it for future runs.+# Also quote any args containing shell meta-characters.+# Make two passes to allow for proper duplicate-argument suppression.+ac_configure_args=+ac_configure_args0=+ac_configure_args1=+ac_must_keep_next=false+for ac_pass in 1 2+do+ for ac_arg+ do+ case $ac_arg in+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil)+ continue ;;+ *\'*)+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;+ esac+ case $ac_pass in+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;+ 2)+ as_fn_append ac_configure_args1 " '$ac_arg'"+ if test $ac_must_keep_next = true; then+ ac_must_keep_next=false # Got value, back to normal.+ else+ case $ac_arg in+ *=* | --config-cache | -C | -disable-* | --disable-* \+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \+ | -with-* | --with-* | -without-* | --without-* | --x)+ case "$ac_configure_args0 " in+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;+ esac+ ;;+ -* ) ac_must_keep_next=true ;;+ esac+ fi+ as_fn_append ac_configure_args " '$ac_arg'"+ ;;+ esac+ done+done+{ ac_configure_args0=; unset ac_configure_args0;}+{ ac_configure_args1=; unset ac_configure_args1;}++# When interrupted or exit'd, cleanup temporary files, and complete+# config.log. We remove comments because anyway the quotes in there+# would cause problems or look ugly.+# WARNING: Use '\'' to represent an apostrophe within the trap.+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.+trap 'exit_status=$?+ # Save into config.log some information that might help in debugging.+ {+ echo++ $as_echo "## ---------------- ##+## Cache variables. ##+## ---------------- ##"+ echo+ # The following way of writing the cache mishandles newlines in values,+(+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do+ eval ac_val=\$$ac_var+ case $ac_val in #(+ *${as_nl}*)+ case $ac_var in #(+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+ esac+ case $ac_var in #(+ _ | IFS | as_nl) ;; #(+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+ *) { eval $ac_var=; unset $ac_var;} ;;+ esac ;;+ esac+ done+ (set) 2>&1 |+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(+ *${as_nl}ac_space=\ *)+ sed -n \+ "s/'\''/'\''\\\\'\'''\''/g;+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"+ ;; #(+ *)+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+ ;;+ esac |+ sort+)+ echo++ $as_echo "## ----------------- ##+## Output variables. ##+## ----------------- ##"+ echo+ for ac_var in $ac_subst_vars+ do+ eval ac_val=\$$ac_var+ case $ac_val in+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+ esac+ $as_echo "$ac_var='\''$ac_val'\''"+ done | sort+ echo++ if test -n "$ac_subst_files"; then+ $as_echo "## ------------------- ##+## File substitutions. ##+## ------------------- ##"+ echo+ for ac_var in $ac_subst_files+ do+ eval ac_val=\$$ac_var+ case $ac_val in+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+ esac+ $as_echo "$ac_var='\''$ac_val'\''"+ done | sort+ echo+ fi++ if test -s confdefs.h; then+ $as_echo "## ----------- ##+## confdefs.h. ##+## ----------- ##"+ echo+ cat confdefs.h+ echo+ fi+ test "$ac_signal" != 0 &&+ $as_echo "$as_me: caught signal $ac_signal"+ $as_echo "$as_me: exit $exit_status"+ } >&5+ rm -f core *.core core.conftest.* &&+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&+ exit $exit_status+' 0+for ac_signal in 1 2 13 15; do+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal+done+ac_signal=0++# confdefs.h avoids OS command line length limits that DEFS can exceed.+rm -f -r conftest* confdefs.h++$as_echo "/* confdefs.h */" > confdefs.h++# Predefined preprocessor variables.++cat >>confdefs.h <<_ACEOF+#define PACKAGE_NAME "$PACKAGE_NAME"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_VERSION "$PACKAGE_VERSION"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_STRING "$PACKAGE_STRING"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"+_ACEOF++cat >>confdefs.h <<_ACEOF+#define PACKAGE_URL "$PACKAGE_URL"+_ACEOF+++# Let the site file select an alternate cache file if it wants to.+# Prefer an explicitly selected file to automatically selected ones.+ac_site_file1=NONE+ac_site_file2=NONE+if test -n "$CONFIG_SITE"; then+ # We do not want a PATH search for config.site.+ case $CONFIG_SITE in #((+ -*) ac_site_file1=./$CONFIG_SITE;;+ */*) ac_site_file1=$CONFIG_SITE;;+ *) ac_site_file1=./$CONFIG_SITE;;+ esac+elif test "x$prefix" != xNONE; then+ ac_site_file1=$prefix/share/config.site+ ac_site_file2=$prefix/etc/config.site+else+ ac_site_file1=$ac_default_prefix/share/config.site+ ac_site_file2=$ac_default_prefix/etc/config.site+fi+for ac_site_file in "$ac_site_file1" "$ac_site_file2"+do+ test "x$ac_site_file" = xNONE && continue+ if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5+$as_echo "$as_me: loading site script $ac_site_file" >&6;}+ sed 's/^/| /' "$ac_site_file" >&5+ . "$ac_site_file" \+ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "failed to load site script $ac_site_file+See \`config.log' for more details" "$LINENO" 5; }+ fi+done++if test -r "$cache_file"; then+ # Some versions of bash will fail to source /dev/null (special files+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5+$as_echo "$as_me: loading cache $cache_file" >&6;}+ case $cache_file in+ [\\/]* | ?:[\\/]* ) . "$cache_file";;+ *) . "./$cache_file";;+ esac+ fi+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5+$as_echo "$as_me: creating cache $cache_file" >&6;}+ >$cache_file+fi++# Check that the precious variables saved in the cache have kept the same+# value.+ac_cache_corrupted=false+for ac_var in $ac_precious_vars; do+ eval ac_old_set=\$ac_cv_env_${ac_var}_set+ eval ac_new_set=\$ac_env_${ac_var}_set+ eval ac_old_val=\$ac_cv_env_${ac_var}_value+ eval ac_new_val=\$ac_env_${ac_var}_value+ case $ac_old_set,$ac_new_set in+ set,)+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}+ ac_cache_corrupted=: ;;+ ,set)+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}+ ac_cache_corrupted=: ;;+ ,);;+ *)+ if test "x$ac_old_val" != "x$ac_new_val"; then+ # differences in whitespace do not lead to failure.+ ac_old_val_w=`echo x $ac_old_val`+ ac_new_val_w=`echo x $ac_new_val`+ if test "$ac_old_val_w" != "$ac_new_val_w"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}+ ac_cache_corrupted=:+ else+ { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}+ eval $ac_var=\$ac_old_val+ fi+ { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}+ fi;;+ esac+ # Pass precious variables to config.status.+ if test "$ac_new_set" = set; then+ case $ac_new_val in+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;+ *) ac_arg=$ac_var=$ac_new_val ;;+ esac+ case " $ac_configure_args " in+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;+ esac+ fi+done+if $ac_cache_corrupted; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}+ as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5+fi+## -------------------- ##+## Main body of script. ##+## -------------------- ##++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++ac_config_headers="$ac_config_headers fficonfig.h"+++FFI_VERSION_STRING="3.5.2"+FFI_VERSION_NUMBER=30502++++ac_aux_dir=+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do+ if test -f "$ac_dir/install-sh"; then+ ac_aux_dir=$ac_dir+ ac_install_sh="$ac_aux_dir/install-sh -c"+ break+ elif test -f "$ac_dir/install.sh"; then+ ac_aux_dir=$ac_dir+ ac_install_sh="$ac_aux_dir/install.sh -c"+ break+ elif test -f "$ac_dir/shtool"; then+ ac_aux_dir=$ac_dir+ ac_install_sh="$ac_aux_dir/shtool install -c"+ break+ fi+done+if test -z "$ac_aux_dir"; then+ as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5+fi++# These three variables are undocumented and unsupported,+# and are intended to be withdrawn in a future Autoconf release.+# They can cause serious problems if a builder's source tree is in a directory+# whose full name contains unusual characters.+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.+++# Make sure we can run config.sub.+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||+ as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5+$as_echo_n "checking build system type... " >&6; }+if ${ac_cv_build+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_build_alias=$build_alias+test "x$ac_build_alias" = x &&+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`+test "x$ac_build_alias" = x &&+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5+$as_echo "$ac_cv_build" >&6; }+case $ac_cv_build in+*-*-*) ;;+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;+esac+build=$ac_cv_build+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_build+shift+build_cpu=$1+build_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+build_os=$*+IFS=$ac_save_IFS+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5+$as_echo_n "checking host system type... " >&6; }+if ${ac_cv_host+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test "x$host_alias" = x; then+ ac_cv_host=$ac_cv_build+else+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5+$as_echo "$ac_cv_host" >&6; }+case $ac_cv_host in+*-*-*) ;;+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;+esac+host=$ac_cv_host+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_host+shift+host_cpu=$1+host_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+host_os=$*+IFS=$ac_save_IFS+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5+$as_echo_n "checking target system type... " >&6; }+if ${ac_cv_target+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test "x$target_alias" = x; then+ ac_cv_target=$ac_cv_host+else+ ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||+ as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5+$as_echo "$ac_cv_target" >&6; }+case $ac_cv_target in+*-*-*) ;;+*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;;+esac+target=$ac_cv_target+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_target+shift+target_cpu=$1+target_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+target_os=$*+IFS=$ac_save_IFS+case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac+++# The aliases save the names the user supplied, while $host etc.+# will get canonicalized.+test -n "$target_alias" &&+ test "$program_prefix$program_suffix$program_transform_name" = \+ NONENONEs,x,x, &&+ program_prefix=${target_alias}-+target_alias=${target_alias-$host_alias}++case "${host}" in+ frv*-elf)+ LDFLAGS=`echo $LDFLAGS | sed "s/\-B^ *libgloss\/frv\///"`\ -B`pwd`/../libgloss/frv/+ ;;+esac+++ # [$]@ is unusable in 2.60+ but earlier autoconf had no ac_configure_args+ if test "${ac_configure_args+set}" != "set" ; then+ ac_configure_args=+ for ac_arg in ${1+"$@"}; do+ ac_configure_args="$ac_configure_args '$ac_arg'"+ done+ fi++# Expand $ac_aux_dir to an absolute path.+am_aux_dir=`cd "$ac_aux_dir" && pwd`+++ax_enable_builddir="."+# Check whether --enable-builddir was given.+if test "${enable_builddir+set}" = set; then :+ enableval=$enable_builddir; ax_enable_builddir="$enableval"+else+ ax_enable_builddir="auto"+fi++if test ".$ac_srcdir_defaulted" != ".no" ; then+if test ".$srcdir" = ".." ; then+ if test -f config.status ; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: toplevel srcdir already configured... skipping subdir build" >&5+$as_echo "$as_me: toplevel srcdir already configured... skipping subdir build" >&6;}+ else+ test ".$ax_enable_builddir" = "." && ax_enable_builddir="."+ test ".$ax_enable_builddir" = ".no" && ax_enable_builddir="."+ test ".$TARGET" = "." && TARGET="$target"+ test ".$ax_enable_builddir" = ".auto" && ax_enable_builddir="$TARGET"+ if test ".$ax_enable_builddir" != ".." ; then # we know where to go and+ as_dir=$ax_enable_builddir; as_fn_mkdir_p+ echo __.$ax_enable_builddir.__ > $ax_enable_builddir/conftest.tmp+ cd $ax_enable_builddir+ if grep __.$ax_enable_builddir.__ conftest.tmp >/dev/null 2>/dev/null ; then+ rm conftest.tmp+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: continue configure in default builddir \"./$ax_enable_builddir\"" >&5+$as_echo "continue configure in default builddir \"./$ax_enable_builddir\"" >&6; }+ else+ as_fn_error $? "could not change to default builddir \"./$ax_enable_builddir\"" "$LINENO" 5+ fi+ srcdir=`echo "$ax_enable_builddir" |+ sed -e 's,^\./,,;s,[^/]$,&/,;s,[^/]*/,../,g;s,[/]$,,;'`+ # going to restart from subdirectory location+ test -f $srcdir/config.log && mv $srcdir/config.log .+ test -f $srcdir/confdefs.h && mv $srcdir/confdefs.h .+ test -f $srcdir/conftest.log && mv $srcdir/conftest.log .+ test -f $srcdir/$cache_file && mv $srcdir/$cache_file .+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ....exec $SHELL $srcdir/$0 \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" ${1+\"$@\"}" >&5+$as_echo "....exec $SHELL $srcdir/$0 \"--srcdir=$srcdir\" \"--enable-builddir=$ax_enable_builddir\" ${1+\"$@\"}" >&6; }+ case "$0" in # restart+ [\\/]* | ?:[\\/]*) # Absolute name+ eval $SHELL "'$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;;+ *) eval $SHELL "'$srcdir/$0'" "'--srcdir=$srcdir'" "'--enable-builddir=$ax_enable_builddir'" $ac_configure_args ;;+ esac ; exit $?+ fi+ fi+fi fi+test ".$ax_enable_builddir" = ".auto" && ax_enable_builddir="."+# Extract the first word of "gsed sed", so it can be a program name with args.+set dummy gsed sed; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_path_ax_enable_builddir_sed+:} false; then :+ $as_echo_n "(cached) " >&6+else+ case $ax_enable_builddir_sed in+ [\\/]* | ?:[\\/]*)+ ac_cv_path_ax_enable_builddir_sed="$ax_enable_builddir_sed" # Let the user override the test with a path.+ ;;+ *)+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_path_ax_enable_builddir_sed="$as_dir/$ac_word$ac_exec_ext"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++ test -z "$ac_cv_path_ax_enable_builddir_sed" && ac_cv_path_ax_enable_builddir_sed="sed"+ ;;+esac+fi+ax_enable_builddir_sed=$ac_cv_path_ax_enable_builddir_sed+if test -n "$ax_enable_builddir_sed"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_enable_builddir_sed" >&5+$as_echo "$ax_enable_builddir_sed" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ax_enable_builddir_auxdir="$am_aux_dir"+ac_config_commands="$ac_config_commands buildir"+++# The same as in boehm-gc and libstdc++. Have to borrow it from there.+# We must force CC to /not/ be precious variables; otherwise+# the wrong, non-multilib-adjusted value will be used in multilibs.+# As a side effect, we have to subst CFLAGS ourselves.+# Also save and restore CFLAGS, since AC_PROG_CC will come up with+# defaults of its own if none are provided.++++save_CFLAGS=$CFLAGS+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.+set dummy ${ac_tool_prefix}gcc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CC="${ac_tool_prefix}gcc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_CC"; then+ ac_ct_CC=$CC+ # Extract the first word of "gcc", so it can be a program name with args.+set dummy gcc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CC"; then+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_CC="gcc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_CC" = x; then+ CC=""+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CC=$ac_ct_CC+ fi+else+ CC="$ac_cv_prog_CC"+fi++if test -z "$CC"; then+ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.+set dummy ${ac_tool_prefix}cc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CC="${ac_tool_prefix}cc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ fi+fi+if test -z "$CC"; then+ # Extract the first word of "cc", so it can be a program name with args.+set dummy cc; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+ ac_prog_rejected=no+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then+ ac_prog_rejected=yes+ continue+ fi+ ac_cv_prog_CC="cc"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++if test $ac_prog_rejected = yes; then+ # We found a bogon in the path, so make sure we never use it.+ set dummy $ac_cv_prog_CC+ shift+ if test $# != 0; then+ # We chose a different compiler from the bogus one.+ # However, it has the same basename, so the bogon will be chosen+ # first if we set CC to just the basename; use the full file name.+ shift+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"+ fi+fi+fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$CC"; then+ if test -n "$ac_tool_prefix"; then+ for ac_prog in cl.exe+ do+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$CC" && break+ done+fi+if test -z "$CC"; then+ ac_ct_CC=$CC+ for ac_prog in cl.exe+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_CC+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CC"; then+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_CC="$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$ac_ct_CC" && break+done++ if test "x$ac_ct_CC" = x; then+ CC=""+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CC=$ac_ct_CC+ fi+fi++fi+++test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "no acceptable C compiler found in \$PATH+See \`config.log' for more details" "$LINENO" 5; }++# Provide some information about the compiler.+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5+set X $ac_compile+ac_compiler=$2+for ac_option in --version -v -V -qversion; do+ { { ac_try="$ac_compiler $ac_option >&5"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ sed '10a\+... rest of stderr output deleted ...+ 10q' conftest.err >conftest.er1+ cat conftest.er1 >&5+ fi+ rm -f conftest.er1 conftest.err+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+done++cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"+# Try to create an executable without -o first, disregard a.out.+# It will help us diagnose broken compilers, and finding out an intuition+# of exeext.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5+$as_echo_n "checking whether the C compiler works... " >&6; }+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`++# The possible output files:+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"++ac_rmfiles=+for ac_file in $ac_files+do+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;+ esac+done+rm -f $ac_rmfiles++if { { ac_try="$ac_link_default"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link_default") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then :+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'+# in a Makefile. We should not override ac_cv_exeext if it was cached,+# so that the user can short-circuit this test for compilers unknown to+# Autoconf.+for ac_file in $ac_files ''+do+ test -f "$ac_file" || continue+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )+ ;;+ [ab].out )+ # We found the default executable, but exeext='' is most+ # certainly right.+ break;;+ *.* )+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;+ then :; else+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+ fi+ # We set ac_cv_exeext here because the later test for it is not+ # safe: cross compilers may not add the suffix if given an `-o'+ # argument, so we may need to know it at that point already.+ # Even if this section looks crufty: it has the advantage of+ # actually working.+ break;;+ * )+ break;;+ esac+done+test "$ac_cv_exeext" = no && ac_cv_exeext=++else+ ac_file=''+fi+if test -z "$ac_file"; then :+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+$as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "C compiler cannot create executables+See \`config.log' for more details" "$LINENO" 5; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5+$as_echo_n "checking for C compiler default output file name... " >&6; }+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5+$as_echo "$ac_file" >&6; }+ac_exeext=$ac_cv_exeext++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out+ac_clean_files=$ac_clean_files_save+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5+$as_echo_n "checking for suffix of executables... " >&6; }+if { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then :+ # If both `conftest.exe' and `conftest' are `present' (well, observable)+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will+# work properly (i.e., refer to `conftest.exe'), while it won't with+# `rm'.+for ac_file in conftest.exe conftest conftest.*; do+ test -f "$ac_file" || continue+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+ break;;+ * ) break;;+ esac+done+else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "cannot compute suffix of executables: cannot compile and link+See \`config.log' for more details" "$LINENO" 5; }+fi+rm -f conftest conftest$ac_cv_exeext+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5+$as_echo "$ac_cv_exeext" >&6; }++rm -f conftest.$ac_ext+EXEEXT=$ac_cv_exeext+ac_exeext=$EXEEXT+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdio.h>+int+main ()+{+FILE *f = fopen ("conftest.out", "w");+ return ferror (f) || fclose (f) != 0;++ ;+ return 0;+}+_ACEOF+ac_clean_files="$ac_clean_files conftest.out"+# Check that the compiler produces executables we can run. If not, either+# the compiler is broken, or we cross compile.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5+$as_echo_n "checking whether we are cross compiling... " >&6; }+if test "$cross_compiling" != yes; then+ { { ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ if { ac_try='./conftest$ac_cv_exeext'+ { { case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_try") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; }; then+ cross_compiling=no+ else+ if test "$cross_compiling" = maybe; then+ cross_compiling=yes+ else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "cannot run C compiled programs.+If you meant to cross compile, use \`--host'.+See \`config.log' for more details" "$LINENO" 5; }+ fi+ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5+$as_echo "$cross_compiling" >&6; }++rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out+ac_clean_files=$ac_clean_files_save+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5+$as_echo_n "checking for suffix of object files... " >&6; }+if ${ac_cv_objext+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.o conftest.obj+if { { ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compile") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then :+ for ac_file in conftest.o conftest.obj conftest.*; do+ test -f "$ac_file" || continue;+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`+ break;;+ esac+done+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "cannot compute suffix of object files: cannot compile+See \`config.log' for more details" "$LINENO" 5; }+fi+rm -f conftest.$ac_cv_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5+$as_echo "$ac_cv_objext" >&6; }+OBJEXT=$ac_cv_objext+ac_objext=$OBJEXT+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }+if ${ac_cv_c_compiler_gnu+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{+#ifndef __GNUC__+ choke me+#endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_compiler_gnu=yes+else+ ac_compiler_gnu=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ac_cv_c_compiler_gnu=$ac_compiler_gnu++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5+$as_echo "$ac_cv_c_compiler_gnu" >&6; }+if test $ac_compiler_gnu = yes; then+ GCC=yes+else+ GCC=+fi+ac_test_CFLAGS=${CFLAGS+set}+ac_save_CFLAGS=$CFLAGS+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5+$as_echo_n "checking whether $CC accepts -g... " >&6; }+if ${ac_cv_prog_cc_g+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_save_c_werror_flag=$ac_c_werror_flag+ ac_c_werror_flag=yes+ ac_cv_prog_cc_g=no+ CFLAGS="-g"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_prog_cc_g=yes+else+ CFLAGS=""+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :++else+ ac_c_werror_flag=$ac_save_c_werror_flag+ CFLAGS="-g"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_prog_cc_g=yes+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_c_werror_flag=$ac_save_c_werror_flag+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5+$as_echo "$ac_cv_prog_cc_g" >&6; }+if test "$ac_test_CFLAGS" = set; then+ CFLAGS=$ac_save_CFLAGS+elif test $ac_cv_prog_cc_g = yes; then+ if test "$GCC" = yes; then+ CFLAGS="-g -O2"+ else+ CFLAGS="-g"+ fi+else+ if test "$GCC" = yes; then+ CFLAGS="-O2"+ else+ CFLAGS=+ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }+if ${ac_cv_prog_cc_c89+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_cv_prog_cc_c89=no+ac_save_CC=$CC+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdarg.h>+#include <stdio.h>+struct stat;+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */+struct buf { int x; };+FILE * (*rcsopen) (struct buf *, struct stat *, int);+static char *e (p, i)+ char **p;+ int i;+{+ return p[i];+}+static char *f (char * (*g) (char **, int), char **p, ...)+{+ char *s;+ va_list v;+ va_start (v,p);+ s = g (p, va_arg (v,int));+ va_end (v);+ return s;+}++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has+ function prototypes and stuff, but not '\xHH' hex character constants.+ These don't provoke an error unfortunately, instead are silently treated+ as 'x'. The following induces an error, until -std is added to get+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an+ array size at least. It's necessary to write '\x00'==0 to get something+ that's true only with -std. */+int osf4_cc_array ['\x00' == 0 ? 1 : -1];++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters+ inside strings and character constants. */+#define FOO(x) 'x'+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];++int test (int i, double x);+struct s1 {int (*f) (int a);};+struct s2 {int (*f) (double a);};+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);+int argc;+char **argv;+int+main ()+{+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];+ ;+ return 0;+}+_ACEOF+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"+do+ CC="$ac_save_CC $ac_arg"+ if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_prog_cc_c89=$ac_arg+fi+rm -f core conftest.err conftest.$ac_objext+ test "x$ac_cv_prog_cc_c89" != "xno" && break+done+rm -f conftest.$ac_ext+CC=$ac_save_CC++fi+# AC_CACHE_VAL+case "x$ac_cv_prog_cc_c89" in+ x)+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5+$as_echo "none needed" >&6; } ;;+ xno)+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5+$as_echo "unsupported" >&6; } ;;+ *)+ CC="$CC $ac_cv_prog_cc_c89"+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;+esac+if test "x$ac_cv_prog_cc_c89" != xno; then :++fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5+$as_echo_n "checking whether $CC understands -c and -o together... " >&6; }+if ${am_cv_prog_cc_c_o+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+ # Make sure it works both with $CC and with simple cc.+ # Following AC_PROG_CC_C_O, we do the test twice because some+ # compilers refuse to overwrite an existing .o file with -o,+ # though they will create one.+ am_cv_prog_cc_c_o=yes+ for am_i in 1 2; do+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5+ ac_status=$?+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } \+ && test -f conftest2.$ac_objext; then+ : OK+ else+ am_cv_prog_cc_c_o=no+ break+ fi+ done+ rm -f core conftest*+ unset am_i+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5+$as_echo "$am_cv_prog_cc_c_o" >&6; }+if test "$am_cv_prog_cc_c_o" != yes; then+ # Losing compiler, so override with the script.+ # FIXME: It is wrong to rewrite CC.+ # But if we don't then we get into trouble of one sort or another.+ # A longer-term fix would be to have automake use am__CC in this case,+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"+ CC="$am_aux_dir/compile $CC"+fi+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++ac_ext=cpp+ac_cpp='$CXXCPP $CPPFLAGS'+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu+if test -z "$CXX"; then+ if test -n "$CCC"; then+ CXX=$CCC+ else+ if test -n "$ac_tool_prefix"; then+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC+ do+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$CXX"; then+ ac_cv_prog_CXX="$CXX" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+CXX=$ac_cv_prog_CXX+if test -n "$CXX"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5+$as_echo "$CXX" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$CXX" && break+ done+fi+if test -z "$CXX"; then+ ac_ct_CXX=$CXX+ for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CXX"; then+ ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_CXX="$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX+if test -n "$ac_ct_CXX"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5+$as_echo "$ac_ct_CXX" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$ac_ct_CXX" && break+done++ if test "x$ac_ct_CXX" = x; then+ CXX="g++"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CXX=$ac_ct_CXX+ fi+fi++ fi+fi+# Provide some information about the compiler.+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5+set X $ac_compile+ac_compiler=$2+for ac_option in --version -v -V -qversion; do+ { { ac_try="$ac_compiler $ac_option >&5"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""+$as_echo "$ac_try_echo"; } >&5+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err+ ac_status=$?+ if test -s conftest.err; then+ sed '10a\+... rest of stderr output deleted ...+ 10q' conftest.err >conftest.er1+ cat conftest.er1 >&5+ fi+ rm -f conftest.er1 conftest.err+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+done++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }+if ${ac_cv_cxx_compiler_gnu+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{+#ifndef __GNUC__+ choke me+#endif++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_compile "$LINENO"; then :+ ac_compiler_gnu=yes+else+ ac_compiler_gnu=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }+if test $ac_compiler_gnu = yes; then+ GXX=yes+else+ GXX=+fi+ac_test_CXXFLAGS=${CXXFLAGS+set}+ac_save_CXXFLAGS=$CXXFLAGS+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5+$as_echo_n "checking whether $CXX accepts -g... " >&6; }+if ${ac_cv_prog_cxx_g+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_save_cxx_werror_flag=$ac_cxx_werror_flag+ ac_cxx_werror_flag=yes+ ac_cv_prog_cxx_g=no+ CXXFLAGS="-g"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_compile "$LINENO"; then :+ ac_cv_prog_cxx_g=yes+else+ CXXFLAGS=""+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_compile "$LINENO"; then :++else+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag+ CXXFLAGS="-g"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_compile "$LINENO"; then :+ ac_cv_prog_cxx_g=yes+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_cxx_werror_flag=$ac_save_cxx_werror_flag+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5+$as_echo "$ac_cv_prog_cxx_g" >&6; }+if test "$ac_test_CXXFLAGS" = set; then+ CXXFLAGS=$ac_save_CXXFLAGS+elif test $ac_cv_prog_cxx_g = yes; then+ if test "$GXX" = yes; then+ CXXFLAGS="-g -O2"+ else+ CXXFLAGS="-g"+ fi+else+ if test "$GXX" = yes; then+ CXXFLAGS="-O2"+ else+ CXXFLAGS=+ fi+fi+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++CFLAGS=$save_CFLAGS++++++rm -rf .tst 2>/dev/null+mkdir .tst 2>/dev/null+if test -d .tst; then+ am__leading_dot=.+else+ am__leading_dot=_+fi+rmdir .tst 2>/dev/null++DEPDIR="${am__leading_dot}deps"++ac_config_commands="$ac_config_commands depfiles"++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5+$as_echo_n "checking whether ${MAKE-make} supports the include directive... " >&6; }+cat > confinc.mk << 'END'+am__doit:+ @echo this is the am__doit target >confinc.out+.PHONY: am__doit+END+am__include="#"+am__quote=+# BSD make does it like this.+echo '.include "confinc.mk" # ignored' > confmf.BSD+# Other make implementations (GNU, Solaris 10, AIX) do it like this.+echo 'include confinc.mk # ignored' > confmf.GNU+_am_result=no+for s in GNU BSD; do+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5+ ac_status=$?+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }+ case $?:`cat confinc.out 2>/dev/null` in #(+ '0:this is the am__doit target') :+ case $s in #(+ BSD) :+ am__include='.include' am__quote='"' ;; #(+ *) :+ am__include='include' am__quote='' ;;+esac ;; #(+ *) :+ ;;+esac+ if test "$am__include" != "#"; then+ _am_result="yes ($s style)"+ break+ fi+done+rm -f confinc.* confmf.*+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5+$as_echo "${_am_result}" >&6; }++# Check whether --enable-dependency-tracking was given.+if test "${enable_dependency_tracking+set}" = set; then :+ enableval=$enable_dependency_tracking;+fi++if test "x$enable_dependency_tracking" != xno; then+ am_depcomp="$ac_aux_dir/depcomp"+ AMDEPBACKSLASH='\'+ am__nodep='_no'+fi+ if test "x$enable_dependency_tracking" != xno; then+ AMDEP_TRUE=+ AMDEP_FALSE='#'+else+ AMDEP_TRUE='#'+ AMDEP_FALSE=+fi+++# By default we simply use the C compiler to build assembly code.++test "${CCAS+set}" = set || CCAS=$CC+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS++++depcc="$CCAS" am_compiler_list=++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5+$as_echo_n "checking dependency style of $depcc... " >&6; }+if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then+ # We make a subdir and do the tests there. Otherwise we can end up+ # making bogus files that we don't know about and never remove. For+ # instance it was reported that on HP-UX the gcc test will end up+ # making a dummy file named 'D' -- because '-MD' means "put the output+ # in D".+ rm -rf conftest.dir+ mkdir conftest.dir+ # Copy depcomp to subdir because otherwise we won't find it if we're+ # using a relative directory.+ cp "$am_depcomp" conftest.dir+ cd conftest.dir+ # We will build objects and dependencies in a subdirectory because+ # it helps to detect inapplicable dependency modes. For instance+ # both Tru64's cc and ICC support -MD to output dependencies as a+ # side effect of compilation, but ICC will put the dependencies in+ # the current directory while Tru64 will put them in the object+ # directory.+ mkdir sub++ am_cv_CCAS_dependencies_compiler_type=none+ if test "$am_compiler_list" = ""; then+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`+ fi+ am__universal=false+++ for depmode in $am_compiler_list; do+ # Setup a source with many dependencies, because some compilers+ # like to wrap large dependency lists on column 80 (with \), and+ # we should not choose a depcomp mode which is confused by this.+ #+ # We need to recreate these files for each test, as the compiler may+ # overwrite some of them when testing with obscure command lines.+ # This happens at least with the AIX C compiler.+ : > sub/conftest.c+ for i in 1 2 3 4 5 6; do+ echo '#include "conftst'$i'.h"' >> sub/conftest.c+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with+ # Solaris 10 /bin/sh.+ echo '/* dummy */' > sub/conftst$i.h+ done+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf++ # We check with '-c' and '-o' for the sake of the "dashmstdout"+ # mode. It turns out that the SunPro C++ compiler does not properly+ # handle '-M -o', and we need to detect this. Also, some Intel+ # versions had trouble with output in subdirs.+ am__obj=sub/conftest.${OBJEXT-o}+ am__minus_obj="-o $am__obj"+ case $depmode in+ gcc)+ # This depmode causes a compiler race in universal mode.+ test "$am__universal" = false || continue+ ;;+ nosideeffect)+ # After this tag, mechanisms are not by side-effect, so they'll+ # only be used when explicitly requested.+ if test "x$enable_dependency_tracking" = xyes; then+ continue+ else+ break+ fi+ ;;+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)+ # This compiler won't grok '-c -o', but also, the minuso test has+ # not run yet. These depmodes are late enough in the game, and+ # so weak that their functioning should not be impacted.+ am__obj=conftest.${OBJEXT-o}+ am__minus_obj=+ ;;+ none) break ;;+ esac+ if depmode=$depmode \+ source=sub/conftest.c object=$am__obj \+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \+ >/dev/null 2>conftest.err &&+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then+ # icc doesn't choke on unknown options, it will just issue warnings+ # or remarks (even with -Werror). So we grep stderr for any message+ # that says an option was ignored or not supported.+ # When given -MP, icc 7.0 and 7.1 complain thusly:+ # icc: Command line warning: ignoring option '-M'; no argument required+ # The diagnosis changed in icc 8.0:+ # icc: Command line remark: option '-MP' not supported+ if (grep 'ignoring option' conftest.err ||+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else+ am_cv_CCAS_dependencies_compiler_type=$depmode+ break+ fi+ fi+ done++ cd ..+ rm -rf conftest.dir+else+ am_cv_CCAS_dependencies_compiler_type=none+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5+$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }+CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type++ if+ test "x$enable_dependency_tracking" != xno \+ && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then+ am__fastdepCCAS_TRUE=+ am__fastdepCCAS_FALSE='#'+else+ am__fastdepCCAS_TRUE='#'+ am__fastdepCCAS_FALSE=+fi++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }+if ${ac_cv_path_GREP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -z "$GREP"; then+ ac_path_GREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in grep ggrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_GREP" || continue+# Check for GNU ac_path_GREP and select it if it is found.+ # Check for GNU $ac_path_GREP+case `"$ac_path_GREP" --version 2>&1` in+*GNU*)+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'GREP' >> "conftest.nl"+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ as_fn_arith $ac_count + 1 && ac_count=$as_val+ if test $ac_count -gt ${ac_path_GREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_GREP="$ac_path_GREP"+ ac_path_GREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_GREP_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_GREP"; then+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5+ fi+else+ ac_cv_path_GREP=$GREP+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5+$as_echo "$ac_cv_path_GREP" >&6; }+ GREP="$ac_cv_path_GREP"+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5+$as_echo_n "checking for egrep... " >&6; }+if ${ac_cv_path_EGREP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1+ then ac_cv_path_EGREP="$GREP -E"+ else+ if test -z "$EGREP"; then+ ac_path_EGREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in egrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_EGREP" || continue+# Check for GNU ac_path_EGREP and select it if it is found.+ # Check for GNU $ac_path_EGREP+case `"$ac_path_EGREP" --version 2>&1` in+*GNU*)+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'EGREP' >> "conftest.nl"+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ as_fn_arith $ac_count + 1 && ac_count=$as_val+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_EGREP="$ac_path_EGREP"+ ac_path_EGREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_EGREP_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_EGREP"; then+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5+ fi+else+ ac_cv_path_EGREP=$EGREP+fi++ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5+$as_echo "$ac_cv_path_EGREP" >&6; }+ EGREP="$ac_cv_path_EGREP"+++case `pwd` in+ *\ * | *\ *)+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5+$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;+esac++++macro_version='2.4.7'+macro_revision='2.4.7'++++++++++++++ltmain=$ac_aux_dir/ltmain.sh++# Backslashify metacharacters that are still active within+# double-quoted strings.+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'++# Same as above, but do not quote variable references.+double_quote_subst='s/\(["`\\]\)/\\\1/g'++# Sed substitution to delay expansion of an escaped shell variable in a+# double_quote_subst'ed string.+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'++# Sed substitution to delay expansion of an escaped single quote.+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'++# Sed substitution to avoid accidental globbing in evaled expressions+no_glob_subst='s/\*/\\\*/g'++ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5+$as_echo_n "checking how to print strings... " >&6; }+# Test print first, because it will be a builtin if present.+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then+ ECHO='print -r --'+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then+ ECHO='printf %s\n'+else+ # Use this function as a fallback that always works.+ func_fallback_echo ()+ {+ eval 'cat <<_LTECHO_EOF+$1+_LTECHO_EOF'+ }+ ECHO='func_fallback_echo'+fi++# func_echo_all arg...+# Invoke $ECHO with all args, space-separated.+func_echo_all ()+{+ $ECHO ""+}++case $ECHO in+ printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5+$as_echo "printf" >&6; } ;;+ print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5+$as_echo "print -r" >&6; } ;;+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5+$as_echo "cat" >&6; } ;;+esac+++++++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5+$as_echo_n "checking for a sed that does not truncate output... " >&6; }+if ${ac_cv_path_SED+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/+ for ac_i in 1 2 3 4 5 6 7; do+ ac_script="$ac_script$as_nl$ac_script"+ done+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed+ { ac_script=; unset ac_script;}+ if test -z "$SED"; then+ ac_path_SED_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in sed gsed; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_SED" || continue+# Check for GNU ac_path_SED and select it if it is found.+ # Check for GNU $ac_path_SED+case `"$ac_path_SED" --version 2>&1` in+*GNU*)+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo '' >> "conftest.nl"+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ as_fn_arith $ac_count + 1 && ac_count=$as_val+ if test $ac_count -gt ${ac_path_SED_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_SED="$ac_path_SED"+ ac_path_SED_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_SED_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_SED"; then+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5+ fi+else+ ac_cv_path_SED=$SED+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5+$as_echo "$ac_cv_path_SED" >&6; }+ SED="$ac_cv_path_SED"+ rm -f conftest.sed++test -z "$SED" && SED=sed+Xsed="$SED -e 1s/^X//"++++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5+$as_echo_n "checking for fgrep... " >&6; }+if ${ac_cv_path_FGREP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1+ then ac_cv_path_FGREP="$GREP -F"+ else+ if test -z "$FGREP"; then+ ac_path_FGREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in fgrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_FGREP" || continue+# Check for GNU ac_path_FGREP and select it if it is found.+ # Check for GNU $ac_path_FGREP+case `"$ac_path_FGREP" --version 2>&1` in+*GNU*)+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'FGREP' >> "conftest.nl"+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ as_fn_arith $ac_count + 1 && ac_count=$as_val+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_FGREP="$ac_path_FGREP"+ ac_path_FGREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_FGREP_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_FGREP"; then+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5+ fi+else+ ac_cv_path_FGREP=$FGREP+fi++ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5+$as_echo "$ac_cv_path_FGREP" >&6; }+ FGREP="$ac_cv_path_FGREP"+++test -z "$GREP" && GREP=grep++++++++++++++++++++# Check whether --with-gnu-ld was given.+if test "${with_gnu_ld+set}" = set; then :+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes+else+ with_gnu_ld=no+fi++ac_prog=ld+if test yes = "$GCC"; then+ # Check if gcc -print-prog-name=ld gives a path.+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5+$as_echo_n "checking for ld used by $CC... " >&6; }+ case $host in+ *-*-mingw*)+ # gcc leaves a trailing carriage return, which upsets mingw+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;+ *)+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;+ esac+ case $ac_prog in+ # Accept absolute paths.+ [\\/]* | ?:[\\/]*)+ re_direlt='/[^/][^/]*/\.\./'+ # Canonicalize the pathname of ld+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`+ done+ test -z "$LD" && LD=$ac_prog+ ;;+ "")+ # If it fails, then pretend we aren't using GCC.+ ac_prog=ld+ ;;+ *)+ # If it is relative, then search for the first ld in PATH.+ with_gnu_ld=unknown+ ;;+ esac+elif test yes = "$with_gnu_ld"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5+$as_echo_n "checking for GNU ld... " >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5+$as_echo_n "checking for non-GNU ld... " >&6; }+fi+if ${lt_cv_path_LD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -z "$LD"; then+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR+ for ac_dir in $PATH; do+ IFS=$lt_save_ifs+ test -z "$ac_dir" && ac_dir=.+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then+ lt_cv_path_LD=$ac_dir/$ac_prog+ # Check to see if the program is GNU ld. I'd rather use --version,+ # but apparently some variants of GNU ld only accept -v.+ # Break only if it was the GNU/non-GNU ld that we prefer.+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in+ *GNU* | *'with BFD'*)+ test no != "$with_gnu_ld" && break+ ;;+ *)+ test yes != "$with_gnu_ld" && break+ ;;+ esac+ fi+ done+ IFS=$lt_save_ifs+else+ lt_cv_path_LD=$LD # Let the user override the test with a path.+fi+fi++LD=$lt_cv_path_LD+if test -n "$LD"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5+$as_echo "$LD" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }+if ${lt_cv_prog_gnu_ld+:} false; then :+ $as_echo_n "(cached) " >&6+else+ # I'd rather use --version here, but apparently some GNU lds only accept -v.+case `$LD -v 2>&1 </dev/null` in+*GNU* | *'with BFD'*)+ lt_cv_prog_gnu_ld=yes+ ;;+*)+ lt_cv_prog_gnu_ld=no+ ;;+esac+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5+$as_echo "$lt_cv_prog_gnu_ld" >&6; }+with_gnu_ld=$lt_cv_prog_gnu_ld++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5+$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }+if ${lt_cv_path_NM+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$NM"; then+ # Let the user override the test.+ lt_cv_path_NM=$NM+else+ lt_nm_to_check=${ac_tool_prefix}nm+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then+ lt_nm_to_check="$lt_nm_to_check nm"+ fi+ for lt_tmp_nm in $lt_nm_to_check; do+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do+ IFS=$lt_save_ifs+ test -z "$ac_dir" && ac_dir=.+ tmp_nm=$ac_dir/$lt_tmp_nm+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then+ # Check to see if the nm accepts a BSD-compat flag.+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:+ # nm: unknown option "B" ignored+ # Tru64's nm complains that /dev/null is an invalid object file+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty+ case $build_os in+ mingw*) lt_bad_file=conftest.nm/nofile ;;+ *) lt_bad_file=/dev/null ;;+ esac+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in+ *$lt_bad_file* | *'Invalid file or object type'*)+ lt_cv_path_NM="$tmp_nm -B"+ break 2+ ;;+ *)+ case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in+ */dev/null*)+ lt_cv_path_NM="$tmp_nm -p"+ break 2+ ;;+ *)+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but+ continue # so that we can try to find one that supports BSD flags+ ;;+ esac+ ;;+ esac+ fi+ done+ IFS=$lt_save_ifs+ done+ : ${lt_cv_path_NM=no}+fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5+$as_echo "$lt_cv_path_NM" >&6; }+if test no != "$lt_cv_path_NM"; then+ NM=$lt_cv_path_NM+else+ # Didn't find any BSD compatible name lister, look for dumpbin.+ if test -n "$DUMPBIN"; then :+ # Let the user override the test.+ else+ if test -n "$ac_tool_prefix"; then+ for ac_prog in dumpbin "link -dump"+ do+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_DUMPBIN+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$DUMPBIN"; then+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+DUMPBIN=$ac_cv_prog_DUMPBIN+if test -n "$DUMPBIN"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5+$as_echo "$DUMPBIN" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$DUMPBIN" && break+ done+fi+if test -z "$DUMPBIN"; then+ ac_ct_DUMPBIN=$DUMPBIN+ for ac_prog in dumpbin "link -dump"+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_DUMPBIN"; then+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN+if test -n "$ac_ct_DUMPBIN"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5+$as_echo "$ac_ct_DUMPBIN" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$ac_ct_DUMPBIN" && break+done++ if test "x$ac_ct_DUMPBIN" = x; then+ DUMPBIN=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ DUMPBIN=$ac_ct_DUMPBIN+ fi+fi++ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in+ *COFF*)+ DUMPBIN="$DUMPBIN -symbols -headers"+ ;;+ *)+ DUMPBIN=:+ ;;+ esac+ fi++ if test : != "$DUMPBIN"; then+ NM=$DUMPBIN+ fi+fi+test -z "$NM" && NM=nm+++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5+$as_echo_n "checking the name lister ($NM) interface... " >&6; }+if ${lt_cv_nm_interface+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_nm_interface="BSD nm"+ echo "int some_variable = 0;" > conftest.$ac_ext+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)+ (eval "$ac_compile" 2>conftest.err)+ cat conftest.err >&5+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)+ cat conftest.err >&5+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)+ cat conftest.out >&5+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then+ lt_cv_nm_interface="MS dumpbin"+ fi+ rm -f conftest*+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5+$as_echo "$lt_cv_nm_interface" >&6; }++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5+$as_echo_n "checking whether ln -s works... " >&6; }+LN_S=$as_ln_s+if test "$LN_S" = "ln -s"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5+$as_echo "no, using $LN_S" >&6; }+fi++# find the maximum length of command line arguments+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5+$as_echo_n "checking the maximum length of command line arguments... " >&6; }+if ${lt_cv_sys_max_cmd_len+:} false; then :+ $as_echo_n "(cached) " >&6+else+ i=0+ teststring=ABCD++ case $build_os in+ msdosdjgpp*)+ # On DJGPP, this test can blow up pretty badly due to problems in libc+ # (any single argument exceeding 2000 bytes causes a buffer overrun+ # during glob expansion). Even if it were fixed, the result of this+ # check would be larger than it should be.+ lt_cv_sys_max_cmd_len=12288; # 12K is about right+ ;;++ gnu*)+ # Under GNU Hurd, this test is not required because there is+ # no limit to the length of command line arguments.+ # Libtool will interpret -1 as no limit whatsoever+ lt_cv_sys_max_cmd_len=-1;+ ;;++ cygwin* | mingw* | cegcc*)+ # On Win9x/ME, this test blows up -- it succeeds, but takes+ # about 5 minutes as the teststring grows exponentially.+ # Worse, since 9x/ME are not pre-emptively multitasking,+ # you end up with a "frozen" computer, even though with patience+ # the test eventually succeeds (with a max line length of 256k).+ # Instead, let's just punt: use the minimum linelength reported by+ # all of the supported platforms: 8192 (on NT/2K/XP).+ lt_cv_sys_max_cmd_len=8192;+ ;;++ mint*)+ # On MiNT this can take a long time and run out of memory.+ lt_cv_sys_max_cmd_len=8192;+ ;;++ amigaos*)+ # On AmigaOS with pdksh, this test takes hours, literally.+ # So we just punt and use a minimum line length of 8192.+ lt_cv_sys_max_cmd_len=8192;+ ;;++ bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)+ # This has been around since 386BSD, at least. Likely further.+ if test -x /sbin/sysctl; then+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`+ elif test -x /usr/sbin/sysctl; then+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`+ else+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs+ fi+ # And add a safety zone+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`+ ;;++ interix*)+ # We know the value 262144 and hardcode it with a safety zone (like BSD)+ lt_cv_sys_max_cmd_len=196608+ ;;++ os2*)+ # The test takes a long time on OS/2.+ lt_cv_sys_max_cmd_len=8192+ ;;++ osf*)+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not+ # nice to cause kernel panics so lets avoid the loop below.+ # First set a reasonable default.+ lt_cv_sys_max_cmd_len=16384+ #+ if test -x /sbin/sysconfig; then+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in+ *1*) lt_cv_sys_max_cmd_len=-1 ;;+ esac+ fi+ ;;+ sco3.2v5*)+ lt_cv_sys_max_cmd_len=102400+ ;;+ sysv5* | sco5v6* | sysv4.2uw2*)+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`+ if test -n "$kargmax"; then+ lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`+ else+ lt_cv_sys_max_cmd_len=32768+ fi+ ;;+ *)+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`+ if test -n "$lt_cv_sys_max_cmd_len" && \+ test undefined != "$lt_cv_sys_max_cmd_len"; then+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`+ else+ # Make teststring a little bigger before we do anything with it.+ # a 1K string should be a reasonable start.+ for i in 1 2 3 4 5 6 7 8; do+ teststring=$teststring$teststring+ done+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}+ # If test is not a shell built-in, we'll probably end up computing a+ # maximum length that is only half of the actual maximum length, but+ # we can't tell.+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&+ test 17 != "$i" # 1/2 MB should be enough+ do+ i=`expr $i + 1`+ teststring=$teststring$teststring+ done+ # Only check the string length outside the loop.+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`+ teststring=+ # Add a significant safety factor because C++ compilers can tack on+ # massive amounts of additional arguments before passing them to the+ # linker. It appears as though 1/2 is a usable value.+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`+ fi+ ;;+ esac++fi++if test -n "$lt_cv_sys_max_cmd_len"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5+$as_echo "none" >&6; }+fi+max_cmd_len=$lt_cv_sys_max_cmd_len+++++++: ${CP="cp -f"}+: ${MV="mv -f"}+: ${RM="rm -f"}++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then+ lt_unset=unset+else+ lt_unset=false+fi++++++# test EBCDIC or ASCII+case `echo X|tr X '\101'` in+ A) # ASCII based system+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr+ lt_SP2NL='tr \040 \012'+ lt_NL2SP='tr \015\012 \040\040'+ ;;+ *) # EBCDIC based system+ lt_SP2NL='tr \100 \n'+ lt_NL2SP='tr \r\n \100\100'+ ;;+esac++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5+$as_echo_n "checking how to convert $build file names to $host format... " >&6; }+if ${lt_cv_to_host_file_cmd+:} false; then :+ $as_echo_n "(cached) " >&6+else+ case $host in+ *-*-mingw* )+ case $build in+ *-*-mingw* ) # actually msys+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32+ ;;+ *-*-cygwin* )+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32+ ;;+ * ) # otherwise, assume *nix+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32+ ;;+ esac+ ;;+ *-*-cygwin* )+ case $build in+ *-*-mingw* ) # actually msys+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin+ ;;+ *-*-cygwin* )+ lt_cv_to_host_file_cmd=func_convert_file_noop+ ;;+ * ) # otherwise, assume *nix+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin+ ;;+ esac+ ;;+ * ) # unhandled hosts (and "normal" native builds)+ lt_cv_to_host_file_cmd=func_convert_file_noop+ ;;+esac++fi++to_host_file_cmd=$lt_cv_to_host_file_cmd+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5+$as_echo "$lt_cv_to_host_file_cmd" >&6; }++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5+$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }+if ${lt_cv_to_tool_file_cmd+:} false; then :+ $as_echo_n "(cached) " >&6+else+ #assume ordinary cross tools, or native build.+lt_cv_to_tool_file_cmd=func_convert_file_noop+case $host in+ *-*-mingw* )+ case $build in+ *-*-mingw* ) # actually msys+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32+ ;;+ esac+ ;;+esac++fi++to_tool_file_cmd=$lt_cv_to_tool_file_cmd+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5+$as_echo "$lt_cv_to_tool_file_cmd" >&6; }++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5+$as_echo_n "checking for $LD option to reload object files... " >&6; }+if ${lt_cv_ld_reload_flag+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_ld_reload_flag='-r'+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5+$as_echo "$lt_cv_ld_reload_flag" >&6; }+reload_flag=$lt_cv_ld_reload_flag+case $reload_flag in+"" | " "*) ;;+*) reload_flag=" $reload_flag" ;;+esac+reload_cmds='$LD$reload_flag -o $output$reload_objs'+case $host_os in+ cygwin* | mingw* | pw32* | cegcc*)+ if test yes != "$GCC"; then+ reload_cmds=false+ fi+ ;;+ darwin*)+ if test yes = "$GCC"; then+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'+ else+ reload_cmds='$LD$reload_flag -o $output$reload_objs'+ fi+ ;;+esac++++++++++if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.+set dummy ${ac_tool_prefix}file; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_FILECMD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$FILECMD"; then+ ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_FILECMD="${ac_tool_prefix}file"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+FILECMD=$ac_cv_prog_FILECMD+if test -n "$FILECMD"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5+$as_echo "$FILECMD" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_FILECMD"; then+ ac_ct_FILECMD=$FILECMD+ # Extract the first word of "file", so it can be a program name with args.+set dummy file; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_FILECMD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_FILECMD"; then+ ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_FILECMD="file"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD+if test -n "$ac_ct_FILECMD"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5+$as_echo "$ac_ct_FILECMD" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_FILECMD" = x; then+ FILECMD=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ FILECMD=$ac_ct_FILECMD+ fi+else+ FILECMD="$ac_cv_prog_FILECMD"+fi++++++++if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.+set dummy ${ac_tool_prefix}objdump; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_OBJDUMP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$OBJDUMP"; then+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+OBJDUMP=$ac_cv_prog_OBJDUMP+if test -n "$OBJDUMP"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5+$as_echo "$OBJDUMP" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_OBJDUMP"; then+ ac_ct_OBJDUMP=$OBJDUMP+ # Extract the first word of "objdump", so it can be a program name with args.+set dummy objdump; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_OBJDUMP"; then+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_OBJDUMP="objdump"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP+if test -n "$ac_ct_OBJDUMP"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5+$as_echo "$ac_ct_OBJDUMP" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_OBJDUMP" = x; then+ OBJDUMP="false"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ OBJDUMP=$ac_ct_OBJDUMP+ fi+else+ OBJDUMP="$ac_cv_prog_OBJDUMP"+fi++test -z "$OBJDUMP" && OBJDUMP=objdump++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5+$as_echo_n "checking how to recognize dependent libraries... " >&6; }+if ${lt_cv_deplibs_check_method+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_file_magic_cmd='$MAGIC_CMD'+lt_cv_file_magic_test_file=+lt_cv_deplibs_check_method='unknown'+# Need to set the preceding variable on all platforms that support+# interlibrary dependencies.+# 'none' -- dependencies not supported.+# 'unknown' -- same as none, but documents that we really don't know.+# 'pass_all' -- all dependencies passed with no checks.+# 'test_compile' -- check by making test program.+# 'file_magic [[regex]]' -- check by looking for files in library path+# that responds to the $file_magic_cmd with a given extended regex.+# If you have 'file' or equivalent on your system and you're not sure+# whether 'pass_all' will *always* work, you probably want this one.++case $host_os in+aix[4-9]*)+ lt_cv_deplibs_check_method=pass_all+ ;;++beos*)+ lt_cv_deplibs_check_method=pass_all+ ;;++bsdi[45]*)+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'+ lt_cv_file_magic_cmd='$FILECMD -L'+ lt_cv_file_magic_test_file=/shlib/libc.so+ ;;++cygwin*)+ # func_win32_libid is a shell function defined in ltmain.sh+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'+ lt_cv_file_magic_cmd='func_win32_libid'+ ;;++mingw* | pw32*)+ # Base MSYS/MinGW do not provide the 'file' command needed by+ # func_win32_libid shell function, so use a weaker test based on 'objdump',+ # unless we find 'file', for example because we are cross-compiling.+ if ( file / ) >/dev/null 2>&1; then+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'+ lt_cv_file_magic_cmd='func_win32_libid'+ else+ # Keep this pattern in sync with the one in func_win32_libid.+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'+ lt_cv_file_magic_cmd='$OBJDUMP -f'+ fi+ ;;++cegcc*)+ # use the weaker test based on 'objdump'. See mingw*.+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'+ lt_cv_file_magic_cmd='$OBJDUMP -f'+ ;;++darwin* | rhapsody*)+ lt_cv_deplibs_check_method=pass_all+ ;;++freebsd* | dragonfly* | midnightbsd*)+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then+ case $host_cpu in+ i*86 )+ # Not sure whether the presence of OpenBSD here was a mistake.+ # Let's accept both of them until this is cleared up.+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'+ lt_cv_file_magic_cmd=$FILECMD+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`+ ;;+ esac+ else+ lt_cv_deplibs_check_method=pass_all+ fi+ ;;++haiku*)+ lt_cv_deplibs_check_method=pass_all+ ;;++hpux10.20* | hpux11*)+ lt_cv_file_magic_cmd=$FILECMD+ case $host_cpu in+ ia64*)+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so+ ;;+ hppa*64*)+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl+ ;;+ *)+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'+ lt_cv_file_magic_test_file=/usr/lib/libc.sl+ ;;+ esac+ ;;++interix[3-9]*)+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'+ ;;++irix5* | irix6* | nonstopux*)+ case $LD in+ *-32|*"-32 ") libmagic=32-bit;;+ *-n32|*"-n32 ") libmagic=N32;;+ *-64|*"-64 ") libmagic=64-bit;;+ *) libmagic=never-match;;+ esac+ lt_cv_deplibs_check_method=pass_all+ ;;++# This must be glibc/ELF.+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)+ lt_cv_deplibs_check_method=pass_all+ ;;++netbsd* | netbsdelf*-gnu)+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'+ else+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'+ fi+ ;;++newos6*)+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'+ lt_cv_file_magic_cmd=$FILECMD+ lt_cv_file_magic_test_file=/usr/lib/libnls.so+ ;;++*nto* | *qnx*)+ lt_cv_deplibs_check_method=pass_all+ ;;++openbsd* | bitrig*)+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'+ else+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'+ fi+ ;;++osf3* | osf4* | osf5*)+ lt_cv_deplibs_check_method=pass_all+ ;;++rdos*)+ lt_cv_deplibs_check_method=pass_all+ ;;++solaris*)+ lt_cv_deplibs_check_method=pass_all+ ;;++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)+ lt_cv_deplibs_check_method=pass_all+ ;;++sysv4 | sysv4.3*)+ case $host_vendor in+ motorola)+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`+ ;;+ ncr)+ lt_cv_deplibs_check_method=pass_all+ ;;+ sequent)+ lt_cv_file_magic_cmd='/bin/file'+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'+ ;;+ sni)+ lt_cv_file_magic_cmd='/bin/file'+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"+ lt_cv_file_magic_test_file=/lib/libc.so+ ;;+ siemens)+ lt_cv_deplibs_check_method=pass_all+ ;;+ pc)+ lt_cv_deplibs_check_method=pass_all+ ;;+ esac+ ;;++tpf*)+ lt_cv_deplibs_check_method=pass_all+ ;;+os2*)+ lt_cv_deplibs_check_method=pass_all+ ;;+esac++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5+$as_echo "$lt_cv_deplibs_check_method" >&6; }++file_magic_glob=+want_nocaseglob=no+if test "$build" = "$host"; then+ case $host_os in+ mingw* | pw32*)+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then+ want_nocaseglob=yes+ else+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`+ fi+ ;;+ esac+fi++file_magic_cmd=$lt_cv_file_magic_cmd+deplibs_check_method=$lt_cv_deplibs_check_method+test -z "$deplibs_check_method" && deplibs_check_method=unknown+++++++++++++++++++++++if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.+set dummy ${ac_tool_prefix}dlltool; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_DLLTOOL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$DLLTOOL"; then+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+DLLTOOL=$ac_cv_prog_DLLTOOL+if test -n "$DLLTOOL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5+$as_echo "$DLLTOOL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_DLLTOOL"; then+ ac_ct_DLLTOOL=$DLLTOOL+ # Extract the first word of "dlltool", so it can be a program name with args.+set dummy dlltool; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_DLLTOOL"; then+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL+if test -n "$ac_ct_DLLTOOL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5+$as_echo "$ac_ct_DLLTOOL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_DLLTOOL" = x; then+ DLLTOOL="false"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ DLLTOOL=$ac_ct_DLLTOOL+ fi+else+ DLLTOOL="$ac_cv_prog_DLLTOOL"+fi++test -z "$DLLTOOL" && DLLTOOL=dlltool+++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5+$as_echo_n "checking how to associate runtime and link libraries... " >&6; }+if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_sharedlib_from_linklib_cmd='unknown'++case $host_os in+cygwin* | mingw* | pw32* | cegcc*)+ # two different shell functions defined in ltmain.sh;+ # decide which one to use based on capabilities of $DLLTOOL+ case `$DLLTOOL --help 2>&1` in+ *--identify-strict*)+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib+ ;;+ *)+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback+ ;;+ esac+ ;;+*)+ # fallback: assume linklib IS sharedlib+ lt_cv_sharedlib_from_linklib_cmd=$ECHO+ ;;+esac++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5+$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO+++++++++if test -n "$ac_tool_prefix"; then+ for ac_prog in ar+ do+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_AR+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$AR"; then+ ac_cv_prog_AR="$AR" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+AR=$ac_cv_prog_AR+if test -n "$AR"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5+$as_echo "$AR" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$AR" && break+ done+fi+if test -z "$AR"; then+ ac_ct_AR=$AR+ for ac_prog in ar+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_AR+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_AR"; then+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_AR="$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_AR=$ac_cv_prog_ac_ct_AR+if test -n "$ac_ct_AR"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5+$as_echo "$ac_ct_AR" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$ac_ct_AR" && break+done++ if test "x$ac_ct_AR" = x; then+ AR="false"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ AR=$ac_ct_AR+ fi+fi++: ${AR=ar}+++++++# Use ARFLAGS variable as AR's operation code to sync the variable naming with+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have+# higher priority because thats what people were doing historically (setting+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS+# variable obsoleted/removed.++test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}+lt_ar_flags=$AR_FLAGS+++++++# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.+++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5+$as_echo_n "checking for archiver @FILE support... " >&6; }+if ${lt_cv_ar_at_file+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_ar_at_file=no+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ echo conftest.$ac_objext > conftest.lst+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5+ (eval $lt_ar_try) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ if test 0 -eq "$ac_status"; then+ # Ensure the archiver fails upon bogus file names.+ rm -f conftest.$ac_objext libconftest.a+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5+ (eval $lt_ar_try) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ if test 0 -ne "$ac_status"; then+ lt_cv_ar_at_file=@+ fi+ fi+ rm -f conftest.* libconftest.a++fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5+$as_echo "$lt_cv_ar_at_file" >&6; }++if test no = "$lt_cv_ar_at_file"; then+ archiver_list_spec=+else+ archiver_list_spec=$lt_cv_ar_at_file+fi++++++++if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.+set dummy ${ac_tool_prefix}strip; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_STRIP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$STRIP"; then+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+STRIP=$ac_cv_prog_STRIP+if test -n "$STRIP"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5+$as_echo "$STRIP" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_STRIP"; then+ ac_ct_STRIP=$STRIP+ # Extract the first word of "strip", so it can be a program name with args.+set dummy strip; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_STRIP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_STRIP"; then+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_STRIP="strip"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP+if test -n "$ac_ct_STRIP"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5+$as_echo "$ac_ct_STRIP" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_STRIP" = x; then+ STRIP=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ STRIP=$ac_ct_STRIP+ fi+else+ STRIP="$ac_cv_prog_STRIP"+fi++test -z "$STRIP" && STRIP=:+++++++if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.+set dummy ${ac_tool_prefix}ranlib; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_RANLIB+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$RANLIB"; then+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+RANLIB=$ac_cv_prog_RANLIB+if test -n "$RANLIB"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5+$as_echo "$RANLIB" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_RANLIB"; then+ ac_ct_RANLIB=$RANLIB+ # Extract the first word of "ranlib", so it can be a program name with args.+set dummy ranlib; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_RANLIB"; then+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_RANLIB="ranlib"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB+if test -n "$ac_ct_RANLIB"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5+$as_echo "$ac_ct_RANLIB" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_RANLIB" = x; then+ RANLIB=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ RANLIB=$ac_ct_RANLIB+ fi+else+ RANLIB="$ac_cv_prog_RANLIB"+fi++test -z "$RANLIB" && RANLIB=:+++++++# Determine commands to create old-style static archives.+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'+old_postinstall_cmds='chmod 644 $oldlib'+old_postuninstall_cmds=++if test -n "$RANLIB"; then+ case $host_os in+ bitrig* | openbsd*)+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"+ ;;+ *)+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"+ ;;+ esac+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"+fi++case $host_os in+ darwin*)+ lock_old_archive_extraction=yes ;;+ *)+ lock_old_archive_extraction=no ;;+esac++++++++++++++++++++++for ac_prog in gawk mawk nawk awk+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_AWK+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$AWK"; then+ ac_cv_prog_AWK="$AWK" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_AWK="$ac_prog"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+AWK=$ac_cv_prog_AWK+if test -n "$AWK"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5+$as_echo "$AWK" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$AWK" && break+done++++++++++++++++++++# If no C compiler was specified, use CC.+LTCC=${LTCC-"$CC"}++# If no C compiler flags were specified, use CFLAGS.+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}++# Allow CC to be a program name with arguments.+compiler=$CC+++# Check for command to grab the raw symbol name followed by C symbol from nm.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }+if ${lt_cv_sys_global_symbol_pipe+:} false; then :+ $as_echo_n "(cached) " >&6+else++# These are sane defaults that work on at least a few old systems.+# [They come from Ultrix. What could be older than Ultrix?!! ;)]++# Character class describing NM global symbol codes.+symcode='[BCDEGRST]'++# Regexp to match symbols that can be accessed directly from C.+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'++# Define system-specific variables.+case $host_os in+aix*)+ symcode='[BCDT]'+ ;;+cygwin* | mingw* | pw32* | cegcc*)+ symcode='[ABCDGISTW]'+ ;;+hpux*)+ if test ia64 = "$host_cpu"; then+ symcode='[ABCDEGRST]'+ fi+ ;;+irix* | nonstopux*)+ symcode='[BCDEGRST]'+ ;;+osf*)+ symcode='[BCDEGQRST]'+ ;;+solaris*)+ symcode='[BDRT]'+ ;;+sco3.2v5*)+ symcode='[DT]'+ ;;+sysv4.2uw2*)+ symcode='[DT]'+ ;;+sysv5* | sco5v6* | unixware* | OpenUNIX*)+ symcode='[ABDT]'+ ;;+sysv4)+ symcode='[DFNSTU]'+ ;;+esac++# If we're using GNU nm, then use its standard symbol codes.+case `$NM -V 2>&1` in+*GNU* | *'with BFD'*)+ symcode='[ABCDGIRSTW]' ;;+esac++if test "$lt_cv_nm_interface" = "MS dumpbin"; then+ # Gets list of data symbols to import.+ lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"+ # Adjust the below global symbol transforms to fixup imported variables.+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"+ lt_c_name_lib_hook="\+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"+else+ # Disable hooks by default.+ lt_cv_sys_global_symbol_to_import=+ lt_cdecl_hook=+ lt_c_name_hook=+ lt_c_name_lib_hook=+fi++# Transform an extracted symbol line into a proper C declaration.+# Some systems (esp. on ia64) link data and code symbols differently,+# so use this general approach.+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\+$lt_cdecl_hook\+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"++# Transform an extracted symbol line into symbol name and symbol address+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\+$lt_c_name_hook\+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"++# Transform an extracted symbol line into symbol name with lib prefix and+# symbol address.+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\+$lt_c_name_lib_hook\+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"++# Handle CRLF in mingw tool chain+opt_cr=+case $build_os in+mingw*)+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp+ ;;+esac++# Try without a prefix underscore, then with it.+for ac_symprfx in "" "_"; do++ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.+ symxfrm="\\1 $ac_symprfx\\2 \\2"++ # Write the raw and C identifiers.+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then+ # Fake it for dumpbin and say T for any non-static function,+ # D for any global variable and I for any imported variable.+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,+ # which start with @ or ?.+ lt_cv_sys_global_symbol_pipe="$AWK '"\+" {last_section=section; section=\$ 3};"\+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\+" \$ 0!~/External *\|/{next};"\+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\+" {if(hide[section]) next};"\+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\+" ' prfx=^$ac_symprfx"+ else+ lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"+ fi+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"++ # Check to see that the pipe works correctly.+ pipe_works=no++ rm -f conftest*+ cat > conftest.$ac_ext <<_LT_EOF+#ifdef __cplusplus+extern "C" {+#endif+char nm_test_var;+void nm_test_func(void);+void nm_test_func(void){}+#ifdef __cplusplus+}+#endif+int main(){nm_test_var='a';nm_test_func();return(0);}+_LT_EOF++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ # Now try to grab the symbols.+ nlist=conftest.nm+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then+ # Try sorting and uniquifying the output.+ if sort "$nlist" | uniq > "$nlist"T; then+ mv -f "$nlist"T "$nlist"+ else+ rm -f "$nlist"T+ fi++ # Make sure that we snagged all the symbols we need.+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then+ cat <<_LT_EOF > conftest.$ac_ext+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE+/* DATA imports from DLLs on WIN32 can't be const, because runtime+ relocations are performed -- see ld's documentation on pseudo-relocs. */+# define LT_DLSYM_CONST+#elif defined __osf__+/* This system does not cope well with relocations in const data. */+# define LT_DLSYM_CONST+#else+# define LT_DLSYM_CONST const+#endif++#ifdef __cplusplus+extern "C" {+#endif++_LT_EOF+ # Now generate the symbol file.+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'++ cat <<_LT_EOF >> conftest.$ac_ext++/* The mapping between symbol names and symbols. */+LT_DLSYM_CONST struct {+ const char *name;+ void *address;+}+lt__PROGRAM__LTX_preloaded_symbols[] =+{+ { "@PROGRAM@", (void *) 0 },+_LT_EOF+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext+ cat <<\_LT_EOF >> conftest.$ac_ext+ {0, (void *) 0}+};++/* This works around a problem in FreeBSD linker */+#ifdef FREEBSD_WORKAROUND+static const void *lt_preloaded_setup() {+ return lt__PROGRAM__LTX_preloaded_symbols;+}+#endif++#ifdef __cplusplus+}+#endif+_LT_EOF+ # Now try linking the two files.+ mv conftest.$ac_objext conftstm.$ac_objext+ lt_globsym_save_LIBS=$LIBS+ lt_globsym_save_CFLAGS=$CFLAGS+ LIBS=conftstm.$ac_objext+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5+ (eval $ac_link) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && test -s conftest$ac_exeext; then+ pipe_works=yes+ fi+ LIBS=$lt_globsym_save_LIBS+ CFLAGS=$lt_globsym_save_CFLAGS+ else+ echo "cannot find nm_test_func in $nlist" >&5+ fi+ else+ echo "cannot find nm_test_var in $nlist" >&5+ fi+ else+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5+ fi+ else+ echo "$progname: failed program was:" >&5+ cat conftest.$ac_ext >&5+ fi+ rm -rf conftest* conftst*++ # Do not use the global_symbol_pipe unless it works.+ if test yes = "$pipe_works"; then+ break+ else+ lt_cv_sys_global_symbol_pipe=+ fi+done++fi++if test -z "$lt_cv_sys_global_symbol_pipe"; then+ lt_cv_sys_global_symbol_to_cdecl=+fi+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5+$as_echo "failed" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5+$as_echo "ok" >&6; }+fi++# Response file support.+if test "$lt_cv_nm_interface" = "MS dumpbin"; then+ nm_file_list_spec='@'+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then+ nm_file_list_spec='@'+fi++++++++++++++++++++++++++++++++++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5+$as_echo_n "checking for sysroot... " >&6; }++# Check whether --with-sysroot was given.+if test "${with_sysroot+set}" = set; then :+ withval=$with_sysroot;+else+ with_sysroot=no+fi+++lt_sysroot=+case $with_sysroot in #(+ yes)+ if test yes = "$GCC"; then+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`+ fi+ ;; #(+ /*)+ lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`+ ;; #(+ no|'')+ ;; #(+ *)+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5+$as_echo "$with_sysroot" >&6; }+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5+ ;;+esac++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5+$as_echo "${lt_sysroot:-no}" >&6; }++++++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5+$as_echo_n "checking for a working dd... " >&6; }+if ${ac_cv_path_lt_DD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ printf 0123456789abcdef0123456789abcdef >conftest.i+cat conftest.i conftest.i >conftest2.i+: ${lt_DD:=$DD}+if test -z "$lt_DD"; then+ ac_path_lt_DD_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in dd; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_lt_DD="$as_dir/$ac_prog$ac_exec_ext"+ as_fn_executable_p "$ac_path_lt_DD" || continue+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then+ cmp -s conftest.i conftest.out \+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:+fi+ $ac_path_lt_DD_found && break 3+ done+ done+ done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_lt_DD"; then+ :+ fi+else+ ac_cv_path_lt_DD=$lt_DD+fi++rm -f conftest.i conftest2.i conftest.out+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5+$as_echo "$ac_cv_path_lt_DD" >&6; }+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5+$as_echo_n "checking how to truncate binary pipes... " >&6; }+if ${lt_cv_truncate_bin+:} false; then :+ $as_echo_n "(cached) " >&6+else+ printf 0123456789abcdef0123456789abcdef >conftest.i+cat conftest.i conftest.i >conftest2.i+lt_cv_truncate_bin=+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then+ cmp -s conftest.i conftest.out \+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"+fi+rm -f conftest.i conftest2.i conftest.out+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5+$as_echo "$lt_cv_truncate_bin" >&6; }++++++++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.+func_cc_basename ()+{+ for cc_temp in $*""; do+ case $cc_temp in+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;+ \-*) ;;+ *) break;;+ esac+ done+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`+}++# Check whether --enable-libtool-lock was given.+if test "${enable_libtool_lock+set}" = set; then :+ enableval=$enable_libtool_lock;+fi++test no = "$enable_libtool_lock" || enable_libtool_lock=yes++# Some flags need to be propagated to the compiler or linker for good+# libtool support.+case $host in+ia64-*-hpux*)+ # Find out what ABI is being produced by ac_compile, and set mode+ # options accordingly.+ echo 'int i;' > conftest.$ac_ext+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ case `$FILECMD conftest.$ac_objext` in+ *ELF-32*)+ HPUX_IA64_MODE=32+ ;;+ *ELF-64*)+ HPUX_IA64_MODE=64+ ;;+ esac+ fi+ rm -rf conftest*+ ;;+*-*-irix6*)+ # Find out what ABI is being produced by ac_compile, and set linker+ # options accordingly.+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ if test yes = "$lt_cv_prog_gnu_ld"; then+ case `$FILECMD conftest.$ac_objext` in+ *32-bit*)+ LD="${LD-ld} -melf32bsmip"+ ;;+ *N32*)+ LD="${LD-ld} -melf32bmipn32"+ ;;+ *64-bit*)+ LD="${LD-ld} -melf64bmip"+ ;;+ esac+ else+ case `$FILECMD conftest.$ac_objext` in+ *32-bit*)+ LD="${LD-ld} -32"+ ;;+ *N32*)+ LD="${LD-ld} -n32"+ ;;+ *64-bit*)+ LD="${LD-ld} -64"+ ;;+ esac+ fi+ fi+ rm -rf conftest*+ ;;++mips64*-*linux*)+ # Find out what ABI is being produced by ac_compile, and set linker+ # options accordingly.+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ emul=elf+ case `$FILECMD conftest.$ac_objext` in+ *32-bit*)+ emul="${emul}32"+ ;;+ *64-bit*)+ emul="${emul}64"+ ;;+ esac+ case `$FILECMD conftest.$ac_objext` in+ *MSB*)+ emul="${emul}btsmip"+ ;;+ *LSB*)+ emul="${emul}ltsmip"+ ;;+ esac+ case `$FILECMD conftest.$ac_objext` in+ *N32*)+ emul="${emul}n32"+ ;;+ esac+ LD="${LD-ld} -m $emul"+ fi+ rm -rf conftest*+ ;;++x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)+ # Find out what ABI is being produced by ac_compile, and set linker+ # options accordingly. Note that the listed cases only cover the+ # situations where additional linker options are needed (such as when+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or+ # vice versa); the common cases where no linker options are needed do+ # not appear in the list.+ echo 'int i;' > conftest.$ac_ext+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ case `$FILECMD conftest.o` in+ *32-bit*)+ case $host in+ x86_64-*kfreebsd*-gnu)+ LD="${LD-ld} -m elf_i386_fbsd"+ ;;+ x86_64-*linux*)+ case `$FILECMD conftest.o` in+ *x86-64*)+ LD="${LD-ld} -m elf32_x86_64"+ ;;+ *)+ LD="${LD-ld} -m elf_i386"+ ;;+ esac+ ;;+ powerpc64le-*linux*)+ LD="${LD-ld} -m elf32lppclinux"+ ;;+ powerpc64-*linux*)+ LD="${LD-ld} -m elf32ppclinux"+ ;;+ s390x-*linux*)+ LD="${LD-ld} -m elf_s390"+ ;;+ sparc64-*linux*)+ LD="${LD-ld} -m elf32_sparc"+ ;;+ esac+ ;;+ *64-bit*)+ case $host in+ x86_64-*kfreebsd*-gnu)+ LD="${LD-ld} -m elf_x86_64_fbsd"+ ;;+ x86_64-*linux*)+ LD="${LD-ld} -m elf_x86_64"+ ;;+ powerpcle-*linux*)+ LD="${LD-ld} -m elf64lppc"+ ;;+ powerpc-*linux*)+ LD="${LD-ld} -m elf64ppc"+ ;;+ s390*-*linux*|s390*-*tpf*)+ LD="${LD-ld} -m elf64_s390"+ ;;+ sparc*-*linux*)+ LD="${LD-ld} -m elf64_sparc"+ ;;+ esac+ ;;+ esac+ fi+ rm -rf conftest*+ ;;++*-*-sco3.2v5*)+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.+ SAVE_CFLAGS=$CFLAGS+ CFLAGS="$CFLAGS -belf"+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }+if ${lt_cv_cc_needs_belf+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ lt_cv_cc_needs_belf=yes+else+ lt_cv_cc_needs_belf=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5+$as_echo "$lt_cv_cc_needs_belf" >&6; }+ if test yes != "$lt_cv_cc_needs_belf"; then+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf+ CFLAGS=$SAVE_CFLAGS+ fi+ ;;+*-*solaris*)+ # Find out what ABI is being produced by ac_compile, and set linker+ # options accordingly.+ echo 'int i;' > conftest.$ac_ext+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ case `$FILECMD conftest.o` in+ *64-bit*)+ case $lt_cv_prog_gnu_ld in+ yes*)+ case $host in+ i?86-*-solaris*|x86_64-*-solaris*)+ LD="${LD-ld} -m elf_x86_64"+ ;;+ sparc*-*-solaris*)+ LD="${LD-ld} -m elf64_sparc"+ ;;+ esac+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then+ LD=${LD-ld}_sol2+ fi+ ;;+ *)+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then+ LD="${LD-ld} -64"+ fi+ ;;+ esac+ ;;+ esac+ fi+ rm -rf conftest*+ ;;+esac++need_locks=$enable_libtool_lock++if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.+set dummy ${ac_tool_prefix}mt; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$MANIFEST_TOOL"; then+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL+if test -n "$MANIFEST_TOOL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5+$as_echo "$MANIFEST_TOOL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL+ # Extract the first word of "mt", so it can be a program name with args.+set dummy mt; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_MANIFEST_TOOL"; then+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL+if test -n "$ac_ct_MANIFEST_TOOL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5+$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_MANIFEST_TOOL" = x; then+ MANIFEST_TOOL=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL+ fi+else+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"+fi++test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5+$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }+if ${lt_cv_path_mainfest_tool+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_path_mainfest_tool=no+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out+ cat conftest.err >&5+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then+ lt_cv_path_mainfest_tool=yes+ fi+ rm -f conftest*+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5+$as_echo "$lt_cv_path_mainfest_tool" >&6; }+if test yes != "$lt_cv_path_mainfest_tool"; then+ MANIFEST_TOOL=:+fi+++++++ case $host_os in+ rhapsody* | darwin*)+ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_DSYMUTIL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$DSYMUTIL"; then+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+DSYMUTIL=$ac_cv_prog_DSYMUTIL+if test -n "$DSYMUTIL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5+$as_echo "$DSYMUTIL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_DSYMUTIL"; then+ ac_ct_DSYMUTIL=$DSYMUTIL+ # Extract the first word of "dsymutil", so it can be a program name with args.+set dummy dsymutil; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_DSYMUTIL"; then+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL+if test -n "$ac_ct_DSYMUTIL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5+$as_echo "$ac_ct_DSYMUTIL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_DSYMUTIL" = x; then+ DSYMUTIL=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ DSYMUTIL=$ac_ct_DSYMUTIL+ fi+else+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"+fi++ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.+set dummy ${ac_tool_prefix}nmedit; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_NMEDIT+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$NMEDIT"; then+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+NMEDIT=$ac_cv_prog_NMEDIT+if test -n "$NMEDIT"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5+$as_echo "$NMEDIT" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_NMEDIT"; then+ ac_ct_NMEDIT=$NMEDIT+ # Extract the first word of "nmedit", so it can be a program name with args.+set dummy nmedit; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_NMEDIT"; then+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_NMEDIT="nmedit"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT+if test -n "$ac_ct_NMEDIT"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5+$as_echo "$ac_ct_NMEDIT" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_NMEDIT" = x; then+ NMEDIT=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ NMEDIT=$ac_ct_NMEDIT+ fi+else+ NMEDIT="$ac_cv_prog_NMEDIT"+fi++ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.+set dummy ${ac_tool_prefix}lipo; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_LIPO+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$LIPO"; then+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+LIPO=$ac_cv_prog_LIPO+if test -n "$LIPO"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5+$as_echo "$LIPO" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_LIPO"; then+ ac_ct_LIPO=$LIPO+ # Extract the first word of "lipo", so it can be a program name with args.+set dummy lipo; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_LIPO+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_LIPO"; then+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_LIPO="lipo"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO+if test -n "$ac_ct_LIPO"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5+$as_echo "$ac_ct_LIPO" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_LIPO" = x; then+ LIPO=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ LIPO=$ac_ct_LIPO+ fi+else+ LIPO="$ac_cv_prog_LIPO"+fi++ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.+set dummy ${ac_tool_prefix}otool; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_OTOOL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$OTOOL"; then+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+OTOOL=$ac_cv_prog_OTOOL+if test -n "$OTOOL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5+$as_echo "$OTOOL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_OTOOL"; then+ ac_ct_OTOOL=$OTOOL+ # Extract the first word of "otool", so it can be a program name with args.+set dummy otool; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_OTOOL"; then+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_OTOOL="otool"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL+if test -n "$ac_ct_OTOOL"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5+$as_echo "$ac_ct_OTOOL" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_OTOOL" = x; then+ OTOOL=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ OTOOL=$ac_ct_OTOOL+ fi+else+ OTOOL="$ac_cv_prog_OTOOL"+fi++ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.+set dummy ${ac_tool_prefix}otool64; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_OTOOL64+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$OTOOL64"; then+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+OTOOL64=$ac_cv_prog_OTOOL64+if test -n "$OTOOL64"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5+$as_echo "$OTOOL64" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_OTOOL64"; then+ ac_ct_OTOOL64=$OTOOL64+ # Extract the first word of "otool64", so it can be a program name with args.+set dummy otool64; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_OTOOL64"; then+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_prog_ac_ct_OTOOL64="otool64"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++fi+fi+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64+if test -n "$ac_ct_OTOOL64"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5+$as_echo "$ac_ct_OTOOL64" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_OTOOL64" = x; then+ OTOOL64=":"+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ OTOOL64=$ac_ct_OTOOL64+ fi+else+ OTOOL64="$ac_cv_prog_OTOOL64"+fi++++++++++++++++++++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5+$as_echo_n "checking for -single_module linker flag... " >&6; }+if ${lt_cv_apple_cc_single_mod+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_apple_cc_single_mod=no+ if test -z "$LT_MULTI_MODULE"; then+ # By default we will add the -single_module flag. You can override+ # by either setting the environment variable LT_MULTI_MODULE+ # non-empty at configure time, or by adding -multi_module to the+ # link flags.+ rm -rf libconftest.dylib*+ echo "int foo(void){return 1;}" > conftest.c+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \+-dynamiclib -Wl,-single_module conftest.c" >&5+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err+ _lt_result=$?+ # If there is a non-empty error log, and "single_module"+ # appears in it, assume the flag caused a linker warning+ if test -s conftest.err && $GREP single_module conftest.err; then+ cat conftest.err >&5+ # Otherwise, if the output was created with a 0 exit code from+ # the compiler, it worked.+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then+ lt_cv_apple_cc_single_mod=yes+ else+ cat conftest.err >&5+ fi+ rm -rf libconftest.dylib*+ rm -f conftest.*+ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }+if ${lt_cv_ld_exported_symbols_list+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_ld_exported_symbols_list=no+ save_LDFLAGS=$LDFLAGS+ echo "_main" > conftest.sym+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ lt_cv_ld_exported_symbols_list=yes+else+ lt_cv_ld_exported_symbols_list=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ LDFLAGS=$save_LDFLAGS++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5+$as_echo_n "checking for -force_load linker flag... " >&6; }+if ${lt_cv_ld_force_load+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_ld_force_load=no+ cat > conftest.c << _LT_EOF+int forced_loaded() { return 2;}+_LT_EOF+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5+ $AR $AR_FLAGS libconftest.a conftest.o 2>&5+ echo "$RANLIB libconftest.a" >&5+ $RANLIB libconftest.a 2>&5+ cat > conftest.c << _LT_EOF+int main() { return 0;}+_LT_EOF+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err+ _lt_result=$?+ if test -s conftest.err && $GREP force_load conftest.err; then+ cat conftest.err >&5+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then+ lt_cv_ld_force_load=yes+ else+ cat conftest.err >&5+ fi+ rm -f conftest.err libconftest.a conftest conftest.c+ rm -rf conftest.dSYM++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5+$as_echo "$lt_cv_ld_force_load" >&6; }+ case $host_os in+ rhapsody* | darwin1.[012])+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;+ darwin1.*)+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;+ darwin*)+ case $MACOSX_DEPLOYMENT_TARGET,$host in+ 10.[012],*|,*powerpc*-darwin[5-8]*)+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;+ *)+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;+ esac+ ;;+ esac+ if test yes = "$lt_cv_apple_cc_single_mod"; then+ _lt_dar_single_mod='$single_module'+ fi+ if test yes = "$lt_cv_ld_exported_symbols_list"; then+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'+ else+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'+ fi+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then+ _lt_dsymutil='~$DSYMUTIL $lib || :'+ else+ _lt_dsymutil=+ fi+ ;;+ esac++# func_munge_path_list VARIABLE PATH+# -----------------------------------+# VARIABLE is name of variable containing _space_ separated list of+# directories to be munged by the contents of PATH, which is string+# having a format:+# "DIR[:DIR]:"+# string "DIR[ DIR]" will be prepended to VARIABLE+# ":DIR[:DIR]"+# string "DIR[ DIR]" will be appended to VARIABLE+# "DIRP[:DIRP]::[DIRA:]DIRA"+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string+# "DIRA[ DIRA]" will be appended to VARIABLE+# "DIR[:DIR]"+# VARIABLE will be replaced by "DIR[ DIR]"+func_munge_path_list ()+{+ case x$2 in+ x)+ ;;+ *:)+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"+ ;;+ x:*)+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"+ ;;+ *::*)+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"+ ;;+ *)+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"+ ;;+ esac+}++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5+$as_echo_n "checking how to run the C preprocessor... " >&6; }+# On Suns, sometimes $CPP names a directory.+if test -n "$CPP" && test -d "$CPP"; then+ CPP=+fi+if test -z "$CPP"; then+ if ${ac_cv_prog_CPP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ # Double quotes because CPP needs to be expanded+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"+ do+ ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :++else+ # Broken: fails on valid input.+continue+fi+rm -f conftest.err conftest.i conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :+ # Broken: success on invalid input.+continue+else+ # Passes both tests.+ac_preproc_ok=:+break+fi+rm -f conftest.err conftest.i conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.i conftest.err conftest.$ac_ext+if $ac_preproc_ok; then :+ break+fi++ done+ ac_cv_prog_CPP=$CPP++fi+ CPP=$ac_cv_prog_CPP+else+ ac_cv_prog_CPP=$CPP+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5+$as_echo "$CPP" >&6; }+ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :++else+ # Broken: fails on valid input.+continue+fi+rm -f conftest.err conftest.i conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if ac_fn_c_try_cpp "$LINENO"; then :+ # Broken: success on invalid input.+continue+else+ # Passes both tests.+ac_preproc_ok=:+break+fi+rm -f conftest.err conftest.i conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.i conftest.err conftest.$ac_ext+if $ac_preproc_ok; then :++else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check+See \`config.log' for more details" "$LINENO" 5; }+fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5+$as_echo_n "checking for ANSI C header files... " >&6; }+if ${ac_cv_header_stdc+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdlib.h>+#include <stdarg.h>+#include <string.h>+#include <float.h>++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_header_stdc=yes+else+ ac_cv_header_stdc=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++if test $ac_cv_header_stdc = yes; then+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <string.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "memchr" >/dev/null 2>&1; then :++else+ ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdlib.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "free" >/dev/null 2>&1; then :++else+ ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.+ if test "$cross_compiling" = yes; then :+ :+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ctype.h>+#include <stdlib.h>+#if ((' ' & 0x0FF) == 0x020)+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))+#else+# define ISLOWER(c) \+ (('a' <= (c) && (c) <= 'i') \+ || ('j' <= (c) && (c) <= 'r') \+ || ('s' <= (c) && (c) <= 'z'))+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))+#endif++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))+int+main ()+{+ int i;+ for (i = 0; i < 256; i++)+ if (XOR (islower (i), ISLOWER (i))+ || toupper (i) != TOUPPER (i))+ return 2;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :++else+ ac_cv_header_stdc=no+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5+$as_echo "$ac_cv_header_stdc" >&6; }+if test $ac_cv_header_stdc = yes; then++$as_echo "#define STDC_HEADERS 1" >>confdefs.h++fi++# On IRIX 5.3, sys/types and inttypes.h are conflicting.+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \+ inttypes.h stdint.h unistd.h+do :+ as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default+"+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done+++for ac_header in dlfcn.h+do :+ ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default+"+if test "x$ac_cv_header_dlfcn_h" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_DLFCN_H 1+_ACEOF++fi++done+++++func_stripname_cnf ()+{+ case $2 in+ .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;;+ *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;;+ esac+} # func_stripname_cnf++++++# Set options++++ enable_dlopen=no+++ enable_win32_dll=no+++ # Check whether --enable-shared was given.+if test "${enable_shared+set}" = set; then :+ enableval=$enable_shared; p=${PACKAGE-default}+ case $enableval in+ yes) enable_shared=yes ;;+ no) enable_shared=no ;;+ *)+ enable_shared=no+ # Look at the argument we got. We use all the common list separators.+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,+ for pkg in $enableval; do+ IFS=$lt_save_ifs+ if test "X$pkg" = "X$p"; then+ enable_shared=yes+ fi+ done+ IFS=$lt_save_ifs+ ;;+ esac+else+ enable_shared=yes+fi++++++++++ # Check whether --enable-static was given.+if test "${enable_static+set}" = set; then :+ enableval=$enable_static; p=${PACKAGE-default}+ case $enableval in+ yes) enable_static=yes ;;+ no) enable_static=no ;;+ *)+ enable_static=no+ # Look at the argument we got. We use all the common list separators.+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,+ for pkg in $enableval; do+ IFS=$lt_save_ifs+ if test "X$pkg" = "X$p"; then+ enable_static=yes+ fi+ done+ IFS=$lt_save_ifs+ ;;+ esac+else+ enable_static=yes+fi+++++++++++# Check whether --with-pic was given.+if test "${with_pic+set}" = set; then :+ withval=$with_pic; lt_p=${PACKAGE-default}+ case $withval in+ yes|no) pic_mode=$withval ;;+ *)+ pic_mode=default+ # Look at the argument we got. We use all the common list separators.+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,+ for lt_pkg in $withval; do+ IFS=$lt_save_ifs+ if test "X$lt_pkg" = "X$lt_p"; then+ pic_mode=yes+ fi+ done+ IFS=$lt_save_ifs+ ;;+ esac+else+ pic_mode=default+fi+++++++++ # Check whether --enable-fast-install was given.+if test "${enable_fast_install+set}" = set; then :+ enableval=$enable_fast_install; p=${PACKAGE-default}+ case $enableval in+ yes) enable_fast_install=yes ;;+ no) enable_fast_install=no ;;+ *)+ enable_fast_install=no+ # Look at the argument we got. We use all the common list separators.+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,+ for pkg in $enableval; do+ IFS=$lt_save_ifs+ if test "X$pkg" = "X$p"; then+ enable_fast_install=yes+ fi+ done+ IFS=$lt_save_ifs+ ;;+ esac+else+ enable_fast_install=yes+fi+++++++++ shared_archive_member_spec=+case $host,$enable_shared in+power*-*-aix[5-9]*,yes)+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5+$as_echo_n "checking which variant of shared library versioning to provide... " >&6; }++# Check whether --with-aix-soname was given.+if test "${with_aix_soname+set}" = set; then :+ withval=$with_aix_soname; case $withval in+ aix|svr4|both)+ ;;+ *)+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5+ ;;+ esac+ lt_cv_with_aix_soname=$with_aix_soname+else+ if ${lt_cv_with_aix_soname+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_with_aix_soname=aix+fi++ with_aix_soname=$lt_cv_with_aix_soname+fi++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5+$as_echo "$with_aix_soname" >&6; }+ if test aix != "$with_aix_soname"; then+ # For the AIX way of multilib, we name the shared archive member+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,+ # the AIX toolchain works better with OBJECT_MODE set (default 32).+ if test 64 = "${OBJECT_MODE-32}"; then+ shared_archive_member_spec=shr_64+ else+ shared_archive_member_spec=shr+ fi+ fi+ ;;+*)+ with_aix_soname=aix+ ;;+esac+++++++++++# This can be used to rebuild libtool when needed+LIBTOOL_DEPS=$ltmain++# Always use our own libtool.+LIBTOOL='$(SHELL) $(top_builddir)/libtool'+++++++++++++++++++++++++++++++test -z "$LN_S" && LN_S="ln -s"+++++++++++++++if test -n "${ZSH_VERSION+set}"; then+ setopt NO_GLOB_SUBST+fi++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5+$as_echo_n "checking for objdir... " >&6; }+if ${lt_cv_objdir+:} false; then :+ $as_echo_n "(cached) " >&6+else+ rm -f .libs 2>/dev/null+mkdir .libs 2>/dev/null+if test -d .libs; then+ lt_cv_objdir=.libs+else+ # MS-DOS does not allow filenames that begin with a dot.+ lt_cv_objdir=_libs+fi+rmdir .libs 2>/dev/null+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5+$as_echo "$lt_cv_objdir" >&6; }+objdir=$lt_cv_objdir++++++cat >>confdefs.h <<_ACEOF+#define LT_OBJDIR "$lt_cv_objdir/"+_ACEOF+++++case $host_os in+aix3*)+ # AIX sometimes has problems with the GCC collect2 program. For some+ # reason, if we set the COLLECT_NAMES environment variable, the problems+ # vanish in a puff of smoke.+ if test set != "${COLLECT_NAMES+set}"; then+ COLLECT_NAMES=+ export COLLECT_NAMES+ fi+ ;;+esac++# Global variables:+ofile=libtool+can_build_shared=yes++# All known linkers require a '.a' archive for static linking (except MSVC and+# ICC, which need '.lib').+libext=a++with_gnu_ld=$lt_cv_prog_gnu_ld++old_CC=$CC+old_CFLAGS=$CFLAGS++# Set sane defaults for various variables+test -z "$CC" && CC=cc+test -z "$LTCC" && LTCC=$CC+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS+test -z "$LD" && LD=ld+test -z "$ac_objext" && ac_objext=o++func_cc_basename $compiler+cc_basename=$func_cc_basename_result+++# Only perform the check for file, if the check method requires it+test -z "$MAGIC_CMD" && MAGIC_CMD=file+case $deplibs_check_method in+file_magic*)+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }+if ${lt_cv_path_MAGIC_CMD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ case $MAGIC_CMD in+[\\/*] | ?:[\\/]*)+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.+ ;;+*)+ lt_save_MAGIC_CMD=$MAGIC_CMD+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"+ for ac_dir in $ac_dummy; do+ IFS=$lt_save_ifs+ test -z "$ac_dir" && ac_dir=.+ if test -f "$ac_dir/${ac_tool_prefix}file"; then+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"+ if test -n "$file_magic_test_file"; then+ case $deplibs_check_method in+ "file_magic "*)+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |+ $EGREP "$file_magic_regex" > /dev/null; then+ :+ else+ cat <<_LT_EOF 1>&2++*** Warning: the command libtool uses to detect shared libraries,+*** $file_magic_cmd, produces output that libtool cannot recognize.+*** The result is that libtool may fail to recognize shared libraries+*** as such. This will affect the creation of libtool libraries that+*** depend on shared libraries, but programs linked with such libtool+*** libraries will work regardless of this problem. Nevertheless, you+*** may want to report the problem to your system manager and/or to+*** bug-libtool@gnu.org++_LT_EOF+ fi ;;+ esac+ fi+ break+ fi+ done+ IFS=$lt_save_ifs+ MAGIC_CMD=$lt_save_MAGIC_CMD+ ;;+esac+fi++MAGIC_CMD=$lt_cv_path_MAGIC_CMD+if test -n "$MAGIC_CMD"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5+$as_echo "$MAGIC_CMD" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi++++++if test -z "$lt_cv_path_MAGIC_CMD"; then+ if test -n "$ac_tool_prefix"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5+$as_echo_n "checking for file... " >&6; }+if ${lt_cv_path_MAGIC_CMD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ case $MAGIC_CMD in+[\\/*] | ?:[\\/]*)+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.+ ;;+*)+ lt_save_MAGIC_CMD=$MAGIC_CMD+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"+ for ac_dir in $ac_dummy; do+ IFS=$lt_save_ifs+ test -z "$ac_dir" && ac_dir=.+ if test -f "$ac_dir/file"; then+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"+ if test -n "$file_magic_test_file"; then+ case $deplibs_check_method in+ "file_magic "*)+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |+ $EGREP "$file_magic_regex" > /dev/null; then+ :+ else+ cat <<_LT_EOF 1>&2++*** Warning: the command libtool uses to detect shared libraries,+*** $file_magic_cmd, produces output that libtool cannot recognize.+*** The result is that libtool may fail to recognize shared libraries+*** as such. This will affect the creation of libtool libraries that+*** depend on shared libraries, but programs linked with such libtool+*** libraries will work regardless of this problem. Nevertheless, you+*** may want to report the problem to your system manager and/or to+*** bug-libtool@gnu.org++_LT_EOF+ fi ;;+ esac+ fi+ break+ fi+ done+ IFS=$lt_save_ifs+ MAGIC_CMD=$lt_save_MAGIC_CMD+ ;;+esac+fi++MAGIC_CMD=$lt_cv_path_MAGIC_CMD+if test -n "$MAGIC_CMD"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5+$as_echo "$MAGIC_CMD" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ else+ MAGIC_CMD=:+ fi+fi++ fi+ ;;+esac++# Use C for the default configuration in the libtool script++lt_save_CC=$CC+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++# Source file extension for C test sources.+ac_ext=c++# Object file extension for compiled C test sources.+objext=o+objext=$objext++# Code to be used in simple compile tests+lt_simple_compile_test_code="int some_variable = 0;"++# Code to be used in simple link tests+lt_simple_link_test_code='int main(){return(0);}'++++++++# If no C compiler was specified, use CC.+LTCC=${LTCC-"$CC"}++# If no C compiler flags were specified, use CFLAGS.+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}++# Allow CC to be a program name with arguments.+compiler=$CC++# Save the default compiler, since it gets overwritten when the other+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.+compiler_DEFAULT=$CC++# save warnings/boilerplate of simple test code+ac_outfile=conftest.$ac_objext+echo "$lt_simple_compile_test_code" >conftest.$ac_ext+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err+_lt_compiler_boilerplate=`cat conftest.err`+$RM conftest*++ac_outfile=conftest.$ac_objext+echo "$lt_simple_link_test_code" >conftest.$ac_ext+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err+_lt_linker_boilerplate=`cat conftest.err`+$RM -r conftest*+++## CAVEAT EMPTOR:+## There is no encapsulation within the following macros, do not change+## the running order or otherwise move them around unless you know exactly+## what you are doing...+if test -n "$compiler"; then++lt_prog_compiler_no_builtin_flag=++if test yes = "$GCC"; then+ case $cc_basename in+ nvcc*)+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;+ *)+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;+ esac++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }+if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_rtti_exceptions=no+ ac_outfile=conftest.$ac_objext+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ # The option is referenced via a variable to avoid confusing sed.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>conftest.err)+ ac_status=$?+ cat conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s "$ac_outfile"; then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings other than the usual output.+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_rtti_exceptions=yes+ fi+ fi+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }++if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"+else+ :+fi++fi+++++++ lt_prog_compiler_wl=+lt_prog_compiler_pic=+lt_prog_compiler_static=+++ if test yes = "$GCC"; then+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_static='-static'++ case $host_os in+ aix*)+ # All AIX code is PIC.+ if test ia64 = "$host_cpu"; then+ # AIX 5 now supports IA64 processor+ lt_prog_compiler_static='-Bstatic'+ fi+ lt_prog_compiler_pic='-fPIC'+ ;;++ amigaos*)+ case $host_cpu in+ powerpc)+ # see comment about AmigaOS4 .so support+ lt_prog_compiler_pic='-fPIC'+ ;;+ m68k)+ # FIXME: we need at least 68020 code to build shared libraries, but+ # adding the '-m68020' flag to GCC prevents building anything better,+ # like '-m68040'.+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'+ ;;+ esac+ ;;++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)+ # PIC is the default for these OSes.+ ;;++ mingw* | cygwin* | pw32* | os2* | cegcc*)+ # This hack is so that the source file can tell whether it is being+ # built for inclusion in a dll (and should export symbols for example).+ # Although the cygwin gcc ignores -fPIC, still need this for old-style+ # (--disable-auto-import) libraries+ lt_prog_compiler_pic='-DDLL_EXPORT'+ case $host_os in+ os2*)+ lt_prog_compiler_static='$wl-static'+ ;;+ esac+ ;;++ darwin* | rhapsody*)+ # PIC is the default on this platform+ # Common symbols not allowed in MH_DYLIB files+ lt_prog_compiler_pic='-fno-common'+ ;;++ haiku*)+ # PIC is the default for Haiku.+ # The "-static" flag exists, but is broken.+ lt_prog_compiler_static=+ ;;++ hpux*)+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag+ # sets the default TLS model and affects inlining.+ case $host_cpu in+ hppa*64*)+ # +Z the default+ ;;+ *)+ lt_prog_compiler_pic='-fPIC'+ ;;+ esac+ ;;++ interix[3-9]*)+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.+ # Instead, we relocate shared libraries at runtime.+ ;;++ msdosdjgpp*)+ # Just because we use GCC doesn't mean we suddenly get shared libraries+ # on systems that don't support them.+ lt_prog_compiler_can_build_shared=no+ enable_shared=no+ ;;++ *nto* | *qnx*)+ # QNX uses GNU C++, but need to define -shared option too, otherwise+ # it will coredump.+ lt_prog_compiler_pic='-fPIC -shared'+ ;;++ sysv4*MP*)+ if test -d /usr/nec; then+ lt_prog_compiler_pic=-Kconform_pic+ fi+ ;;++ *)+ lt_prog_compiler_pic='-fPIC'+ ;;+ esac++ case $cc_basename in+ nvcc*) # Cuda Compiler Driver 2.2+ lt_prog_compiler_wl='-Xlinker '+ if test -n "$lt_prog_compiler_pic"; then+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"+ fi+ ;;+ esac+ else+ # PORTME Check for flag to pass linker flags through the system compiler.+ case $host_os in+ aix*)+ lt_prog_compiler_wl='-Wl,'+ if test ia64 = "$host_cpu"; then+ # AIX 5 now supports IA64 processor+ lt_prog_compiler_static='-Bstatic'+ else+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'+ fi+ ;;++ darwin* | rhapsody*)+ # PIC is the default on this platform+ # Common symbols not allowed in MH_DYLIB files+ lt_prog_compiler_pic='-fno-common'+ case $cc_basename in+ nagfor*)+ # NAG Fortran compiler+ lt_prog_compiler_wl='-Wl,-Wl,,'+ lt_prog_compiler_pic='-PIC'+ lt_prog_compiler_static='-Bstatic'+ ;;+ esac+ ;;++ mingw* | cygwin* | pw32* | os2* | cegcc*)+ # This hack is so that the source file can tell whether it is being+ # built for inclusion in a dll (and should export symbols for example).+ lt_prog_compiler_pic='-DDLL_EXPORT'+ case $host_os in+ os2*)+ lt_prog_compiler_static='$wl-static'+ ;;+ esac+ ;;++ hpux9* | hpux10* | hpux11*)+ lt_prog_compiler_wl='-Wl,'+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but+ # not for PA HP-UX.+ case $host_cpu in+ hppa*64*|ia64*)+ # +Z the default+ ;;+ *)+ lt_prog_compiler_pic='+Z'+ ;;+ esac+ # Is there a better lt_prog_compiler_static that works with the bundled CC?+ lt_prog_compiler_static='$wl-a ${wl}archive'+ ;;++ irix5* | irix6* | nonstopux*)+ lt_prog_compiler_wl='-Wl,'+ # PIC (with -KPIC) is the default.+ lt_prog_compiler_static='-non_shared'+ ;;++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)+ case $cc_basename in+ # old Intel for x86_64, which still supported -KPIC.+ ecc*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-static'+ ;;+ # flang / f18. f95 an alias for gfortran or flang on Debian+ flang* | f18* | f95*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-fPIC'+ lt_prog_compiler_static='-static'+ ;;+ # icc used to be incompatible with GCC.+ # ICC 10 doesn't accept -KPIC any more.+ icc* | ifort*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-fPIC'+ lt_prog_compiler_static='-static'+ ;;+ # Lahey Fortran 8.1.+ lf95*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='--shared'+ lt_prog_compiler_static='--static'+ ;;+ nagfor*)+ # NAG Fortran compiler+ lt_prog_compiler_wl='-Wl,-Wl,,'+ lt_prog_compiler_pic='-PIC'+ lt_prog_compiler_static='-Bstatic'+ ;;+ tcc*)+ # Fabrice Bellard et al's Tiny C Compiler+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-fPIC'+ lt_prog_compiler_static='-static'+ ;;+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)+ # Portland Group compilers (*not* the Pentium gcc compiler,+ # which looks to be a dead project)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-fpic'+ lt_prog_compiler_static='-Bstatic'+ ;;+ ccc*)+ lt_prog_compiler_wl='-Wl,'+ # All Alpha code is PIC.+ lt_prog_compiler_static='-non_shared'+ ;;+ xl* | bgxl* | bgf* | mpixl*)+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-qpic'+ lt_prog_compiler_static='-qstaticlink'+ ;;+ *)+ case `$CC -V 2>&1 | $SED 5q` in+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)+ # Sun Fortran 8.3 passes all unrecognized flags to the linker+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ lt_prog_compiler_wl=''+ ;;+ *Sun\ F* | *Sun*Fortran*)+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ lt_prog_compiler_wl='-Qoption ld '+ ;;+ *Sun\ C*)+ # Sun C 5.9+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ lt_prog_compiler_wl='-Wl,'+ ;;+ *Intel*\ [CF]*Compiler*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-fPIC'+ lt_prog_compiler_static='-static'+ ;;+ *Portland\ Group*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-fpic'+ lt_prog_compiler_static='-Bstatic'+ ;;+ esac+ ;;+ esac+ ;;++ newsos6)+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ ;;++ *nto* | *qnx*)+ # QNX uses GNU C++, but need to define -shared option too, otherwise+ # it will coredump.+ lt_prog_compiler_pic='-fPIC -shared'+ ;;++ osf3* | osf4* | osf5*)+ lt_prog_compiler_wl='-Wl,'+ # All OSF/1 code is PIC.+ lt_prog_compiler_static='-non_shared'+ ;;++ rdos*)+ lt_prog_compiler_static='-non_shared'+ ;;++ solaris*)+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ case $cc_basename in+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)+ lt_prog_compiler_wl='-Qoption ld ';;+ *)+ lt_prog_compiler_wl='-Wl,';;+ esac+ ;;++ sunos4*)+ lt_prog_compiler_wl='-Qoption ld '+ lt_prog_compiler_pic='-PIC'+ lt_prog_compiler_static='-Bstatic'+ ;;++ sysv4 | sysv4.2uw2* | sysv4.3*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ ;;++ sysv4*MP*)+ if test -d /usr/nec; then+ lt_prog_compiler_pic='-Kconform_pic'+ lt_prog_compiler_static='-Bstatic'+ fi+ ;;++ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_pic='-KPIC'+ lt_prog_compiler_static='-Bstatic'+ ;;++ unicos*)+ lt_prog_compiler_wl='-Wl,'+ lt_prog_compiler_can_build_shared=no+ ;;++ uts4*)+ lt_prog_compiler_pic='-pic'+ lt_prog_compiler_static='-Bstatic'+ ;;++ *)+ lt_prog_compiler_can_build_shared=no+ ;;+ esac+ fi++case $host_os in+ # For platforms that do not support PIC, -DPIC is meaningless:+ *djgpp*)+ lt_prog_compiler_pic=+ ;;+ *)+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"+ ;;+esac++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }+if ${lt_cv_prog_compiler_pic+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5+$as_echo "$lt_cv_prog_compiler_pic" >&6; }+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic++#+# Check to make sure the PIC flag actually works.+#+if test -n "$lt_prog_compiler_pic"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }+if ${lt_cv_prog_compiler_pic_works+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_pic_works=no+ ac_outfile=conftest.$ac_objext+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ # The option is referenced via a variable to avoid confusing sed.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>conftest.err)+ ac_status=$?+ cat conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s "$ac_outfile"; then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings other than the usual output.+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_pic_works=yes+ fi+ fi+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }++if test yes = "$lt_cv_prog_compiler_pic_works"; then+ case $lt_prog_compiler_pic in+ "" | " "*) ;;+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;+ esac+else+ lt_prog_compiler_pic=+ lt_prog_compiler_can_build_shared=no+fi++fi++++++++++++#+# Check to make sure the static flag actually works.+#+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }+if ${lt_cv_prog_compiler_static_works+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_static_works=no+ save_LDFLAGS=$LDFLAGS+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"+ echo "$lt_simple_link_test_code" > conftest.$ac_ext+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then+ # The linker can only warn and ignore the option if not recognized+ # So say no if there are warnings+ if test -s conftest.err; then+ # Append any errors to the config.log.+ cat conftest.err 1>&5+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2+ if diff conftest.exp conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_static_works=yes+ fi+ else+ lt_cv_prog_compiler_static_works=yes+ fi+ fi+ $RM -r conftest*+ LDFLAGS=$save_LDFLAGS++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }++if test yes = "$lt_cv_prog_compiler_static_works"; then+ :+else+ lt_prog_compiler_static=+fi++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }+if ${lt_cv_prog_compiler_c_o+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_c_o=no+ $RM -r conftest 2>/dev/null+ mkdir conftest+ cd conftest+ mkdir out+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext++ lt_compiler_flag="-o out/conftest2.$ac_objext"+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>out/conftest.err)+ ac_status=$?+ cat out/conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s out/conftest2.$ac_objext+ then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_c_o=yes+ fi+ fi+ chmod u+w . 2>&5+ $RM conftest*+ # SGI C++ compiler will create directory out/ii_files/ for+ # template instantiation+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files+ $RM out/* && rmdir out+ cd ..+ $RM -r conftest+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }+++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }+if ${lt_cv_prog_compiler_c_o+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_c_o=no+ $RM -r conftest 2>/dev/null+ mkdir conftest+ cd conftest+ mkdir out+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext++ lt_compiler_flag="-o out/conftest2.$ac_objext"+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>out/conftest.err)+ ac_status=$?+ cat out/conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s out/conftest2.$ac_objext+ then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_c_o=yes+ fi+ fi+ chmod u+w . 2>&5+ $RM conftest*+ # SGI C++ compiler will create directory out/ii_files/ for+ # template instantiation+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files+ $RM out/* && rmdir out+ cd ..+ $RM -r conftest+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }+++++hard_links=nottested+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then+ # do not overwrite the value of need_locks provided by the user+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5+$as_echo_n "checking if we can lock with hard links... " >&6; }+ hard_links=yes+ $RM conftest*+ ln conftest.a conftest.b 2>/dev/null && hard_links=no+ touch conftest.a+ ln conftest.a conftest.b 2>&5 || hard_links=no+ ln conftest.a conftest.b 2>/dev/null && hard_links=no+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5+$as_echo "$hard_links" >&6; }+ if test no = "$hard_links"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}+ need_locks=warn+ fi+else+ need_locks=no+fi+++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }++ runpath_var=+ allow_undefined_flag=+ always_export_symbols=no+ archive_cmds=+ archive_expsym_cmds=+ compiler_needs_object=no+ enable_shared_with_static_runtimes=no+ export_dynamic_flag_spec=+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'+ hardcode_automatic=no+ hardcode_direct=no+ hardcode_direct_absolute=no+ hardcode_libdir_flag_spec=+ hardcode_libdir_separator=+ hardcode_minus_L=no+ hardcode_shlibpath_var=unsupported+ inherit_rpath=no+ link_all_deplibs=unknown+ module_cmds=+ module_expsym_cmds=+ old_archive_from_new_cmds=+ old_archive_from_expsyms_cmds=+ thread_safe_flag_spec=+ whole_archive_flag_spec=+ # include_expsyms should be a list of space-separated symbols to be *always*+ # included in the symbol list+ include_expsyms=+ # exclude_expsyms can be an extended regexp of symbols to exclude+ # it will be wrapped by ' (' and ')$', so one must not match beginning or+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',+ # as well as any symbol that contains 'd'.+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out+ # platforms (ab)use it in PIC code, but their linkers get confused if+ # the symbol is explicitly referenced. Since portable code cannot+ # rely on this symbol name, it's probably fine to never include it in+ # preloaded symbol tables.+ # Exclude shared library initialization/finalization symbols.+ extract_expsyms_cmds=++ case $host_os in+ cygwin* | mingw* | pw32* | cegcc*)+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time+ # When not using gcc, we currently assume that we are using+ # Microsoft Visual C++ or Intel C++ Compiler.+ if test yes != "$GCC"; then+ with_gnu_ld=no+ fi+ ;;+ interix*)+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)+ with_gnu_ld=yes+ ;;+ openbsd* | bitrig*)+ with_gnu_ld=no+ ;;+ linux* | k*bsd*-gnu | gnu*)+ link_all_deplibs=no+ ;;+ esac++ ld_shlibs=yes++ # On some targets, GNU ld is compatible enough with the native linker+ # that we're better off using the native interface for both.+ lt_use_gnu_ld_interface=no+ if test yes = "$with_gnu_ld"; then+ case $host_os in+ aix*)+ # The AIX port of GNU ld has always aspired to compatibility+ # with the native linker. However, as the warning in the GNU ld+ # block says, versions before 2.19.5* couldn't really create working+ # shared libraries, regardless of the interface used.+ case `$LD -v 2>&1` in+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;+ *)+ lt_use_gnu_ld_interface=yes+ ;;+ esac+ ;;+ *)+ lt_use_gnu_ld_interface=yes+ ;;+ esac+ fi++ if test yes = "$lt_use_gnu_ld_interface"; then+ # If archive_cmds runs LD, not CC, wlarc should be empty+ wlarc='$wl'++ # Set some defaults for GNU ld with shared library support. These+ # are reset later if shared libraries are not supported. Putting them+ # here allows them to be overridden if necessary.+ runpath_var=LD_RUN_PATH+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ export_dynamic_flag_spec='$wl--export-dynamic'+ # ancient GNU ld didn't support --whole-archive et. al.+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'+ else+ whole_archive_flag_spec=+ fi+ supports_anon_versioning=no+ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in+ *GNU\ gold*) supports_anon_versioning=yes ;;+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...+ *\ 2.11.*) ;; # other 2.11 versions+ *) supports_anon_versioning=yes ;;+ esac++ # See if GNU ld supports shared libraries.+ case $host_os in+ aix[3-9]*)+ # On AIX/PPC, the GNU linker is very broken+ if test ia64 != "$host_cpu"; then+ ld_shlibs=no+ cat <<_LT_EOF 1>&2++*** Warning: the GNU linker, at least up to release 2.19, is reported+*** to be unable to reliably create shared libraries on AIX.+*** Therefore, libtool is disabling shared libraries support. If you+*** really care for shared libraries, you may want to install binutils+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.+*** You will then need to restart the configuration process.++_LT_EOF+ fi+ ;;++ amigaos*)+ case $host_cpu in+ powerpc)+ # see comment about AmigaOS4 .so support+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds=''+ ;;+ m68k)+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_minus_L=yes+ ;;+ esac+ ;;++ beos*)+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then+ allow_undefined_flag=unsupported+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc+ # support --undefined. This deserves some investigation. FIXME+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ else+ ld_shlibs=no+ fi+ ;;++ cygwin* | mingw* | pw32* | cegcc*)+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,+ # as there is no search path for DLLs.+ hardcode_libdir_flag_spec='-L$libdir'+ export_dynamic_flag_spec='$wl--export-all-symbols'+ allow_undefined_flag=unsupported+ always_export_symbols=no+ enable_shared_with_static_runtimes=yes+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'+ # If the export-symbols file already is a .def file, use it as+ # is; otherwise, prepend EXPORTS...+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then+ cp $export_symbols $output_objdir/$soname.def;+ else+ echo EXPORTS > $output_objdir/$soname.def;+ cat $export_symbols >> $output_objdir/$soname.def;+ fi~+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'+ else+ ld_shlibs=no+ fi+ ;;++ haiku*)+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ link_all_deplibs=yes+ ;;++ os2*)+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_minus_L=yes+ allow_undefined_flag=unsupported+ shrext_cmds=.dll+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~+ $ECHO EXPORTS >> $output_objdir/$libname.def~+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~+ emximp -o $lib $output_objdir/$libname.def'+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~+ $ECHO EXPORTS >> $output_objdir/$libname.def~+ prefix_cmds="$SED"~+ if test EXPORTS = "`$SED 1q $export_symbols`"; then+ prefix_cmds="$prefix_cmds -e 1d";+ fi~+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~+ emximp -o $lib $output_objdir/$libname.def'+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'+ enable_shared_with_static_runtimes=yes+ file_list_spec='@'+ ;;++ interix[3-9]*)+ hardcode_direct=no+ hardcode_shlibpath_var=no+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'+ export_dynamic_flag_spec='$wl-E'+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.+ # Instead, shared libraries are loaded at an image base (0x10000000 by+ # default) and relocated if they conflict, which is a slow very memory+ # consuming and fragmenting process. To avoid this, we pick a random,+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'+ archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'+ ;;++ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)+ tmp_diet=no+ if test linux-dietlibc = "$host_os"; then+ case $cc_basename in+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)+ esac+ fi+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \+ && test no = "$tmp_diet"+ then+ tmp_addflag=' $pic_flag'+ tmp_sharedflag='-shared'+ case $cc_basename,$host_cpu in+ pgcc*) # Portland Group C compiler+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'+ tmp_addflag=' $pic_flag'+ ;;+ pgf77* | pgf90* | pgf95* | pgfortran*)+ # Portland Group f77 and f90 compilers+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'+ tmp_addflag=' $pic_flag -Mnomain' ;;+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64+ tmp_addflag=' -i_dynamic' ;;+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64+ tmp_addflag=' -i_dynamic -nofor_main' ;;+ ifc* | ifort*) # Intel Fortran compiler+ tmp_addflag=' -nofor_main' ;;+ lf95*) # Lahey Fortran 8.1+ whole_archive_flag_spec=+ tmp_sharedflag='--shared' ;;+ nagfor*) # NAGFOR 5.3+ tmp_sharedflag='-Wl,-shared' ;;+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)+ tmp_sharedflag='-qmkshrobj'+ tmp_addflag= ;;+ nvcc*) # Cuda Compiler Driver 2.2+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'+ compiler_needs_object=yes+ ;;+ esac+ case `$CC -V 2>&1 | $SED 5q` in+ *Sun\ C*) # Sun C 5.9+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'+ compiler_needs_object=yes+ tmp_sharedflag='-G' ;;+ *Sun\ F*) # Sun Fortran 8.3+ tmp_sharedflag='-G' ;;+ esac+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'++ if test yes = "$supports_anon_versioning"; then+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~+ echo "local: *; };" >> $output_objdir/$libname.ver~+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'+ fi++ case $cc_basename in+ tcc*)+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ export_dynamic_flag_spec='-rdynamic'+ ;;+ xlf* | bgf* | bgxlf* | mpixlf*)+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'+ if test yes = "$supports_anon_versioning"; then+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~+ echo "local: *; };" >> $output_objdir/$libname.ver~+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'+ fi+ ;;+ esac+ else+ ld_shlibs=no+ fi+ ;;++ netbsd* | netbsdelf*-gnu)+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'+ wlarc=+ else+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ fi+ ;;++ solaris*)+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then+ ld_shlibs=no+ cat <<_LT_EOF 1>&2++*** Warning: The releases 2.8.* of the GNU linker cannot reliably+*** create shared libraries on Solaris systems. Therefore, libtool+*** is disabling shared libraries support. We urge you to upgrade GNU+*** binutils to release 2.9.1 or newer. Another option is to modify+*** your PATH or compiler configuration so that the native linker is+*** used, and then restart.++_LT_EOF+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ else+ ld_shlibs=no+ fi+ ;;++ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)+ case `$LD -v 2>&1` in+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)+ ld_shlibs=no+ cat <<_LT_EOF 1>&2++*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot+*** reliably create shared libraries on SCO systems. Therefore, libtool+*** is disabling shared libraries support. We urge you to upgrade GNU+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify+*** your PATH or compiler configuration so that the native linker is+*** used, and then restart.++_LT_EOF+ ;;+ *)+ # For security reasons, it is highly recommended that you always+ # use absolute paths for naming shared libraries, and exclude the+ # DT_RUNPATH tag from executables and libraries. But doing so+ # requires that you compile everything twice, which is a pain.+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ else+ ld_shlibs=no+ fi+ ;;+ esac+ ;;++ sunos4*)+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'+ wlarc=+ hardcode_direct=yes+ hardcode_shlibpath_var=no+ ;;++ *)+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ else+ ld_shlibs=no+ fi+ ;;+ esac++ if test no = "$ld_shlibs"; then+ runpath_var=+ hardcode_libdir_flag_spec=+ export_dynamic_flag_spec=+ whole_archive_flag_spec=+ fi+ else+ # PORTME fill in a description of your system's linker (not GNU ld)+ case $host_os in+ aix3*)+ allow_undefined_flag=unsupported+ always_export_symbols=yes+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'+ # Note: this linker hardcodes the directories in LIBPATH if there+ # are no directories specified by -L.+ hardcode_minus_L=yes+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then+ # Neither direct hardcoding nor static linking is supported with a+ # broken collect2.+ hardcode_direct=unsupported+ fi+ ;;++ aix[4-9]*)+ if test ia64 = "$host_cpu"; then+ # On IA64, the linker does run time linking by default, so we don't+ # have to do anything special.+ aix_use_runtimelinking=no+ exp_sym_flag='-Bexport'+ no_entry_flag=+ else+ # If we're using GNU nm, then we don't want the "-C" option.+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.+ # Without the "-l" option, or with the "-B" option, AIX nm treats+ # weak defined symbols like other global defined symbols, whereas+ # GNU nm marks them as "W".+ # While the 'weak' keyword is ignored in the Export File, we need+ # it in the Import File for the 'aix-soname' feature, so we have+ # to replace the "-B" option with "-P" for AIX nm.+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'+ else+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'+ fi+ aix_use_runtimelinking=no++ # Test if we are trying to use run time linking or normal+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we+ # have runtime linking enabled, and use it for executables.+ # For shared libraries, we enable/disable runtime linking+ # depending on the kind of the shared library created -+ # when "with_aix_soname,aix_use_runtimelinking" is:+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables+ # "aix,yes" lib.so shared, rtl:yes, for executables+ # lib.a static archive+ # "both,no" lib.so.V(shr.o) shared, rtl:yes+ # lib.a(lib.so.V) shared, rtl:no, for executables+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables+ # lib.a(lib.so.V) shared, rtl:no+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables+ # lib.a static archive+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)+ for ld_flag in $LDFLAGS; do+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then+ aix_use_runtimelinking=yes+ break+ fi+ done+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then+ # With aix-soname=svr4, we create the lib.so.V shared archives only,+ # so we don't have lib.a shared libs to link our executables.+ # We have to force runtime linking in this case.+ aix_use_runtimelinking=yes+ LDFLAGS="$LDFLAGS -Wl,-brtl"+ fi+ ;;+ esac++ exp_sym_flag='-bexport'+ no_entry_flag='-bnoentry'+ fi++ # When large executables or shared objects are built, AIX ld can+ # have problems creating the table of contents. If linking a library+ # or program results in "error TOC overflow" add -mminimal-toc to+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.++ archive_cmds=''+ hardcode_direct=yes+ hardcode_direct_absolute=yes+ hardcode_libdir_separator=':'+ link_all_deplibs=yes+ file_list_spec='$wl-f,'+ case $with_aix_soname,$aix_use_runtimelinking in+ aix,*) ;; # traditional, no import file+ svr4,* | *,yes) # use import file+ # The Import File defines what to hardcode.+ hardcode_direct=no+ hardcode_direct_absolute=no+ ;;+ esac++ if test yes = "$GCC"; then+ case $host_os in aix4.[012]|aix4.[012].*)+ # We only want to do this on AIX 4.2 and lower, the check+ # below for broken collect2 doesn't work under 4.3++ collect2name=`$CC -print-prog-name=collect2`+ if test -f "$collect2name" &&+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null+ then+ # We have reworked collect2+ :+ else+ # We have old collect2+ hardcode_direct=unsupported+ # It fails to find uninstalled libraries when the uninstalled+ # path is not listed in the libpath. Setting hardcode_minus_L+ # to unsupported forces relinking+ hardcode_minus_L=yes+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_libdir_separator=+ fi+ ;;+ esac+ shared_flag='-shared'+ if test yes = "$aix_use_runtimelinking"; then+ shared_flag="$shared_flag "'$wl-G'+ fi+ # Need to ensure runtime linking is disabled for the traditional+ # shared library, or the linker may eventually find shared libraries+ # /with/ Import File - we do not want to mix them.+ shared_flag_aix='-shared'+ shared_flag_svr4='-shared $wl-G'+ else+ # not using gcc+ if test ia64 = "$host_cpu"; then+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release+ # chokes on -Wl,-G. The following line is correct:+ shared_flag='-G'+ else+ if test yes = "$aix_use_runtimelinking"; then+ shared_flag='$wl-G'+ else+ shared_flag='$wl-bM:SRE'+ fi+ shared_flag_aix='$wl-bM:SRE'+ shared_flag_svr4='$wl-G'+ fi+ fi++ export_dynamic_flag_spec='$wl-bexpall'+ # It seems that -bexpall does not export symbols beginning with+ # underscore (_), so it is better to generate a list of symbols to export.+ always_export_symbols=yes+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then+ # Warning - without using the other runtime loading flags (-brtl),+ # -berok will link without error, but may produce a broken library.+ allow_undefined_flag='-berok'+ # Determine the default libpath from the value encoded in an+ # empty executable.+ if test set = "${lt_cv_aix_libpath+set}"; then+ aix_libpath=$lt_cv_aix_libpath+else+ if ${lt_cv_aix_libpath_+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :++ lt_aix_libpath_sed='+ /Import File Strings/,/^$/ {+ /^0/ {+ s/^0 *\([^ ]*\) *$/\1/+ p+ }+ }'+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ # Check for a 64-bit object if we didn't find anything.+ if test -z "$lt_cv_aix_libpath_"; then+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ fi+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ if test -z "$lt_cv_aix_libpath_"; then+ lt_cv_aix_libpath_=/usr/lib:/lib+ fi++fi++ aix_libpath=$lt_cv_aix_libpath_+fi++ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag+ else+ if test ia64 = "$host_cpu"; then+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'+ allow_undefined_flag="-z nodefs"+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"+ else+ # Determine the default libpath from the value encoded in an+ # empty executable.+ if test set = "${lt_cv_aix_libpath+set}"; then+ aix_libpath=$lt_cv_aix_libpath+else+ if ${lt_cv_aix_libpath_+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :++ lt_aix_libpath_sed='+ /Import File Strings/,/^$/ {+ /^0/ {+ s/^0 *\([^ ]*\) *$/\1/+ p+ }+ }'+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ # Check for a 64-bit object if we didn't find anything.+ if test -z "$lt_cv_aix_libpath_"; then+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ fi+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ if test -z "$lt_cv_aix_libpath_"; then+ lt_cv_aix_libpath_=/usr/lib:/lib+ fi++fi++ aix_libpath=$lt_cv_aix_libpath_+fi++ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"+ # Warning - without using the other run time loading flags,+ # -berok will link without error, but may produce a broken library.+ no_undefined_flag=' $wl-bernotok'+ allow_undefined_flag=' $wl-berok'+ if test yes = "$with_gnu_ld"; then+ # We only use this code for GNU lds that support --whole-archive.+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'+ else+ # Exported symbols can be pulled into shared objects from archives+ whole_archive_flag_spec='$convenience'+ fi+ archive_cmds_need_lc=yes+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'+ # -brtl affects multiple linker settings, -berok does not and is overridden later+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'+ if test svr4 != "$with_aix_soname"; then+ # This is similar to how AIX traditionally builds its shared libraries.+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'+ fi+ if test aix != "$with_aix_soname"; then+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'+ else+ # used by -dlpreopen to get the symbols+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'+ fi+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'+ fi+ fi+ ;;++ amigaos*)+ case $host_cpu in+ powerpc)+ # see comment about AmigaOS4 .so support+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds=''+ ;;+ m68k)+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_minus_L=yes+ ;;+ esac+ ;;++ bsdi[45]*)+ export_dynamic_flag_spec=-rdynamic+ ;;++ cygwin* | mingw* | pw32* | cegcc*)+ # When not using gcc, we currently assume that we are using+ # Microsoft Visual C++ or Intel C++ Compiler.+ # hardcode_libdir_flag_spec is actually meaningless, as there is+ # no search path for DLLs.+ case $cc_basename in+ cl* | icl*)+ # Native MSVC or ICC+ hardcode_libdir_flag_spec=' '+ allow_undefined_flag=unsupported+ always_export_symbols=yes+ file_list_spec='@'+ # Tell ltmain to make .lib files, not .a files.+ libext=lib+ # Tell ltmain to make .dll files, not .so files.+ shrext_cmds=.dll+ # FIXME: Setting linknames here is a bad hack.+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then+ cp "$export_symbols" "$output_objdir/$soname.def";+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";+ else+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;+ fi~+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~+ linknames='+ # The linker will not automatically build a static lib if we build a DLL.+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'+ enable_shared_with_static_runtimes=yes+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'+ # Don't use ranlib+ old_postinstall_cmds='chmod 644 $oldlib'+ postlink_cmds='lt_outputfile="@OUTPUT@"~+ lt_tool_outputfile="@TOOL_OUTPUT@"~+ case $lt_outputfile in+ *.exe|*.EXE) ;;+ *)+ lt_outputfile=$lt_outputfile.exe+ lt_tool_outputfile=$lt_tool_outputfile.exe+ ;;+ esac~+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;+ $RM "$lt_outputfile.manifest";+ fi'+ ;;+ *)+ # Assume MSVC and ICC wrapper+ hardcode_libdir_flag_spec=' '+ allow_undefined_flag=unsupported+ # Tell ltmain to make .lib files, not .a files.+ libext=lib+ # Tell ltmain to make .dll files, not .so files.+ shrext_cmds=.dll+ # FIXME: Setting linknames here is a bad hack.+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='+ # The linker will automatically build a .lib file if we build a DLL.+ old_archive_from_new_cmds='true'+ # FIXME: Should let the user specify the lib program.+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'+ enable_shared_with_static_runtimes=yes+ ;;+ esac+ ;;++ darwin* | rhapsody*)+++ archive_cmds_need_lc=no+ hardcode_direct=no+ hardcode_automatic=yes+ hardcode_shlibpath_var=unsupported+ if test yes = "$lt_cv_ld_force_load"; then+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'++ else+ whole_archive_flag_spec=''+ fi+ link_all_deplibs=yes+ allow_undefined_flag=$_lt_dar_allow_undefined+ case $cc_basename in+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;+ *) _lt_dar_can_shared=$GCC ;;+ esac+ if test yes = "$_lt_dar_can_shared"; then+ output_verbose_link_cmd=func_echo_all+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"+ archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"+ module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"++ else+ ld_shlibs=no+ fi++ ;;++ dgux*)+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_shlibpath_var=no+ ;;++ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor+ # support. Future versions do this automatically, but an explicit c++rt0.o+ # does not break anything, and helps significantly (at the cost of a little+ # extra space).+ freebsd2.2*)+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'+ hardcode_libdir_flag_spec='-R$libdir'+ hardcode_direct=yes+ hardcode_shlibpath_var=no+ ;;++ # Unfortunately, older versions of FreeBSD 2 do not have this feature.+ freebsd2.*)+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'+ hardcode_direct=yes+ hardcode_minus_L=yes+ hardcode_shlibpath_var=no+ ;;++ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.+ freebsd* | dragonfly* | midnightbsd*)+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'+ hardcode_libdir_flag_spec='-R$libdir'+ hardcode_direct=yes+ hardcode_shlibpath_var=no+ ;;++ hpux9*)+ if test yes = "$GCC"; then+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'+ else+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'+ fi+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'+ hardcode_libdir_separator=:+ hardcode_direct=yes++ # hardcode_minus_L: Not really in the search PATH,+ # but as the default location of the library.+ hardcode_minus_L=yes+ export_dynamic_flag_spec='$wl-E'+ ;;++ hpux10*)+ if test yes,no = "$GCC,$with_gnu_ld"; then+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'+ else+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'+ fi+ if test no = "$with_gnu_ld"; then+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'+ hardcode_libdir_separator=:+ hardcode_direct=yes+ hardcode_direct_absolute=yes+ export_dynamic_flag_spec='$wl-E'+ # hardcode_minus_L: Not really in the search PATH,+ # but as the default location of the library.+ hardcode_minus_L=yes+ fi+ ;;++ hpux11*)+ if test yes,no = "$GCC,$with_gnu_ld"; then+ case $host_cpu in+ hppa*64*)+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ ia64*)+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ *)+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ esac+ else+ case $host_cpu in+ hppa*64*)+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ ia64*)+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ *)++ # Older versions of the 11.00 compiler do not understand -b yet+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5+$as_echo_n "checking if $CC understands -b... " >&6; }+if ${lt_cv_prog_compiler__b+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler__b=no+ save_LDFLAGS=$LDFLAGS+ LDFLAGS="$LDFLAGS -b"+ echo "$lt_simple_link_test_code" > conftest.$ac_ext+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then+ # The linker can only warn and ignore the option if not recognized+ # So say no if there are warnings+ if test -s conftest.err; then+ # Append any errors to the config.log.+ cat conftest.err 1>&5+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2+ if diff conftest.exp conftest.er2 >/dev/null; then+ lt_cv_prog_compiler__b=yes+ fi+ else+ lt_cv_prog_compiler__b=yes+ fi+ fi+ $RM -r conftest*+ LDFLAGS=$save_LDFLAGS++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5+$as_echo "$lt_cv_prog_compiler__b" >&6; }++if test yes = "$lt_cv_prog_compiler__b"; then+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'+else+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'+fi++ ;;+ esac+ fi+ if test no = "$with_gnu_ld"; then+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'+ hardcode_libdir_separator=:++ case $host_cpu in+ hppa*64*|ia64*)+ hardcode_direct=no+ hardcode_shlibpath_var=no+ ;;+ *)+ hardcode_direct=yes+ hardcode_direct_absolute=yes+ export_dynamic_flag_spec='$wl-E'++ # hardcode_minus_L: Not really in the search PATH,+ # but as the default location of the library.+ hardcode_minus_L=yes+ ;;+ esac+ fi+ ;;++ irix5* | irix6* | nonstopux*)+ if test yes = "$GCC"; then+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'+ # Try to use the -exported_symbol ld option, if it does not+ # work, assume that -exports_file does not work either and+ # implicitly export all symbols.+ # This should be the same for all languages, so no per-tag cache variable.+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5+$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }+if ${lt_cv_irix_exported_symbol+:} false; then :+ $as_echo_n "(cached) " >&6+else+ save_LDFLAGS=$LDFLAGS+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+int foo (void) { return 0; }+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ lt_cv_irix_exported_symbol=yes+else+ lt_cv_irix_exported_symbol=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ LDFLAGS=$save_LDFLAGS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5+$as_echo "$lt_cv_irix_exported_symbol" >&6; }+ if test yes = "$lt_cv_irix_exported_symbol"; then+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'+ fi+ link_all_deplibs=no+ else+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'+ fi+ archive_cmds_need_lc='no'+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ hardcode_libdir_separator=:+ inherit_rpath=yes+ link_all_deplibs=yes+ ;;++ linux*)+ case $cc_basename in+ tcc*)+ # Fabrice Bellard et al's Tiny C Compiler+ ld_shlibs=yes+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ ;;+ esac+ ;;++ netbsd* | netbsdelf*-gnu)+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out+ else+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF+ fi+ hardcode_libdir_flag_spec='-R$libdir'+ hardcode_direct=yes+ hardcode_shlibpath_var=no+ ;;++ newsos6)+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_direct=yes+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ hardcode_libdir_separator=:+ hardcode_shlibpath_var=no+ ;;++ *nto* | *qnx*)+ ;;++ openbsd* | bitrig*)+ if test -f /usr/libexec/ld.so; then+ hardcode_direct=yes+ hardcode_shlibpath_var=no+ hardcode_direct_absolute=yes+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'+ export_dynamic_flag_spec='$wl-E'+ else+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'+ fi+ else+ ld_shlibs=no+ fi+ ;;++ os2*)+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_minus_L=yes+ allow_undefined_flag=unsupported+ shrext_cmds=.dll+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~+ $ECHO EXPORTS >> $output_objdir/$libname.def~+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~+ emximp -o $lib $output_objdir/$libname.def'+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~+ $ECHO EXPORTS >> $output_objdir/$libname.def~+ prefix_cmds="$SED"~+ if test EXPORTS = "`$SED 1q $export_symbols`"; then+ prefix_cmds="$prefix_cmds -e 1d";+ fi~+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~+ emximp -o $lib $output_objdir/$libname.def'+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'+ enable_shared_with_static_runtimes=yes+ file_list_spec='@'+ ;;++ osf3*)+ if test yes = "$GCC"; then+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'+ else+ allow_undefined_flag=' -expect_unresolved \*'+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'+ fi+ archive_cmds_need_lc='no'+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ hardcode_libdir_separator=:+ ;;++ osf4* | osf5*) # as osf3* with the addition of -msym flag+ if test yes = "$GCC"; then+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'+ else+ allow_undefined_flag=' -expect_unresolved \*'+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'++ # Both c and cxx compiler support -rpath directly+ hardcode_libdir_flag_spec='-rpath $libdir'+ fi+ archive_cmds_need_lc='no'+ hardcode_libdir_separator=:+ ;;++ solaris*)+ no_undefined_flag=' -z defs'+ if test yes = "$GCC"; then+ wlarc='$wl'+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'+ else+ case `$CC -V 2>&1` in+ *"Compilers 5.0"*)+ wlarc=''+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'+ ;;+ *)+ wlarc='$wl'+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'+ ;;+ esac+ fi+ hardcode_libdir_flag_spec='-R$libdir'+ hardcode_shlibpath_var=no+ case $host_os in+ solaris2.[0-5] | solaris2.[0-5].*) ;;+ *)+ # The compiler driver will combine and reorder linker options,+ # but understands '-z linker_flag'. GCC discards it without '$wl',+ # but is careful enough not to reorder.+ # Supported since Solaris 2.6 (maybe 2.5.1?)+ if test yes = "$GCC"; then+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'+ else+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'+ fi+ ;;+ esac+ link_all_deplibs=yes+ ;;++ sunos4*)+ if test sequent = "$host_vendor"; then+ # Use $CC to link under sequent, because it throws in some extra .o+ # files that make .init and .fini sections work.+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'+ else+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'+ fi+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_direct=yes+ hardcode_minus_L=yes+ hardcode_shlibpath_var=no+ ;;++ sysv4)+ case $host_vendor in+ sni)+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_direct=yes # is this really true???+ ;;+ siemens)+ ## LD is ld it makes a PLAMLIB+ ## CC just makes a GrossModule.+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'+ reload_cmds='$CC -r -o $output$reload_objs'+ hardcode_direct=no+ ;;+ motorola)+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie+ ;;+ esac+ runpath_var='LD_RUN_PATH'+ hardcode_shlibpath_var=no+ ;;++ sysv4.3*)+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_shlibpath_var=no+ export_dynamic_flag_spec='-Bexport'+ ;;++ sysv4*MP*)+ if test -d /usr/nec; then+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_shlibpath_var=no+ runpath_var=LD_RUN_PATH+ hardcode_runpath_var=yes+ ld_shlibs=yes+ fi+ ;;++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)+ no_undefined_flag='$wl-z,text'+ archive_cmds_need_lc=no+ hardcode_shlibpath_var=no+ runpath_var='LD_RUN_PATH'++ if test yes = "$GCC"; then+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ else+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ fi+ ;;++ sysv5* | sco3.2v5* | sco5v6*)+ # Note: We CANNOT use -z defs as we might desire, because we do not+ # link with -lc, and that would cause any symbols used from libc to+ # always be unresolved, which means just about no library would+ # ever link correctly. If we're not using GNU ld we use -z text+ # though, which does catch some bad symbols but isn't as heavy-handed+ # as -z defs.+ no_undefined_flag='$wl-z,text'+ allow_undefined_flag='$wl-z,nodefs'+ archive_cmds_need_lc=no+ hardcode_shlibpath_var=no+ hardcode_libdir_flag_spec='$wl-R,$libdir'+ hardcode_libdir_separator=':'+ link_all_deplibs=yes+ export_dynamic_flag_spec='$wl-Bexport'+ runpath_var='LD_RUN_PATH'++ if test yes = "$GCC"; then+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ else+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ fi+ ;;++ uts4*)+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'+ hardcode_libdir_flag_spec='-L$libdir'+ hardcode_shlibpath_var=no+ ;;++ *)+ ld_shlibs=no+ ;;+ esac++ if test sni = "$host_vendor"; then+ case $host in+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)+ export_dynamic_flag_spec='$wl-Blargedynsym'+ ;;+ esac+ fi+ fi++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5+$as_echo "$ld_shlibs" >&6; }+test no = "$ld_shlibs" && can_build_shared=no++with_gnu_ld=$with_gnu_ld++++++++++++++++#+# Do we need to explicitly link libc?+#+case "x$archive_cmds_need_lc" in+x|xyes)+ # Assume -lc should be added+ archive_cmds_need_lc=yes++ if test yes,yes = "$GCC,$enable_shared"; then+ case $archive_cmds in+ *'~'*)+ # FIXME: we may have to deal with multi-command sequences.+ ;;+ '$CC '*)+ # Test whether the compiler implicitly links with -lc since on some+ # systems, -lgcc has to come before -lc. If gcc already passes -lc+ # to ld, don't add -lc before -lgcc.+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }+if ${lt_cv_archive_cmds_need_lc+:} false; then :+ $as_echo_n "(cached) " >&6+else+ $RM conftest*+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } 2>conftest.err; then+ soname=conftest+ lib=conftest+ libobjs=conftest.$ac_objext+ deplibs=+ wl=$lt_prog_compiler_wl+ pic_flag=$lt_prog_compiler_pic+ compiler_flags=-v+ linker_flags=-v+ verstring=+ output_objdir=.+ libname=conftest+ lt_save_allow_undefined_flag=$allow_undefined_flag+ allow_undefined_flag=+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ then+ lt_cv_archive_cmds_need_lc=no+ else+ lt_cv_archive_cmds_need_lc=yes+ fi+ allow_undefined_flag=$lt_save_allow_undefined_flag+ else+ cat conftest.err 1>&5+ fi+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5+$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc+ ;;+ esac+ fi+ ;;+esac+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5+$as_echo_n "checking dynamic linker characteristics... " >&6; }++if test yes = "$GCC"; then+ case $host_os in+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;+ *) lt_awk_arg='/^libraries:/' ;;+ esac+ case $host_os in+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;+ *) lt_sed_strip_eq='s|=/|/|g' ;;+ esac+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`+ case $lt_search_path_spec in+ *\;*)+ # if the path contains ";" then we assume it to be the separator+ # otherwise default to the standard path separator (i.e. ":") - it is+ # assumed that no part of a normal pathname contains ";" but that should+ # okay in the real world where ";" in dirpaths is itself problematic.+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`+ ;;+ *)+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`+ ;;+ esac+ # Ok, now we have the path, separated by spaces, we can step through it+ # and add multilib dir if necessary...+ lt_tmp_lt_search_path_spec=+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`+ # ...but if some path component already ends with the multilib dir we assume+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).+ case "$lt_multi_os_dir; $lt_search_path_spec " in+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)+ lt_multi_os_dir=+ ;;+ esac+ for lt_sys_path in $lt_search_path_spec; do+ if test -d "$lt_sys_path$lt_multi_os_dir"; then+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"+ elif test -n "$lt_multi_os_dir"; then+ test -d "$lt_sys_path" && \+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"+ fi+ done+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '+BEGIN {RS = " "; FS = "/|\n";} {+ lt_foo = "";+ lt_count = 0;+ for (lt_i = NF; lt_i > 0; lt_i--) {+ if ($lt_i != "" && $lt_i != ".") {+ if ($lt_i == "..") {+ lt_count++;+ } else {+ if (lt_count == 0) {+ lt_foo = "/" $lt_i lt_foo;+ } else {+ lt_count--;+ }+ }+ }+ }+ if (lt_foo != "") { lt_freq[lt_foo]++; }+ if (lt_freq[lt_foo] == 1) { print lt_foo; }+}'`+ # AWK program above erroneously prepends '/' to C:/dos/paths+ # for these hosts.+ case $host_os in+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;+ esac+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`+else+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"+fi+library_names_spec=+libname_spec='lib$name'+soname_spec=+shrext_cmds=.so+postinstall_cmds=+postuninstall_cmds=+finish_cmds=+finish_eval=+shlibpath_var=+shlibpath_overrides_runpath=unknown+version_type=none+dynamic_linker="$host_os ld.so"+sys_lib_dlsearch_path_spec="/lib /usr/lib"+need_lib_prefix=unknown+hardcode_into_libs=no++# when you set need_version to no, make sure it does not cause -set_version+# flags to be left without arguments+need_version=unknown++++case $host_os in+aix3*)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'+ shlibpath_var=LIBPATH++ # AIX 3 has no versioning support, so we append a major version to the name.+ soname_spec='$libname$release$shared_ext$major'+ ;;++aix[4-9]*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ hardcode_into_libs=yes+ if test ia64 = "$host_cpu"; then+ # AIX 5 supports IA64+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ else+ # With GCC up to 2.95.x, collect2 would create an import file+ # for dependence libraries. The import file would start with+ # the line '#! .'. This would cause the generated library to+ # depend on '.', always an invalid library. This was fixed in+ # development snapshots of GCC prior to 3.0.+ case $host_os in+ aix4 | aix4.[01] | aix4.[01].*)+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'+ echo ' yes '+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then+ :+ else+ can_build_shared=no+ fi+ ;;+ esac+ # Using Import Files as archive members, it is possible to support+ # filename-based versioning of shared library archives on AIX. While+ # this would work for both with and without runtime linking, it will+ # prevent static linking of such archives. So we do filename-based+ # shared library versioning with .so extension only, which is used+ # when both runtime linking and shared linking is enabled.+ # Unfortunately, runtime linking may impact performance, so we do+ # not want this to be the default eventually. Also, we use the+ # versioned .so libs for executables only if there is the -brtl+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.+ # To allow for filename-based versioning support, we need to create+ # libNAME.so.V as an archive file, containing:+ # *) an Import File, referring to the versioned filename of the+ # archive as well as the shared archive member, telling the+ # bitwidth (32 or 64) of that shared object, and providing the+ # list of exported symbols of that shared object, eventually+ # decorated with the 'weak' keyword+ # *) the shared object with the F_LOADONLY flag set, to really avoid+ # it being seen by the linker.+ # At run time we better use the real file rather than another symlink,+ # but for link time we create the symlink libNAME.so -> libNAME.so.V++ case $with_aix_soname,$aix_use_runtimelinking in+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct+ # soname into executable. Probably we can add versioning support to+ # collect2, so additional links can be useful in future.+ aix,yes) # traditional libtool+ dynamic_linker='AIX unversionable lib.so'+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so+ # instead of lib<name>.a to let people know that these are not+ # typical AIX shared libraries.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ ;;+ aix,no) # traditional AIX only+ dynamic_linker='AIX lib.a(lib.so.V)'+ # We preserve .a as extension for shared libraries through AIX4.2+ # and later when we are not doing run time linking.+ library_names_spec='$libname$release.a $libname.a'+ soname_spec='$libname$release$shared_ext$major'+ ;;+ svr4,*) # full svr4 only+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'+ # We do not specify a path in Import Files, so LIBPATH fires.+ shlibpath_overrides_runpath=yes+ ;;+ *,yes) # both, prefer svr4+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'+ # unpreferred sharedlib libNAME.a needs extra handling+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'+ # We do not specify a path in Import Files, so LIBPATH fires.+ shlibpath_overrides_runpath=yes+ ;;+ *,no) # both, prefer aix+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"+ library_names_spec='$libname$release.a $libname.a'+ soname_spec='$libname$release$shared_ext$major'+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'+ ;;+ esac+ shlibpath_var=LIBPATH+ fi+ ;;++amigaos*)+ case $host_cpu in+ powerpc)+ # Since July 2007 AmigaOS4 officially supports .so libraries.+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ ;;+ m68k)+ library_names_spec='$libname.ixlibrary $libname.a'+ # Create ${libname}_ixlibrary.a entries in /sys/libs.+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'+ ;;+ esac+ ;;++beos*)+ library_names_spec='$libname$shared_ext'+ dynamic_linker="$host_os ld.so"+ shlibpath_var=LIBRARY_PATH+ ;;++bsdi[45]*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"+ # the default ld.so.conf also contains /usr/contrib/lib and+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow+ # libtool to hard-code these into programs+ ;;++cygwin* | mingw* | pw32* | cegcc*)+ version_type=windows+ shrext_cmds=.dll+ need_version=no+ need_lib_prefix=no++ case $GCC,$cc_basename in+ yes,*)+ # gcc+ library_names_spec='$libname.dll.a'+ # DLL is installed to $(libdir)/../bin by postinstall_cmds+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname~+ chmod a+x \$dldir/$dlname~+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;+ fi'+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~+ dlpath=$dir/\$dldll~+ $RM \$dlpath'+ shlibpath_overrides_runpath=yes++ case $host_os in+ cygwin*)+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'+ soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"+ ;;+ mingw* | cegcc*)+ # MinGW DLLs use traditional 'lib' prefix+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'+ ;;+ pw32*)+ # pw32 DLLs use 'pw' prefix rather than 'lib'+ library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'+ ;;+ esac+ dynamic_linker='Win32 ld.exe'+ ;;++ *,cl* | *,icl*)+ # Native MSVC or ICC+ libname_spec='$name'+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'+ library_names_spec='$libname.dll.lib'++ case $build_os in+ mingw*)+ sys_lib_search_path_spec=+ lt_save_ifs=$IFS+ IFS=';'+ for lt_path in $LIB+ do+ IFS=$lt_save_ifs+ # Let DOS variable expansion print the short 8.3 style file name.+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"+ done+ IFS=$lt_save_ifs+ # Convert to MSYS style.+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`+ ;;+ cygwin*)+ # Convert to unix form, then to dos form, then back to unix form+ # but this time dos style (no spaces!) so that the unix form looks+ # like /cygdrive/c/PROGRA~1:/cygdr...+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`+ ;;+ *)+ sys_lib_search_path_spec=$LIB+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then+ # It is most probably a Windows format PATH.+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`+ else+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`+ fi+ # FIXME: find the short name or the path components, as spaces are+ # common. (e.g. "Program Files" -> "PROGRA~1")+ ;;+ esac++ # DLL is installed to $(libdir)/../bin by postinstall_cmds+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname'+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~+ dlpath=$dir/\$dldll~+ $RM \$dlpath'+ shlibpath_overrides_runpath=yes+ dynamic_linker='Win32 link.exe'+ ;;++ *)+ # Assume MSVC and ICC wrapper+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'+ dynamic_linker='Win32 ld.exe'+ ;;+ esac+ # FIXME: first we should search . and the directory the executable is in+ shlibpath_var=PATH+ ;;++darwin* | rhapsody*)+ dynamic_linker="$host_os dyld"+ version_type=darwin+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'+ soname_spec='$libname$release$major$shared_ext'+ shlibpath_overrides_runpath=yes+ shlibpath_var=DYLD_LIBRARY_PATH+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'++ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'+ ;;++dgux*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ ;;++freebsd* | dragonfly* | midnightbsd*)+ # DragonFly does not have aout. When/if they implement a new+ # versioning mechanism, adjust this.+ if test -x /usr/bin/objformat; then+ objformat=`/usr/bin/objformat`+ else+ case $host_os in+ freebsd[23].*) objformat=aout ;;+ *) objformat=elf ;;+ esac+ fi+ version_type=freebsd-$objformat+ case $version_type in+ freebsd-elf*)+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ need_version=no+ need_lib_prefix=no+ ;;+ freebsd-*)+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ need_version=yes+ ;;+ esac+ shlibpath_var=LD_LIBRARY_PATH+ case $host_os in+ freebsd2.*)+ shlibpath_overrides_runpath=yes+ ;;+ freebsd3.[01]* | freebsdelf3.[01]*)+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ ;;+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ ;;+ *) # from 4.6 on, and DragonFly+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ ;;+ esac+ ;;++haiku*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ dynamic_linker="$host_os runtime_loader"+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LIBRARY_PATH+ shlibpath_overrides_runpath=no+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'+ hardcode_into_libs=yes+ ;;++hpux9* | hpux10* | hpux11*)+ # Give a soname corresponding to the major version so that dld.sl refuses to+ # link against other versions.+ version_type=sunos+ need_lib_prefix=no+ need_version=no+ case $host_cpu in+ ia64*)+ shrext_cmds='.so'+ hardcode_into_libs=yes+ dynamic_linker="$host_os dld.so"+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ if test 32 = "$HPUX_IA64_MODE"; then+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32+ else+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64+ fi+ ;;+ hppa*64*)+ shrext_cmds='.sl'+ hardcode_into_libs=yes+ dynamic_linker="$host_os dld.sl"+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec+ ;;+ *)+ shrext_cmds='.sl'+ dynamic_linker="$host_os dld.sl"+ shlibpath_var=SHLIB_PATH+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ ;;+ esac+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...+ postinstall_cmds='chmod 555 $lib'+ # or fails outright, so override atomically:+ install_override_mode=555+ ;;++interix[3-9]*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ ;;++irix5* | irix6* | nonstopux*)+ case $host_os in+ nonstopux*) version_type=nonstopux ;;+ *)+ if test yes = "$lt_cv_prog_gnu_ld"; then+ version_type=linux # correct to gnu/linux during the next big refactor+ else+ version_type=irix+ fi ;;+ esac+ need_lib_prefix=no+ need_version=no+ soname_spec='$libname$release$shared_ext$major'+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'+ case $host_os in+ irix5* | nonstopux*)+ libsuff= shlibsuff=+ ;;+ *)+ case $LD in # libtool.m4 will add one of these switches to LD+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")+ libsuff= shlibsuff= libmagic=32-bit;;+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")+ libsuff=32 shlibsuff=N32 libmagic=N32;;+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")+ libsuff=64 shlibsuff=64 libmagic=64-bit;;+ *) libsuff= shlibsuff= libmagic=never-match;;+ esac+ ;;+ esac+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH+ shlibpath_overrides_runpath=no+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"+ hardcode_into_libs=yes+ ;;++# No shared lib support for Linux oldld, aout, or coff.+linux*oldld* | linux*aout* | linux*coff*)+ dynamic_linker=no+ ;;++linux*android*)+ version_type=none # Android doesn't support versioned libraries.+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext'+ soname_spec='$libname$release$shared_ext'+ finish_cmds=+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes++ # This implies no fast_install, which is unacceptable.+ # Some rework will be needed to allow for fast_install+ # before this can be enabled.+ hardcode_into_libs=yes++ dynamic_linker='Android linker'+ # Don't embed -rpath directories since the linker doesn't support them.+ hardcode_libdir_flag_spec='-L$libdir'+ ;;++# This must be glibc/ELF.+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no++ # Some binutils ld are patched to set DT_RUNPATH+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_shlibpath_overrides_runpath=no+ save_LDFLAGS=$LDFLAGS+ save_libdir=$libdir+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :+ lt_cv_shlibpath_overrides_runpath=yes+fi+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ LDFLAGS=$save_LDFLAGS+ libdir=$save_libdir++fi++ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath++ # This implies no fast_install, which is unacceptable.+ # Some rework will be needed to allow for fast_install+ # before this can be enabled.+ hardcode_into_libs=yes++ # Ideally, we could use ldconfig to report *all* directores which are+ # searched for libraries, however this is still not possible. Aside from not+ # being certain /sbin/ldconfig is available, command+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,+ # even though it is searched at run-time. Try to do the best guess by+ # appending ld.so.conf contents (and includes) to the search path.+ if test -f /etc/ld.so.conf; then+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"+ fi++ # We used to test for /lib/ld.so.1 and disable shared libraries on+ # powerpc, because MkLinux only supported shared libraries with the+ # GNU dynamic linker. Since this was broken with cross compilers,+ # most powerpc-linux boxes support dynamic linking these days and+ # people can always --disable-shared, the test was removed, and we+ # assume the GNU/Linux dynamic linker is in use.+ dynamic_linker='GNU/Linux ld.so'+ ;;++netbsdelf*-gnu)+ version_type=linux+ need_lib_prefix=no+ need_version=no+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'+ soname_spec='${libname}${release}${shared_ext}$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ dynamic_linker='NetBSD ld.elf_so'+ ;;++netbsd*)+ version_type=sunos+ need_lib_prefix=no+ need_version=no+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'+ dynamic_linker='NetBSD (a.out) ld.so'+ else+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ dynamic_linker='NetBSD ld.elf_so'+ fi+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ ;;++newsos6)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ ;;++*nto* | *qnx*)+ version_type=qnx+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ dynamic_linker='ldqnx.so'+ ;;++openbsd* | bitrig*)+ version_type=sunos+ sys_lib_dlsearch_path_spec=/usr/lib+ need_lib_prefix=no+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then+ need_version=no+ else+ need_version=yes+ fi+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ ;;++os2*)+ libname_spec='$name'+ version_type=windows+ shrext_cmds=.dll+ need_version=no+ need_lib_prefix=no+ # OS/2 can only load a DLL with a base name of 8 characters or less.+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";+ v=$($ECHO $release$versuffix | tr -d .-);+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);+ $ECHO $n$v`$shared_ext'+ library_names_spec='${libname}_dll.$libext'+ dynamic_linker='OS/2 ld.exe'+ shlibpath_var=BEGINLIBPATH+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname~+ chmod a+x \$dldir/$dlname~+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;+ fi'+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~+ dlpath=$dir/\$dldll~+ $RM \$dlpath'+ ;;++osf3* | osf4* | osf5*)+ version_type=osf+ need_lib_prefix=no+ need_version=no+ soname_spec='$libname$release$shared_ext$major'+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec+ ;;++rdos*)+ dynamic_linker=no+ ;;++solaris*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ # ldd complains unless libraries are executable+ postinstall_cmds='chmod +x $lib'+ ;;++sunos4*)+ version_type=sunos+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ if test yes = "$with_gnu_ld"; then+ need_lib_prefix=no+ fi+ need_version=yes+ ;;++sysv4 | sysv4.3*)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ case $host_vendor in+ sni)+ shlibpath_overrides_runpath=no+ need_lib_prefix=no+ runpath_var=LD_RUN_PATH+ ;;+ siemens)+ need_lib_prefix=no+ ;;+ motorola)+ need_lib_prefix=no+ need_version=no+ shlibpath_overrides_runpath=no+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'+ ;;+ esac+ ;;++sysv4*MP*)+ if test -d /usr/nec; then+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'+ soname_spec='$libname$shared_ext.$major'+ shlibpath_var=LD_LIBRARY_PATH+ fi+ ;;++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)+ version_type=sco+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ if test yes = "$with_gnu_ld"; then+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'+ else+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'+ case $host_os in+ sco3.2v5*)+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"+ ;;+ esac+ fi+ sys_lib_dlsearch_path_spec='/usr/lib'+ ;;++tpf*)+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ ;;++uts4*)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ ;;++*)+ dynamic_linker=no+ ;;+esac+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5+$as_echo "$dynamic_linker" >&6; }+test no = "$dynamic_linker" && can_build_shared=no++variables_saved_for_relink="PATH $shlibpath_var $runpath_var"+if test yes = "$GCC"; then+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"+fi++if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec+fi++if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec+fi++# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec++# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"++# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }+hardcode_action=+if test -n "$hardcode_libdir_flag_spec" ||+ test -n "$runpath_var" ||+ test yes = "$hardcode_automatic"; then++ # We can hardcode non-existent directories.+ if test no != "$hardcode_direct" &&+ # If the only mechanism to avoid hardcoding is shlibpath_var, we+ # have to relink, otherwise we might link with an installed library+ # when we should be linking with a yet-to-be-installed one+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&+ test no != "$hardcode_minus_L"; then+ # Linking always hardcodes the temporary library directory.+ hardcode_action=relink+ else+ # We can link without hardcoding, and we can hardcode nonexisting dirs.+ hardcode_action=immediate+ fi+else+ # We cannot hardcode anything, or else we can only hardcode existing+ # directories.+ hardcode_action=unsupported+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5+$as_echo "$hardcode_action" >&6; }++if test relink = "$hardcode_action" ||+ test yes = "$inherit_rpath"; then+ # Fast installation is not supported+ enable_fast_install=no+elif test yes = "$shlibpath_overrides_runpath" ||+ test no = "$enable_shared"; then+ # Fast installation is not necessary+ enable_fast_install=needless+fi+++++++ if test yes != "$enable_dlopen"; then+ enable_dlopen=unknown+ enable_dlopen_self=unknown+ enable_dlopen_self_static=unknown+else+ lt_cv_dlopen=no+ lt_cv_dlopen_libs=++ case $host_os in+ beos*)+ lt_cv_dlopen=load_add_on+ lt_cv_dlopen_libs=+ lt_cv_dlopen_self=yes+ ;;++ mingw* | pw32* | cegcc*)+ lt_cv_dlopen=LoadLibrary+ lt_cv_dlopen_libs=+ ;;++ cygwin*)+ lt_cv_dlopen=dlopen+ lt_cv_dlopen_libs=+ ;;++ darwin*)+ # if libdl is installed we need to link against it+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5+$as_echo_n "checking for dlopen in -ldl... " >&6; }+if ${ac_cv_lib_dl_dlopen+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_check_lib_save_LIBS=$LIBS+LIBS="-ldl $LIBS"+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char dlopen ();+int+main ()+{+return dlopen ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ ac_cv_lib_dl_dlopen=yes+else+ ac_cv_lib_dl_dlopen=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+LIBS=$ac_check_lib_save_LIBS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl+else++ lt_cv_dlopen=dyld+ lt_cv_dlopen_libs=+ lt_cv_dlopen_self=yes++fi++ ;;++ tpf*)+ # Don't try to run any link tests for TPF. We know it's impossible+ # because TPF is a cross-compiler, and we know how we open DSOs.+ lt_cv_dlopen=dlopen+ lt_cv_dlopen_libs=+ lt_cv_dlopen_self=no+ ;;++ *)+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"+if test "x$ac_cv_func_shl_load" = xyes; then :+ lt_cv_dlopen=shl_load+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5+$as_echo_n "checking for shl_load in -ldld... " >&6; }+if ${ac_cv_lib_dld_shl_load+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_check_lib_save_LIBS=$LIBS+LIBS="-ldld $LIBS"+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char shl_load ();+int+main ()+{+return shl_load ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ ac_cv_lib_dld_shl_load=yes+else+ ac_cv_lib_dld_shl_load=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+LIBS=$ac_check_lib_save_LIBS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }+if test "x$ac_cv_lib_dld_shl_load" = xyes; then :+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld+else+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"+if test "x$ac_cv_func_dlopen" = xyes; then :+ lt_cv_dlopen=dlopen+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5+$as_echo_n "checking for dlopen in -ldl... " >&6; }+if ${ac_cv_lib_dl_dlopen+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_check_lib_save_LIBS=$LIBS+LIBS="-ldl $LIBS"+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char dlopen ();+int+main ()+{+return dlopen ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ ac_cv_lib_dl_dlopen=yes+else+ ac_cv_lib_dl_dlopen=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+LIBS=$ac_check_lib_save_LIBS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }+if test "x$ac_cv_lib_dl_dlopen" = xyes; then :+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5+$as_echo_n "checking for dlopen in -lsvld... " >&6; }+if ${ac_cv_lib_svld_dlopen+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_check_lib_save_LIBS=$LIBS+LIBS="-lsvld $LIBS"+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char dlopen ();+int+main ()+{+return dlopen ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ ac_cv_lib_svld_dlopen=yes+else+ ac_cv_lib_svld_dlopen=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+LIBS=$ac_check_lib_save_LIBS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }+if test "x$ac_cv_lib_svld_dlopen" = xyes; then :+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5+$as_echo_n "checking for dld_link in -ldld... " >&6; }+if ${ac_cv_lib_dld_dld_link+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_check_lib_save_LIBS=$LIBS+LIBS="-ldld $LIBS"+cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char dld_link ();+int+main ()+{+return dld_link ();+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ ac_cv_lib_dld_dld_link=yes+else+ ac_cv_lib_dld_dld_link=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+LIBS=$ac_check_lib_save_LIBS+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }+if test "x$ac_cv_lib_dld_dld_link" = xyes; then :+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld+fi+++fi+++fi+++fi+++fi+++fi++ ;;+ esac++ if test no = "$lt_cv_dlopen"; then+ enable_dlopen=no+ else+ enable_dlopen=yes+ fi++ case $lt_cv_dlopen in+ dlopen)+ save_CPPFLAGS=$CPPFLAGS+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"++ save_LDFLAGS=$LDFLAGS+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"++ save_LIBS=$LIBS+ LIBS="$lt_cv_dlopen_libs $LIBS"++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5+$as_echo_n "checking whether a program can dlopen itself... " >&6; }+if ${lt_cv_dlopen_self+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test yes = "$cross_compiling"; then :+ lt_cv_dlopen_self=cross+else+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2+ lt_status=$lt_dlunknown+ cat > conftest.$ac_ext <<_LT_EOF+#line $LINENO "configure"+#include "confdefs.h"++#if HAVE_DLFCN_H+#include <dlfcn.h>+#endif++#include <stdio.h>++#ifdef RTLD_GLOBAL+# define LT_DLGLOBAL RTLD_GLOBAL+#else+# ifdef DL_GLOBAL+# define LT_DLGLOBAL DL_GLOBAL+# else+# define LT_DLGLOBAL 0+# endif+#endif++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we+ find out it does not work in some platform. */+#ifndef LT_DLLAZY_OR_NOW+# ifdef RTLD_LAZY+# define LT_DLLAZY_OR_NOW RTLD_LAZY+# else+# ifdef DL_LAZY+# define LT_DLLAZY_OR_NOW DL_LAZY+# else+# ifdef RTLD_NOW+# define LT_DLLAZY_OR_NOW RTLD_NOW+# else+# ifdef DL_NOW+# define LT_DLLAZY_OR_NOW DL_NOW+# else+# define LT_DLLAZY_OR_NOW 0+# endif+# endif+# endif+# endif+#endif++/* When -fvisibility=hidden is used, assume the code has been annotated+ correspondingly for the symbols needed. */+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))+int fnord () __attribute__((visibility("default")));+#endif++int fnord () { return 42; }+int main ()+{+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);+ int status = $lt_dlunknown;++ if (self)+ {+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;+ else+ {+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;+ else puts (dlerror ());+ }+ /* dlclose (self); */+ }+ else+ puts (dlerror ());++ return status;+}+_LT_EOF+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5+ (eval $ac_link) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then+ (./conftest; exit; ) >&5 2>/dev/null+ lt_status=$?+ case x$lt_status in+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;+ esac+ else :+ # compilation failed+ lt_cv_dlopen_self=no+ fi+fi+rm -fr conftest*+++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5+$as_echo "$lt_cv_dlopen_self" >&6; }++ if test yes = "$lt_cv_dlopen_self"; then+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }+if ${lt_cv_dlopen_self_static+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test yes = "$cross_compiling"; then :+ lt_cv_dlopen_self_static=cross+else+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2+ lt_status=$lt_dlunknown+ cat > conftest.$ac_ext <<_LT_EOF+#line $LINENO "configure"+#include "confdefs.h"++#if HAVE_DLFCN_H+#include <dlfcn.h>+#endif++#include <stdio.h>++#ifdef RTLD_GLOBAL+# define LT_DLGLOBAL RTLD_GLOBAL+#else+# ifdef DL_GLOBAL+# define LT_DLGLOBAL DL_GLOBAL+# else+# define LT_DLGLOBAL 0+# endif+#endif++/* We may have to define LT_DLLAZY_OR_NOW in the command line if we+ find out it does not work in some platform. */+#ifndef LT_DLLAZY_OR_NOW+# ifdef RTLD_LAZY+# define LT_DLLAZY_OR_NOW RTLD_LAZY+# else+# ifdef DL_LAZY+# define LT_DLLAZY_OR_NOW DL_LAZY+# else+# ifdef RTLD_NOW+# define LT_DLLAZY_OR_NOW RTLD_NOW+# else+# ifdef DL_NOW+# define LT_DLLAZY_OR_NOW DL_NOW+# else+# define LT_DLLAZY_OR_NOW 0+# endif+# endif+# endif+# endif+#endif++/* When -fvisibility=hidden is used, assume the code has been annotated+ correspondingly for the symbols needed. */+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))+int fnord () __attribute__((visibility("default")));+#endif++int fnord () { return 42; }+int main ()+{+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);+ int status = $lt_dlunknown;++ if (self)+ {+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;+ else+ {+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;+ else puts (dlerror ());+ }+ /* dlclose (self); */+ }+ else+ puts (dlerror ());++ return status;+}+_LT_EOF+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5+ (eval $ac_link) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then+ (./conftest; exit; ) >&5 2>/dev/null+ lt_status=$?+ case x$lt_status in+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;+ esac+ else :+ # compilation failed+ lt_cv_dlopen_self_static=no+ fi+fi+rm -fr conftest*+++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5+$as_echo "$lt_cv_dlopen_self_static" >&6; }+ fi++ CPPFLAGS=$save_CPPFLAGS+ LDFLAGS=$save_LDFLAGS+ LIBS=$save_LIBS+ ;;+ esac++ case $lt_cv_dlopen_self in+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;+ *) enable_dlopen_self=unknown ;;+ esac++ case $lt_cv_dlopen_self_static in+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;+ *) enable_dlopen_self_static=unknown ;;+ esac+fi++++++++++++++++++striplib=+old_striplib=+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5+$as_echo_n "checking whether stripping libraries is possible... " >&6; }+if test -z "$STRIP"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+else+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then+ old_striplib="$STRIP --strip-debug"+ striplib="$STRIP --strip-unneeded"+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+ else+ case $host_os in+ darwin*)+ # FIXME - insert some real tests, host_os isn't really good enough+ striplib="$STRIP -x"+ old_striplib="$STRIP -S"+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+ ;;+ freebsd*)+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then+ old_striplib="$STRIP --strip-debug"+ striplib="$STRIP --strip-unneeded"+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5+$as_echo "yes" >&6; }+ else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+ fi+ ;;+ *)+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+ ;;+ esac+ fi+fi+++++++++++++ # Report what library types will actually be built+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5+$as_echo_n "checking if libtool supports shared libraries... " >&6; }+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5+$as_echo "$can_build_shared" >&6; }++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5+$as_echo_n "checking whether to build shared libraries... " >&6; }+ test no = "$can_build_shared" && enable_shared=no++ # On AIX, shared libraries and static libraries use the same namespace, and+ # are all built from PIC.+ case $host_os in+ aix3*)+ test yes = "$enable_shared" && enable_static=no+ if test -n "$RANLIB"; then+ archive_cmds="$archive_cmds~\$RANLIB \$lib"+ postinstall_cmds='$RANLIB $lib'+ fi+ ;;++ aix[4-9]*)+ if test ia64 != "$host_cpu"; then+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in+ yes,aix,yes) ;; # shared object as lib.so file only+ yes,svr4,*) ;; # shared object as lib.so archive member only+ yes,*) enable_static=no ;; # shared object in lib.a archive as well+ esac+ fi+ ;;+ esac+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5+$as_echo "$enable_shared" >&6; }++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5+$as_echo_n "checking whether to build static libraries... " >&6; }+ # Make sure either enable_shared or enable_static is yes.+ test yes = "$enable_shared" || enable_static=yes+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5+$as_echo "$enable_static" >&6; }+++++fi+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++CC=$lt_save_CC++ if test -n "$CXX" && ( test no != "$CXX" &&+ ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||+ (test g++ != "$CXX"))); then+ ac_ext=cpp+ac_cpp='$CXXCPP $CPPFLAGS'+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }+if test -z "$CXXCPP"; then+ if ${ac_cv_prog_CXXCPP+:} false; then :+ $as_echo_n "(cached) " >&6+else+ # Double quotes because CXXCPP needs to be expanded+ for CXXCPP in "$CXX -E" "/lib/cpp"+ do+ ac_preproc_ok=false+for ac_cxx_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if ac_fn_cxx_try_cpp "$LINENO"; then :++else+ # Broken: fails on valid input.+continue+fi+rm -f conftest.err conftest.i conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if ac_fn_cxx_try_cpp "$LINENO"; then :+ # Broken: success on invalid input.+continue+else+ # Passes both tests.+ac_preproc_ok=:+break+fi+rm -f conftest.err conftest.i conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.i conftest.err conftest.$ac_ext+if $ac_preproc_ok; then :+ break+fi++ done+ ac_cv_prog_CXXCPP=$CXXCPP++fi+ CXXCPP=$ac_cv_prog_CXXCPP+else+ ac_cv_prog_CXXCPP=$CXXCPP+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5+$as_echo "$CXXCPP" >&6; }+ac_preproc_ok=false+for ac_cxx_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if ac_fn_cxx_try_cpp "$LINENO"; then :++else+ # Broken: fails on valid input.+continue+fi+rm -f conftest.err conftest.i conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if ac_fn_cxx_try_cpp "$LINENO"; then :+ # Broken: success on invalid input.+continue+else+ # Passes both tests.+ac_preproc_ok=:+break+fi+rm -f conftest.err conftest.i conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.i conftest.err conftest.$ac_ext+if $ac_preproc_ok; then :++else+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check+See \`config.log' for more details" "$LINENO" 5; }+fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++else+ _lt_caught_CXX_error=yes+fi++ac_ext=cpp+ac_cpp='$CXXCPP $CPPFLAGS'+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu++archive_cmds_need_lc_CXX=no+allow_undefined_flag_CXX=+always_export_symbols_CXX=no+archive_expsym_cmds_CXX=+compiler_needs_object_CXX=no+export_dynamic_flag_spec_CXX=+hardcode_direct_CXX=no+hardcode_direct_absolute_CXX=no+hardcode_libdir_flag_spec_CXX=+hardcode_libdir_separator_CXX=+hardcode_minus_L_CXX=no+hardcode_shlibpath_var_CXX=unsupported+hardcode_automatic_CXX=no+inherit_rpath_CXX=no+module_cmds_CXX=+module_expsym_cmds_CXX=+link_all_deplibs_CXX=unknown+old_archive_cmds_CXX=$old_archive_cmds+reload_flag_CXX=$reload_flag+reload_cmds_CXX=$reload_cmds+no_undefined_flag_CXX=+whole_archive_flag_spec_CXX=+enable_shared_with_static_runtimes_CXX=no++# Source file extension for C++ test sources.+ac_ext=cpp++# Object file extension for compiled C++ test sources.+objext=o+objext_CXX=$objext++# No sense in running all these tests if we already determined that+# the CXX compiler isn't working. Some variables (like enable_shared)+# are currently assumed to apply to all compilers on this platform,+# and will be corrupted by setting them based on a non-working compiler.+if test yes != "$_lt_caught_CXX_error"; then+ # Code to be used in simple compile tests+ lt_simple_compile_test_code="int some_variable = 0;"++ # Code to be used in simple link tests+ lt_simple_link_test_code='int main(int, char *[]) { return(0); }'++ # ltmain only uses $CC for tagged configurations so make sure $CC is set.+++++++# If no C compiler was specified, use CC.+LTCC=${LTCC-"$CC"}++# If no C compiler flags were specified, use CFLAGS.+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}++# Allow CC to be a program name with arguments.+compiler=$CC+++ # save warnings/boilerplate of simple test code+ ac_outfile=conftest.$ac_objext+echo "$lt_simple_compile_test_code" >conftest.$ac_ext+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err+_lt_compiler_boilerplate=`cat conftest.err`+$RM conftest*++ ac_outfile=conftest.$ac_objext+echo "$lt_simple_link_test_code" >conftest.$ac_ext+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err+_lt_linker_boilerplate=`cat conftest.err`+$RM -r conftest*+++ # Allow CC to be a program name with arguments.+ lt_save_CC=$CC+ lt_save_CFLAGS=$CFLAGS+ lt_save_LD=$LD+ lt_save_GCC=$GCC+ GCC=$GXX+ lt_save_with_gnu_ld=$with_gnu_ld+ lt_save_path_LD=$lt_cv_path_LD+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx+ else+ $as_unset lt_cv_prog_gnu_ld+ fi+ if test -n "${lt_cv_path_LDCXX+set}"; then+ lt_cv_path_LD=$lt_cv_path_LDCXX+ else+ $as_unset lt_cv_path_LD+ fi+ test -z "${LDCXX+set}" || LD=$LDCXX+ CC=${CXX-"c++"}+ CFLAGS=$CXXFLAGS+ compiler=$CC+ compiler_CXX=$CC+ func_cc_basename $compiler+cc_basename=$func_cc_basename_result+++ if test -n "$compiler"; then+ # We don't want -fno-exception when compiling C++ code, so set the+ # no_builtin_flag separately+ if test yes = "$GXX"; then+ lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'+ else+ lt_prog_compiler_no_builtin_flag_CXX=+ fi++ if test yes = "$GXX"; then+ # Set up default GNU C++ configuration++++# Check whether --with-gnu-ld was given.+if test "${with_gnu_ld+set}" = set; then :+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes+else+ with_gnu_ld=no+fi++ac_prog=ld+if test yes = "$GCC"; then+ # Check if gcc -print-prog-name=ld gives a path.+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5+$as_echo_n "checking for ld used by $CC... " >&6; }+ case $host in+ *-*-mingw*)+ # gcc leaves a trailing carriage return, which upsets mingw+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;+ *)+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;+ esac+ case $ac_prog in+ # Accept absolute paths.+ [\\/]* | ?:[\\/]*)+ re_direlt='/[^/][^/]*/\.\./'+ # Canonicalize the pathname of ld+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`+ done+ test -z "$LD" && LD=$ac_prog+ ;;+ "")+ # If it fails, then pretend we aren't using GCC.+ ac_prog=ld+ ;;+ *)+ # If it is relative, then search for the first ld in PATH.+ with_gnu_ld=unknown+ ;;+ esac+elif test yes = "$with_gnu_ld"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5+$as_echo_n "checking for GNU ld... " >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5+$as_echo_n "checking for non-GNU ld... " >&6; }+fi+if ${lt_cv_path_LD+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test -z "$LD"; then+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR+ for ac_dir in $PATH; do+ IFS=$lt_save_ifs+ test -z "$ac_dir" && ac_dir=.+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then+ lt_cv_path_LD=$ac_dir/$ac_prog+ # Check to see if the program is GNU ld. I'd rather use --version,+ # but apparently some variants of GNU ld only accept -v.+ # Break only if it was the GNU/non-GNU ld that we prefer.+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in+ *GNU* | *'with BFD'*)+ test no != "$with_gnu_ld" && break+ ;;+ *)+ test yes != "$with_gnu_ld" && break+ ;;+ esac+ fi+ done+ IFS=$lt_save_ifs+else+ lt_cv_path_LD=$LD # Let the user override the test with a path.+fi+fi++LD=$lt_cv_path_LD+if test -n "$LD"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5+$as_echo "$LD" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }+if ${lt_cv_prog_gnu_ld+:} false; then :+ $as_echo_n "(cached) " >&6+else+ # I'd rather use --version here, but apparently some GNU lds only accept -v.+case `$LD -v 2>&1 </dev/null` in+*GNU* | *'with BFD'*)+ lt_cv_prog_gnu_ld=yes+ ;;+*)+ lt_cv_prog_gnu_ld=no+ ;;+esac+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5+$as_echo "$lt_cv_prog_gnu_ld" >&6; }+with_gnu_ld=$lt_cv_prog_gnu_ld++++++++ # Check if GNU C++ uses GNU ld as the underlying linker, since the+ # archiving commands below assume that GNU ld is being used.+ if test yes = "$with_gnu_ld"; then+ archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'+ export_dynamic_flag_spec_CXX='$wl--export-dynamic'++ # If archive_cmds runs LD, not CC, wlarc should be empty+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to+ # investigate it a little bit more. (MM)+ wlarc='$wl'++ # ancient GNU ld didn't support --whole-archive et. al.+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |+ $GREP 'no-whole-archive' > /dev/null; then+ whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'+ else+ whole_archive_flag_spec_CXX=+ fi+ else+ with_gnu_ld=no+ wlarc=++ # A generic and very simple default shared library creation+ # command for GNU C++ for the case where it uses the native+ # linker, instead of GNU ld. If possible, this setting should+ # overridden to take advantage of the native linker features on+ # the platform it is being used on.+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'+ fi++ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'++ else+ GXX=no+ with_gnu_ld=no+ wlarc=+ fi++ # PORTME: fill in a description of your system's C++ link characteristics+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }+ ld_shlibs_CXX=yes+ case $host_os in+ aix3*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ aix[4-9]*)+ if test ia64 = "$host_cpu"; then+ # On IA64, the linker does run time linking by default, so we don't+ # have to do anything special.+ aix_use_runtimelinking=no+ exp_sym_flag='-Bexport'+ no_entry_flag=+ else+ aix_use_runtimelinking=no++ # Test if we are trying to use run time linking or normal+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we+ # have runtime linking enabled, and use it for executables.+ # For shared libraries, we enable/disable runtime linking+ # depending on the kind of the shared library created -+ # when "with_aix_soname,aix_use_runtimelinking" is:+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables+ # "aix,yes" lib.so shared, rtl:yes, for executables+ # lib.a static archive+ # "both,no" lib.so.V(shr.o) shared, rtl:yes+ # lib.a(lib.so.V) shared, rtl:no, for executables+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables+ # lib.a(lib.so.V) shared, rtl:no+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables+ # lib.a static archive+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)+ for ld_flag in $LDFLAGS; do+ case $ld_flag in+ *-brtl*)+ aix_use_runtimelinking=yes+ break+ ;;+ esac+ done+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then+ # With aix-soname=svr4, we create the lib.so.V shared archives only,+ # so we don't have lib.a shared libs to link our executables.+ # We have to force runtime linking in this case.+ aix_use_runtimelinking=yes+ LDFLAGS="$LDFLAGS -Wl,-brtl"+ fi+ ;;+ esac++ exp_sym_flag='-bexport'+ no_entry_flag='-bnoentry'+ fi++ # When large executables or shared objects are built, AIX ld can+ # have problems creating the table of contents. If linking a library+ # or program results in "error TOC overflow" add -mminimal-toc to+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.++ archive_cmds_CXX=''+ hardcode_direct_CXX=yes+ hardcode_direct_absolute_CXX=yes+ hardcode_libdir_separator_CXX=':'+ link_all_deplibs_CXX=yes+ file_list_spec_CXX='$wl-f,'+ case $with_aix_soname,$aix_use_runtimelinking in+ aix,*) ;; # no import file+ svr4,* | *,yes) # use import file+ # The Import File defines what to hardcode.+ hardcode_direct_CXX=no+ hardcode_direct_absolute_CXX=no+ ;;+ esac++ if test yes = "$GXX"; then+ case $host_os in aix4.[012]|aix4.[012].*)+ # We only want to do this on AIX 4.2 and lower, the check+ # below for broken collect2 doesn't work under 4.3++ collect2name=`$CC -print-prog-name=collect2`+ if test -f "$collect2name" &&+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null+ then+ # We have reworked collect2+ :+ else+ # We have old collect2+ hardcode_direct_CXX=unsupported+ # It fails to find uninstalled libraries when the uninstalled+ # path is not listed in the libpath. Setting hardcode_minus_L+ # to unsupported forces relinking+ hardcode_minus_L_CXX=yes+ hardcode_libdir_flag_spec_CXX='-L$libdir'+ hardcode_libdir_separator_CXX=+ fi+ esac+ shared_flag='-shared'+ if test yes = "$aix_use_runtimelinking"; then+ shared_flag=$shared_flag' $wl-G'+ fi+ # Need to ensure runtime linking is disabled for the traditional+ # shared library, or the linker may eventually find shared libraries+ # /with/ Import File - we do not want to mix them.+ shared_flag_aix='-shared'+ shared_flag_svr4='-shared $wl-G'+ else+ # not using gcc+ if test ia64 = "$host_cpu"; then+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release+ # chokes on -Wl,-G. The following line is correct:+ shared_flag='-G'+ else+ if test yes = "$aix_use_runtimelinking"; then+ shared_flag='$wl-G'+ else+ shared_flag='$wl-bM:SRE'+ fi+ shared_flag_aix='$wl-bM:SRE'+ shared_flag_svr4='$wl-G'+ fi+ fi++ export_dynamic_flag_spec_CXX='$wl-bexpall'+ # It seems that -bexpall does not export symbols beginning with+ # underscore (_), so it is better to generate a list of symbols to+ # export.+ always_export_symbols_CXX=yes+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then+ # Warning - without using the other runtime loading flags (-brtl),+ # -berok will link without error, but may produce a broken library.+ # The "-G" linker flag allows undefined symbols.+ no_undefined_flag_CXX='-bernotok'+ # Determine the default libpath from the value encoded in an empty+ # executable.+ if test set = "${lt_cv_aix_libpath+set}"; then+ aix_libpath=$lt_cv_aix_libpath+else+ if ${lt_cv_aix_libpath__CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_link "$LINENO"; then :++ lt_aix_libpath_sed='+ /Import File Strings/,/^$/ {+ /^0/ {+ s/^0 *\([^ ]*\) *$/\1/+ p+ }+ }'+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ # Check for a 64-bit object if we didn't find anything.+ if test -z "$lt_cv_aix_libpath__CXX"; then+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ fi+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ if test -z "$lt_cv_aix_libpath__CXX"; then+ lt_cv_aix_libpath__CXX=/usr/lib:/lib+ fi++fi++ aix_libpath=$lt_cv_aix_libpath__CXX+fi++ hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"++ archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag+ else+ if test ia64 = "$host_cpu"; then+ hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib'+ allow_undefined_flag_CXX="-z nodefs"+ archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"+ else+ # Determine the default libpath from the value encoded in an+ # empty executable.+ if test set = "${lt_cv_aix_libpath+set}"; then+ aix_libpath=$lt_cv_aix_libpath+else+ if ${lt_cv_aix_libpath__CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_link "$LINENO"; then :++ lt_aix_libpath_sed='+ /Import File Strings/,/^$/ {+ /^0/ {+ s/^0 *\([^ ]*\) *$/\1/+ p+ }+ }'+ lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ # Check for a 64-bit object if we didn't find anything.+ if test -z "$lt_cv_aix_libpath__CXX"; then+ lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`+ fi+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ if test -z "$lt_cv_aix_libpath__CXX"; then+ lt_cv_aix_libpath__CXX=/usr/lib:/lib+ fi++fi++ aix_libpath=$lt_cv_aix_libpath__CXX+fi++ hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath"+ # Warning - without using the other run time loading flags,+ # -berok will link without error, but may produce a broken library.+ no_undefined_flag_CXX=' $wl-bernotok'+ allow_undefined_flag_CXX=' $wl-berok'+ if test yes = "$with_gnu_ld"; then+ # We only use this code for GNU lds that support --whole-archive.+ whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'+ else+ # Exported symbols can be pulled into shared objects from archives+ whole_archive_flag_spec_CXX='$convenience'+ fi+ archive_cmds_need_lc_CXX=yes+ archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'+ # -brtl affects multiple linker settings, -berok does not and is overridden later+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'+ if test svr4 != "$with_aix_soname"; then+ # This is similar to how AIX traditionally builds its shared+ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.+ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'+ fi+ if test aix != "$with_aix_soname"; then+ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'+ else+ # used by -dlpreopen to get the symbols+ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir'+ fi+ archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d'+ fi+ fi+ ;;++ beos*)+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then+ allow_undefined_flag_CXX=unsupported+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc+ # support --undefined. This deserves some investigation. FIXME+ archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ else+ ld_shlibs_CXX=no+ fi+ ;;++ chorus*)+ case $cc_basename in+ *)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ esac+ ;;++ cygwin* | mingw* | pw32* | cegcc*)+ case $GXX,$cc_basename in+ ,cl* | no,cl* | ,icl* | no,icl*)+ # Native MSVC or ICC+ # hardcode_libdir_flag_spec is actually meaningless, as there is+ # no search path for DLLs.+ hardcode_libdir_flag_spec_CXX=' '+ allow_undefined_flag_CXX=unsupported+ always_export_symbols_CXX=yes+ file_list_spec_CXX='@'+ # Tell ltmain to make .lib files, not .a files.+ libext=lib+ # Tell ltmain to make .dll files, not .so files.+ shrext_cmds=.dll+ # FIXME: Setting linknames here is a bad hack.+ archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='+ archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then+ cp "$export_symbols" "$output_objdir/$soname.def";+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";+ else+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;+ fi~+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~+ linknames='+ # The linker will not automatically build a static lib if we build a DLL.+ # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'+ enable_shared_with_static_runtimes_CXX=yes+ # Don't use ranlib+ old_postinstall_cmds_CXX='chmod 644 $oldlib'+ postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~+ lt_tool_outputfile="@TOOL_OUTPUT@"~+ case $lt_outputfile in+ *.exe|*.EXE) ;;+ *)+ lt_outputfile=$lt_outputfile.exe+ lt_tool_outputfile=$lt_tool_outputfile.exe+ ;;+ esac~+ func_to_tool_file "$lt_outputfile"~+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;+ $RM "$lt_outputfile.manifest";+ fi'+ ;;+ *)+ # g+++ # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,+ # as there is no search path for DLLs.+ hardcode_libdir_flag_spec_CXX='-L$libdir'+ export_dynamic_flag_spec_CXX='$wl--export-all-symbols'+ allow_undefined_flag_CXX=unsupported+ always_export_symbols_CXX=no+ enable_shared_with_static_runtimes_CXX=yes++ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then+ archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'+ # If the export-symbols file already is a .def file, use it as+ # is; otherwise, prepend EXPORTS...+ archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then+ cp $export_symbols $output_objdir/$soname.def;+ else+ echo EXPORTS > $output_objdir/$soname.def;+ cat $export_symbols >> $output_objdir/$soname.def;+ fi~+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'+ else+ ld_shlibs_CXX=no+ fi+ ;;+ esac+ ;;+ darwin* | rhapsody*)+++ archive_cmds_need_lc_CXX=no+ hardcode_direct_CXX=no+ hardcode_automatic_CXX=yes+ hardcode_shlibpath_var_CXX=unsupported+ if test yes = "$lt_cv_ld_force_load"; then+ whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'++ else+ whole_archive_flag_spec_CXX=''+ fi+ link_all_deplibs_CXX=yes+ allow_undefined_flag_CXX=$_lt_dar_allow_undefined+ case $cc_basename in+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;+ *) _lt_dar_can_shared=$GCC ;;+ esac+ if test yes = "$_lt_dar_can_shared"; then+ output_verbose_link_cmd=func_echo_all+ archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"+ module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"+ archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"+ module_expsym_cmds_CXX="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"+ if test yes != "$lt_cv_apple_cc_single_mod"; then+ archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"+ archive_expsym_cmds_CXX="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"+ fi++ else+ ld_shlibs_CXX=no+ fi++ ;;++ os2*)+ hardcode_libdir_flag_spec_CXX='-L$libdir'+ hardcode_minus_L_CXX=yes+ allow_undefined_flag_CXX=unsupported+ shrext_cmds=.dll+ archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~+ $ECHO EXPORTS >> $output_objdir/$libname.def~+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~+ emximp -o $lib $output_objdir/$libname.def'+ archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~+ $ECHO EXPORTS >> $output_objdir/$libname.def~+ prefix_cmds="$SED"~+ if test EXPORTS = "`$SED 1q $export_symbols`"; then+ prefix_cmds="$prefix_cmds -e 1d";+ fi~+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~+ emximp -o $lib $output_objdir/$libname.def'+ old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'+ enable_shared_with_static_runtimes_CXX=yes+ file_list_spec_CXX='@'+ ;;++ dgux*)+ case $cc_basename in+ ec++*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ ghcx*)+ # Green Hills C++ Compiler+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ *)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ esac+ ;;++ freebsd2.*)+ # C++ shared libraries reported to be fairly broken before+ # switch to ELF+ ld_shlibs_CXX=no+ ;;++ freebsd-elf*)+ archive_cmds_need_lc_CXX=no+ ;;++ freebsd* | dragonfly* | midnightbsd*)+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF+ # conventions+ ld_shlibs_CXX=yes+ ;;++ haiku*)+ archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ link_all_deplibs_CXX=yes+ ;;++ hpux9*)+ hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'+ hardcode_libdir_separator_CXX=:+ export_dynamic_flag_spec_CXX='$wl-E'+ hardcode_direct_CXX=yes+ hardcode_minus_L_CXX=yes # Not in the search PATH,+ # but as the default+ # location of the library.++ case $cc_basename in+ CC*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ aCC*)+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'+ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ #+ # There doesn't appear to be a way to prevent this compiler from+ # explicitly linking system object files so we need to strip them+ # from the output so that they don't get included in the library+ # dependencies.+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'+ ;;+ *)+ if test yes = "$GXX"; then+ archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'+ else+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ fi+ ;;+ esac+ ;;++ hpux10*|hpux11*)+ if test no = "$with_gnu_ld"; then+ hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir'+ hardcode_libdir_separator_CXX=:++ case $host_cpu in+ hppa*64*|ia64*)+ ;;+ *)+ export_dynamic_flag_spec_CXX='$wl-E'+ ;;+ esac+ fi+ case $host_cpu in+ hppa*64*|ia64*)+ hardcode_direct_CXX=no+ hardcode_shlibpath_var_CXX=no+ ;;+ *)+ hardcode_direct_CXX=yes+ hardcode_direct_absolute_CXX=yes+ hardcode_minus_L_CXX=yes # Not in the search PATH,+ # but as the default+ # location of the library.+ ;;+ esac++ case $cc_basename in+ CC*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ aCC*)+ case $host_cpu in+ hppa*64*)+ archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ ;;+ ia64*)+ archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ ;;+ *)+ archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ ;;+ esac+ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ #+ # There doesn't appear to be a way to prevent this compiler from+ # explicitly linking system object files so we need to strip them+ # from the output so that they don't get included in the library+ # dependencies.+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'+ ;;+ *)+ if test yes = "$GXX"; then+ if test no = "$with_gnu_ld"; then+ case $host_cpu in+ hppa*64*)+ archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ ;;+ ia64*)+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ ;;+ *)+ archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ ;;+ esac+ fi+ else+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ fi+ ;;+ esac+ ;;++ interix[3-9]*)+ hardcode_direct_CXX=no+ hardcode_shlibpath_var_CXX=no+ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'+ export_dynamic_flag_spec_CXX='$wl-E'+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.+ # Instead, shared libraries are loaded at an image base (0x10000000 by+ # default) and relocated if they conflict, which is a slow very memory+ # consuming and fragmenting process. To avoid this, we pick a random,+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.+ archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'+ archive_expsym_cmds_CXX='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'+ ;;+ irix5* | irix6*)+ case $cc_basename in+ CC*)+ # SGI C+++ archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'++ # Archives containing C++ object files must be created using+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is+ # necessary to make sure instantiated templates are included+ # in the archive.+ old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'+ ;;+ *)+ if test yes = "$GXX"; then+ if test no = "$with_gnu_ld"; then+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'+ else+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'+ fi+ fi+ link_all_deplibs_CXX=yes+ ;;+ esac+ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'+ hardcode_libdir_separator_CXX=:+ inherit_rpath_CXX=yes+ ;;++ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)+ case $cc_basename in+ KCC*)+ # Kuck and Associates, Inc. (KAI) C++ Compiler++ # KCC will only create a shared library if the output file+ # ends with ".so" (or ".sl" for HP-UX), so rename the library+ # to its proper name (with version) after linking.+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'+ archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'+ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ #+ # There doesn't appear to be a way to prevent this compiler from+ # explicitly linking system object files so we need to strip them+ # from the output so that they don't get included in the library+ # dependencies.+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'+ export_dynamic_flag_spec_CXX='$wl--export-dynamic'++ # Archives containing C++ object files must be created using+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.+ old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'+ ;;+ icpc* | ecpc* )+ # Intel C+++ with_gnu_ld=yes+ # version 8.0 and above of icpc choke on multiply defined symbols+ # if we add $predep_objects and $postdep_objects, however 7.1 and+ # earlier do not add the objects themselves.+ case `$CC -V 2>&1` in+ *"Version 7."*)+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ ;;+ *) # Version 8.0 or newer+ tmp_idyn=+ case $host_cpu in+ ia64*) tmp_idyn=' -i_dynamic';;+ esac+ archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ ;;+ esac+ archive_cmds_need_lc_CXX=no+ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'+ export_dynamic_flag_spec_CXX='$wl--export-dynamic'+ whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive'+ ;;+ pgCC* | pgcpp*)+ # Portland Group C++ compiler+ case `$CC -V` in+ *pgCC\ [1-5].* | *pgcpp\ [1-5].*)+ prelink_cmds_CXX='tpldir=Template.dir~+ rm -rf $tpldir~+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'+ old_archive_cmds_CXX='tpldir=Template.dir~+ rm -rf $tpldir~+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~+ $RANLIB $oldlib'+ archive_cmds_CXX='tpldir=Template.dir~+ rm -rf $tpldir~+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds_CXX='tpldir=Template.dir~+ rm -rf $tpldir~+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ ;;+ *) # Version 6 and above use weak symbols+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'+ ;;+ esac++ hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir'+ export_dynamic_flag_spec_CXX='$wl--export-dynamic'+ whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'+ ;;+ cxx*)+ # Compaq C+++ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'+ archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'++ runpath_var=LD_RUN_PATH+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'+ hardcode_libdir_separator_CXX=:++ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ #+ # There doesn't appear to be a way to prevent this compiler from+ # explicitly linking system object files so we need to strip them+ # from the output so that they don't get included in the library+ # dependencies.+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'+ ;;+ xl* | mpixl* | bgxl*)+ # IBM XL 8.0 on PPC, with GNU ld+ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'+ export_dynamic_flag_spec_CXX='$wl--export-dynamic'+ archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'+ if test yes = "$supports_anon_versioning"; then+ archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~+ echo "local: *; };" >> $output_objdir/$libname.ver~+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'+ fi+ ;;+ *)+ case `$CC -V 2>&1 | $SED 5q` in+ *Sun\ C*)+ # Sun C++ 5.9+ no_undefined_flag_CXX=' -zdefs'+ archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'+ hardcode_libdir_flag_spec_CXX='-R$libdir'+ whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'+ compiler_needs_object_CXX=yes++ # Not sure whether something based on+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1+ # would be better.+ output_verbose_link_cmd='func_echo_all'++ # Archives containing C++ object files must be created using+ # "CC -xar", where "CC" is the Sun C++ compiler. This is+ # necessary to make sure instantiated templates are included+ # in the archive.+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'+ ;;+ esac+ ;;+ esac+ ;;++ lynxos*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;++ m88k*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;++ mvs*)+ case $cc_basename in+ cxx*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ *)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ esac+ ;;++ netbsd*)+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then+ archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'+ wlarc=+ hardcode_libdir_flag_spec_CXX='-R$libdir'+ hardcode_direct_CXX=yes+ hardcode_shlibpath_var_CXX=no+ fi+ # Workaround some broken pre-1.5 toolchains+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'+ ;;++ *nto* | *qnx*)+ ld_shlibs_CXX=yes+ ;;++ openbsd* | bitrig*)+ if test -f /usr/libexec/ld.so; then+ hardcode_direct_CXX=yes+ hardcode_shlibpath_var_CXX=no+ hardcode_direct_absolute_CXX=yes+ archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'+ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then+ archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'+ export_dynamic_flag_spec_CXX='$wl-E'+ whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'+ fi+ output_verbose_link_cmd=func_echo_all+ else+ ld_shlibs_CXX=no+ fi+ ;;++ osf3* | osf4* | osf5*)+ case $cc_basename in+ KCC*)+ # Kuck and Associates, Inc. (KAI) C++ Compiler++ # KCC will only create a shared library if the output file+ # ends with ".so" (or ".sl" for HP-UX), so rename the library+ # to its proper name (with version) after linking.+ archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'++ hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir'+ hardcode_libdir_separator_CXX=:++ # Archives containing C++ object files must be created using+ # the KAI C++ compiler.+ case $host in+ osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;+ *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;+ esac+ ;;+ RCC*)+ # Rational C++ 2.4.1+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ cxx*)+ case $host in+ osf3*)+ allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'+ archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'+ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'+ ;;+ *)+ allow_undefined_flag_CXX=' -expect_unresolved \*'+ archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'+ archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~+ echo "-hidden">> $lib.exp~+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~+ $RM $lib.exp'+ hardcode_libdir_flag_spec_CXX='-rpath $libdir'+ ;;+ esac++ hardcode_libdir_separator_CXX=:++ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ #+ # There doesn't appear to be a way to prevent this compiler from+ # explicitly linking system object files so we need to strip them+ # from the output so that they don't get included in the library+ # dependencies.+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'+ ;;+ *)+ if test yes,no = "$GXX,$with_gnu_ld"; then+ allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*'+ case $host in+ osf3*)+ archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'+ ;;+ *)+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'+ ;;+ esac++ hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir'+ hardcode_libdir_separator_CXX=:++ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'++ else+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ fi+ ;;+ esac+ ;;++ psos*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;++ sunos4*)+ case $cc_basename in+ CC*)+ # Sun C++ 4.x+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ lcc*)+ # Lucid+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ *)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ esac+ ;;++ solaris*)+ case $cc_basename in+ CC* | sunCC*)+ # Sun C++ 4.2, 5.x and Centerline C+++ archive_cmds_need_lc_CXX=yes+ no_undefined_flag_CXX=' -zdefs'+ archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~+ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'++ hardcode_libdir_flag_spec_CXX='-R$libdir'+ hardcode_shlibpath_var_CXX=no+ case $host_os in+ solaris2.[0-5] | solaris2.[0-5].*) ;;+ *)+ # The compiler driver will combine and reorder linker options,+ # but understands '-z linker_flag'.+ # Supported since Solaris 2.6 (maybe 2.5.1?)+ whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'+ ;;+ esac+ link_all_deplibs_CXX=yes++ output_verbose_link_cmd='func_echo_all'++ # Archives containing C++ object files must be created using+ # "CC -xar", where "CC" is the Sun C++ compiler. This is+ # necessary to make sure instantiated templates are included+ # in the archive.+ old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'+ ;;+ gcx*)+ # Green Hills C++ Compiler+ archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'++ # The C++ compiler must be used to create the archive.+ old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'+ ;;+ *)+ # GNU C++ compiler with Solaris linker+ if test yes,no = "$GXX,$with_gnu_ld"; then+ no_undefined_flag_CXX=' $wl-z ${wl}defs'+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then+ archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~+ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'++ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'+ else+ # g++ 2.7 appears to require '-G' NOT '-shared' on this+ # platform.+ archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'+ archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~+ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'++ # Commands to make compiler produce verbose output that lists+ # what "hidden" libraries, object files and flags are used when+ # linking a shared library.+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'+ fi++ hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir'+ case $host_os in+ solaris2.[0-5] | solaris2.[0-5].*) ;;+ *)+ whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'+ ;;+ esac+ fi+ ;;+ esac+ ;;++ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)+ no_undefined_flag_CXX='$wl-z,text'+ archive_cmds_need_lc_CXX=no+ hardcode_shlibpath_var_CXX=no+ runpath_var='LD_RUN_PATH'++ case $cc_basename in+ CC*)+ archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ *)+ archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ esac+ ;;++ sysv5* | sco3.2v5* | sco5v6*)+ # Note: We CANNOT use -z defs as we might desire, because we do not+ # link with -lc, and that would cause any symbols used from libc to+ # always be unresolved, which means just about no library would+ # ever link correctly. If we're not using GNU ld we use -z text+ # though, which does catch some bad symbols but isn't as heavy-handed+ # as -z defs.+ no_undefined_flag_CXX='$wl-z,text'+ allow_undefined_flag_CXX='$wl-z,nodefs'+ archive_cmds_need_lc_CXX=no+ hardcode_shlibpath_var_CXX=no+ hardcode_libdir_flag_spec_CXX='$wl-R,$libdir'+ hardcode_libdir_separator_CXX=':'+ link_all_deplibs_CXX=yes+ export_dynamic_flag_spec_CXX='$wl-Bexport'+ runpath_var='LD_RUN_PATH'++ case $cc_basename in+ CC*)+ archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~+ '"$old_archive_cmds_CXX"+ reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~+ '"$reload_cmds_CXX"+ ;;+ *)+ archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'+ ;;+ esac+ ;;++ tandem*)+ case $cc_basename in+ NCC*)+ # NonStop-UX NCC 3.20+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ *)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ esac+ ;;++ vxworks*)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;++ *)+ # FIXME: insert proper C++ library support+ ld_shlibs_CXX=no+ ;;+ esac++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5+$as_echo "$ld_shlibs_CXX" >&6; }+ test no = "$ld_shlibs_CXX" && can_build_shared=no++ GCC_CXX=$GXX+ LD_CXX=$LD++ ## CAVEAT EMPTOR:+ ## There is no encapsulation within the following macros, do not change+ ## the running order or otherwise move them around unless you know exactly+ ## what you are doing...+ # Dependencies to place before and after the object being linked:+predep_objects_CXX=+postdep_objects_CXX=+predeps_CXX=+postdeps_CXX=+compiler_lib_search_path_CXX=++cat > conftest.$ac_ext <<_LT_EOF+class Foo+{+public:+ Foo (void) { a = 0; }+private:+ int a;+};+_LT_EOF+++_lt_libdeps_save_CFLAGS=$CFLAGS+case "$CC $CFLAGS " in #(+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;+esac++if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ # Parse the compiler output and extract the necessary+ # objects, libraries and library flags.++ # Sentinel used to keep track of whether or not we are before+ # the conftest object file.+ pre_test_object_deps_done=no++ for p in `eval "$output_verbose_link_cmd"`; do+ case $prev$p in++ -L* | -R* | -l*)+ # Some compilers place space between "-{L,R}" and the path.+ # Remove the space.+ if test x-L = "$p" ||+ test x-R = "$p"; then+ prev=$p+ continue+ fi++ # Expand the sysroot to ease extracting the directories later.+ if test -z "$prev"; then+ case $p in+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;+ esac+ fi+ case $p in+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;+ esac+ if test no = "$pre_test_object_deps_done"; then+ case $prev in+ -L | -R)+ # Internal compiler library paths should come after those+ # provided the user. The postdeps already come after the+ # user supplied libs so there is no need to process them.+ if test -z "$compiler_lib_search_path_CXX"; then+ compiler_lib_search_path_CXX=$prev$p+ else+ compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p"+ fi+ ;;+ # The "-l" case would never come before the object being+ # linked, so don't bother handling this case.+ esac+ else+ if test -z "$postdeps_CXX"; then+ postdeps_CXX=$prev$p+ else+ postdeps_CXX="${postdeps_CXX} $prev$p"+ fi+ fi+ prev=+ ;;++ *.lto.$objext) ;; # Ignore GCC LTO objects+ *.$objext)+ # This assumes that the test object file only shows up+ # once in the compiler output.+ if test "$p" = "conftest.$objext"; then+ pre_test_object_deps_done=yes+ continue+ fi++ if test no = "$pre_test_object_deps_done"; then+ if test -z "$predep_objects_CXX"; then+ predep_objects_CXX=$p+ else+ predep_objects_CXX="$predep_objects_CXX $p"+ fi+ else+ if test -z "$postdep_objects_CXX"; then+ postdep_objects_CXX=$p+ else+ postdep_objects_CXX="$postdep_objects_CXX $p"+ fi+ fi+ ;;++ *) ;; # Ignore the rest.++ esac+ done++ # Clean up.+ rm -f a.out a.exe+else+ echo "libtool.m4: error: problem compiling CXX test program"+fi++$RM -f confest.$objext+CFLAGS=$_lt_libdeps_save_CFLAGS++# PORTME: override above test on systems where it is broken+case $host_os in+interix[3-9]*)+ # Interix 3.5 installs completely hosed .la files for C++, so rather than+ # hack all around it, let's just trust "g++" to DTRT.+ predep_objects_CXX=+ postdep_objects_CXX=+ postdeps_CXX=+ ;;+esac+++case " $postdeps_CXX " in+*" -lc "*) archive_cmds_need_lc_CXX=no ;;+esac+ compiler_lib_search_dirs_CXX=+if test -n "${compiler_lib_search_path_CXX}"; then+ compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'`+fi++++++++++++++++++++++++++++++++ lt_prog_compiler_wl_CXX=+lt_prog_compiler_pic_CXX=+lt_prog_compiler_static_CXX=+++ # C++ specific cases for pic, static, wl, etc.+ if test yes = "$GXX"; then+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_static_CXX='-static'++ case $host_os in+ aix*)+ # All AIX code is PIC.+ if test ia64 = "$host_cpu"; then+ # AIX 5 now supports IA64 processor+ lt_prog_compiler_static_CXX='-Bstatic'+ fi+ lt_prog_compiler_pic_CXX='-fPIC'+ ;;++ amigaos*)+ case $host_cpu in+ powerpc)+ # see comment about AmigaOS4 .so support+ lt_prog_compiler_pic_CXX='-fPIC'+ ;;+ m68k)+ # FIXME: we need at least 68020 code to build shared libraries, but+ # adding the '-m68020' flag to GCC prevents building anything better,+ # like '-m68040'.+ lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'+ ;;+ esac+ ;;++ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)+ # PIC is the default for these OSes.+ ;;+ mingw* | cygwin* | os2* | pw32* | cegcc*)+ # This hack is so that the source file can tell whether it is being+ # built for inclusion in a dll (and should export symbols for example).+ # Although the cygwin gcc ignores -fPIC, still need this for old-style+ # (--disable-auto-import) libraries+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'+ case $host_os in+ os2*)+ lt_prog_compiler_static_CXX='$wl-static'+ ;;+ esac+ ;;+ darwin* | rhapsody*)+ # PIC is the default on this platform+ # Common symbols not allowed in MH_DYLIB files+ lt_prog_compiler_pic_CXX='-fno-common'+ ;;+ *djgpp*)+ # DJGPP does not support shared libraries at all+ lt_prog_compiler_pic_CXX=+ ;;+ haiku*)+ # PIC is the default for Haiku.+ # The "-static" flag exists, but is broken.+ lt_prog_compiler_static_CXX=+ ;;+ interix[3-9]*)+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.+ # Instead, we relocate shared libraries at runtime.+ ;;+ sysv4*MP*)+ if test -d /usr/nec; then+ lt_prog_compiler_pic_CXX=-Kconform_pic+ fi+ ;;+ hpux*)+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag+ # sets the default TLS model and affects inlining.+ case $host_cpu in+ hppa*64*)+ ;;+ *)+ lt_prog_compiler_pic_CXX='-fPIC'+ ;;+ esac+ ;;+ *qnx* | *nto*)+ # QNX uses GNU C++, but need to define -shared option too, otherwise+ # it will coredump.+ lt_prog_compiler_pic_CXX='-fPIC -shared'+ ;;+ *)+ lt_prog_compiler_pic_CXX='-fPIC'+ ;;+ esac+ else+ case $host_os in+ aix[4-9]*)+ # All AIX code is PIC.+ if test ia64 = "$host_cpu"; then+ # AIX 5 now supports IA64 processor+ lt_prog_compiler_static_CXX='-Bstatic'+ else+ lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'+ fi+ ;;+ chorus*)+ case $cc_basename in+ cxch68*)+ # Green Hills C++ Compiler+ # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"+ ;;+ esac+ ;;+ mingw* | cygwin* | os2* | pw32* | cegcc*)+ # This hack is so that the source file can tell whether it is being+ # built for inclusion in a dll (and should export symbols for example).+ lt_prog_compiler_pic_CXX='-DDLL_EXPORT'+ ;;+ dgux*)+ case $cc_basename in+ ec++*)+ lt_prog_compiler_pic_CXX='-KPIC'+ ;;+ ghcx*)+ # Green Hills C++ Compiler+ lt_prog_compiler_pic_CXX='-pic'+ ;;+ *)+ ;;+ esac+ ;;+ freebsd* | dragonfly* | midnightbsd*)+ # FreeBSD uses GNU C+++ ;;+ hpux9* | hpux10* | hpux11*)+ case $cc_basename in+ CC*)+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_static_CXX='$wl-a ${wl}archive'+ if test ia64 != "$host_cpu"; then+ lt_prog_compiler_pic_CXX='+Z'+ fi+ ;;+ aCC*)+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_static_CXX='$wl-a ${wl}archive'+ case $host_cpu in+ hppa*64*|ia64*)+ # +Z the default+ ;;+ *)+ lt_prog_compiler_pic_CXX='+Z'+ ;;+ esac+ ;;+ *)+ ;;+ esac+ ;;+ interix*)+ # This is c89, which is MS Visual C++ (no shared libs)+ # Anyone wants to do a port?+ ;;+ irix5* | irix6* | nonstopux*)+ case $cc_basename in+ CC*)+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_static_CXX='-non_shared'+ # CC pic flag -KPIC is the default.+ ;;+ *)+ ;;+ esac+ ;;+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)+ case $cc_basename in+ KCC*)+ # KAI C++ Compiler+ lt_prog_compiler_wl_CXX='--backend -Wl,'+ lt_prog_compiler_pic_CXX='-fPIC'+ ;;+ ecpc* )+ # old Intel C++ for x86_64, which still supported -KPIC.+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_pic_CXX='-KPIC'+ lt_prog_compiler_static_CXX='-static'+ ;;+ icpc* )+ # Intel C++, used to be incompatible with GCC.+ # ICC 10 doesn't accept -KPIC any more.+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_pic_CXX='-fPIC'+ lt_prog_compiler_static_CXX='-static'+ ;;+ pgCC* | pgcpp*)+ # Portland Group C++ compiler+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_pic_CXX='-fpic'+ lt_prog_compiler_static_CXX='-Bstatic'+ ;;+ cxx*)+ # Compaq C+++ # Make sure the PIC flag is empty. It appears that all Alpha+ # Linux and Compaq Tru64 Unix objects are PIC.+ lt_prog_compiler_pic_CXX=+ lt_prog_compiler_static_CXX='-non_shared'+ ;;+ xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)+ # IBM XL 8.0, 9.0 on PPC and BlueGene+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_pic_CXX='-qpic'+ lt_prog_compiler_static_CXX='-qstaticlink'+ ;;+ *)+ case `$CC -V 2>&1 | $SED 5q` in+ *Sun\ C*)+ # Sun C++ 5.9+ lt_prog_compiler_pic_CXX='-KPIC'+ lt_prog_compiler_static_CXX='-Bstatic'+ lt_prog_compiler_wl_CXX='-Qoption ld '+ ;;+ esac+ ;;+ esac+ ;;+ lynxos*)+ ;;+ m88k*)+ ;;+ mvs*)+ case $cc_basename in+ cxx*)+ lt_prog_compiler_pic_CXX='-W c,exportall'+ ;;+ *)+ ;;+ esac+ ;;+ netbsd* | netbsdelf*-gnu)+ ;;+ *qnx* | *nto*)+ # QNX uses GNU C++, but need to define -shared option too, otherwise+ # it will coredump.+ lt_prog_compiler_pic_CXX='-fPIC -shared'+ ;;+ osf3* | osf4* | osf5*)+ case $cc_basename in+ KCC*)+ lt_prog_compiler_wl_CXX='--backend -Wl,'+ ;;+ RCC*)+ # Rational C++ 2.4.1+ lt_prog_compiler_pic_CXX='-pic'+ ;;+ cxx*)+ # Digital/Compaq C+++ lt_prog_compiler_wl_CXX='-Wl,'+ # Make sure the PIC flag is empty. It appears that all Alpha+ # Linux and Compaq Tru64 Unix objects are PIC.+ lt_prog_compiler_pic_CXX=+ lt_prog_compiler_static_CXX='-non_shared'+ ;;+ *)+ ;;+ esac+ ;;+ psos*)+ ;;+ solaris*)+ case $cc_basename in+ CC* | sunCC*)+ # Sun C++ 4.2, 5.x and Centerline C+++ lt_prog_compiler_pic_CXX='-KPIC'+ lt_prog_compiler_static_CXX='-Bstatic'+ lt_prog_compiler_wl_CXX='-Qoption ld '+ ;;+ gcx*)+ # Green Hills C++ Compiler+ lt_prog_compiler_pic_CXX='-PIC'+ ;;+ *)+ ;;+ esac+ ;;+ sunos4*)+ case $cc_basename in+ CC*)+ # Sun C++ 4.x+ lt_prog_compiler_pic_CXX='-pic'+ lt_prog_compiler_static_CXX='-Bstatic'+ ;;+ lcc*)+ # Lucid+ lt_prog_compiler_pic_CXX='-pic'+ ;;+ *)+ ;;+ esac+ ;;+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)+ case $cc_basename in+ CC*)+ lt_prog_compiler_wl_CXX='-Wl,'+ lt_prog_compiler_pic_CXX='-KPIC'+ lt_prog_compiler_static_CXX='-Bstatic'+ ;;+ esac+ ;;+ tandem*)+ case $cc_basename in+ NCC*)+ # NonStop-UX NCC 3.20+ lt_prog_compiler_pic_CXX='-KPIC'+ ;;+ *)+ ;;+ esac+ ;;+ vxworks*)+ ;;+ *)+ lt_prog_compiler_can_build_shared_CXX=no+ ;;+ esac+ fi++case $host_os in+ # For platforms that do not support PIC, -DPIC is meaningless:+ *djgpp*)+ lt_prog_compiler_pic_CXX=+ ;;+ *)+ lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"+ ;;+esac++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }+if ${lt_cv_prog_compiler_pic_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5+$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }+lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX++#+# Check to make sure the PIC flag actually works.+#+if test -n "$lt_prog_compiler_pic_CXX"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }+if ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_pic_works_CXX=no+ ac_outfile=conftest.$ac_objext+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext+ lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ # The option is referenced via a variable to avoid confusing sed.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>conftest.err)+ ac_status=$?+ cat conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s "$ac_outfile"; then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings other than the usual output.+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_pic_works_CXX=yes+ fi+ fi+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }++if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then+ case $lt_prog_compiler_pic_CXX in+ "" | " "*) ;;+ *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;+ esac+else+ lt_prog_compiler_pic_CXX=+ lt_prog_compiler_can_build_shared_CXX=no+fi++fi++++++#+# Check to make sure the static flag actually works.+#+wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }+if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_static_works_CXX=no+ save_LDFLAGS=$LDFLAGS+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"+ echo "$lt_simple_link_test_code" > conftest.$ac_ext+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then+ # The linker can only warn and ignore the option if not recognized+ # So say no if there are warnings+ if test -s conftest.err; then+ # Append any errors to the config.log.+ cat conftest.err 1>&5+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2+ if diff conftest.exp conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_static_works_CXX=yes+ fi+ else+ lt_cv_prog_compiler_static_works_CXX=yes+ fi+ fi+ $RM -r conftest*+ LDFLAGS=$save_LDFLAGS++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }++if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then+ :+else+ lt_prog_compiler_static_CXX=+fi+++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_c_o_CXX=no+ $RM -r conftest 2>/dev/null+ mkdir conftest+ cd conftest+ mkdir out+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext++ lt_compiler_flag="-o out/conftest2.$ac_objext"+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>out/conftest.err)+ ac_status=$?+ cat out/conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s out/conftest2.$ac_objext+ then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_c_o_CXX=yes+ fi+ fi+ chmod u+w . 2>&5+ $RM conftest*+ # SGI C++ compiler will create directory out/ii_files/ for+ # template instantiation+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files+ $RM out/* && rmdir out+ cd ..+ $RM -r conftest+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }+if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_prog_compiler_c_o_CXX=no+ $RM -r conftest 2>/dev/null+ mkdir conftest+ cd conftest+ mkdir out+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext++ lt_compiler_flag="-o out/conftest2.$ac_objext"+ # Insert the option either (1) after the last *FLAGS variable, or+ # (2) before a word containing "conftest.", or (3) at the end.+ # Note that $ac_compile itself does not contain backslashes and begins+ # with a dollar sign (not a hyphen), so the echo should work correctly.+ lt_compile=`echo "$ac_compile" | $SED \+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \+ -e 's:$: $lt_compiler_flag:'`+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)+ (eval "$lt_compile" 2>out/conftest.err)+ ac_status=$?+ cat out/conftest.err >&5+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ if (exit $ac_status) && test -s out/conftest2.$ac_objext+ then+ # The compiler can only warn and ignore the option if not recognized+ # So say no if there are warnings+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then+ lt_cv_prog_compiler_c_o_CXX=yes+ fi+ fi+ chmod u+w . 2>&5+ $RM conftest*+ # SGI C++ compiler will create directory out/ii_files/ for+ # template instantiation+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files+ $RM out/* && rmdir out+ cd ..+ $RM -r conftest+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }+++++hard_links=nottested+if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then+ # do not overwrite the value of need_locks provided by the user+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5+$as_echo_n "checking if we can lock with hard links... " >&6; }+ hard_links=yes+ $RM conftest*+ ln conftest.a conftest.b 2>/dev/null && hard_links=no+ touch conftest.a+ ln conftest.a conftest.b 2>&5 || hard_links=no+ ln conftest.a conftest.b 2>/dev/null && hard_links=no+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5+$as_echo "$hard_links" >&6; }+ if test no = "$hard_links"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5+$as_echo "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}+ need_locks=warn+ fi+else+ need_locks=no+fi++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }++ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'+ exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'+ case $host_os in+ aix[4-9]*)+ # If we're using GNU nm, then we don't want the "-C" option.+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.+ # Without the "-l" option, or with the "-B" option, AIX nm treats+ # weak defined symbols like other global defined symbols, whereas+ # GNU nm marks them as "W".+ # While the 'weak' keyword is ignored in the Export File, we need+ # it in the Import File for the 'aix-soname' feature, so we have+ # to replace the "-B" option with "-P" for AIX nm.+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then+ export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'+ else+ export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'+ fi+ ;;+ pw32*)+ export_symbols_cmds_CXX=$ltdll_cmds+ ;;+ cygwin* | mingw* | cegcc*)+ case $cc_basename in+ cl* | icl*)+ exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'+ ;;+ *)+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'+ exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'+ ;;+ esac+ ;;+ linux* | k*bsd*-gnu | gnu*)+ link_all_deplibs_CXX=no+ ;;+ *)+ export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'+ ;;+ esac++{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5+$as_echo "$ld_shlibs_CXX" >&6; }+test no = "$ld_shlibs_CXX" && can_build_shared=no++with_gnu_ld_CXX=$with_gnu_ld+++++++#+# Do we need to explicitly link libc?+#+case "x$archive_cmds_need_lc_CXX" in+x|xyes)+ # Assume -lc should be added+ archive_cmds_need_lc_CXX=yes++ if test yes,yes = "$GCC,$enable_shared"; then+ case $archive_cmds_CXX in+ *'~'*)+ # FIXME: we may have to deal with multi-command sequences.+ ;;+ '$CC '*)+ # Test whether the compiler implicitly links with -lc since on some+ # systems, -lgcc has to come before -lc. If gcc already passes -lc+ # to ld, don't add -lc before -lgcc.+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }+if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :+ $as_echo_n "(cached) " >&6+else+ $RM conftest*+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext++ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } 2>conftest.err; then+ soname=conftest+ lib=conftest+ libobjs=conftest.$ac_objext+ deplibs=+ wl=$lt_prog_compiler_wl_CXX+ pic_flag=$lt_prog_compiler_pic_CXX+ compiler_flags=-v+ linker_flags=-v+ verstring=+ output_objdir=.+ libname=conftest+ lt_save_allow_undefined_flag=$allow_undefined_flag_CXX+ allow_undefined_flag_CXX=+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5+ (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ then+ lt_cv_archive_cmds_need_lc_CXX=no+ else+ lt_cv_archive_cmds_need_lc_CXX=yes+ fi+ allow_undefined_flag_CXX=$lt_save_allow_undefined_flag+ else+ cat conftest.err 1>&5+ fi+ $RM conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5+$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }+ archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX+ ;;+ esac+ fi+ ;;+esac+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5+$as_echo_n "checking dynamic linker characteristics... " >&6; }++library_names_spec=+libname_spec='lib$name'+soname_spec=+shrext_cmds=.so+postinstall_cmds=+postuninstall_cmds=+finish_cmds=+finish_eval=+shlibpath_var=+shlibpath_overrides_runpath=unknown+version_type=none+dynamic_linker="$host_os ld.so"+sys_lib_dlsearch_path_spec="/lib /usr/lib"+need_lib_prefix=unknown+hardcode_into_libs=no++# when you set need_version to no, make sure it does not cause -set_version+# flags to be left without arguments+need_version=unknown++++case $host_os in+aix3*)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'+ shlibpath_var=LIBPATH++ # AIX 3 has no versioning support, so we append a major version to the name.+ soname_spec='$libname$release$shared_ext$major'+ ;;++aix[4-9]*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ hardcode_into_libs=yes+ if test ia64 = "$host_cpu"; then+ # AIX 5 supports IA64+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ else+ # With GCC up to 2.95.x, collect2 would create an import file+ # for dependence libraries. The import file would start with+ # the line '#! .'. This would cause the generated library to+ # depend on '.', always an invalid library. This was fixed in+ # development snapshots of GCC prior to 3.0.+ case $host_os in+ aix4 | aix4.[01] | aix4.[01].*)+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'+ echo ' yes '+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then+ :+ else+ can_build_shared=no+ fi+ ;;+ esac+ # Using Import Files as archive members, it is possible to support+ # filename-based versioning of shared library archives on AIX. While+ # this would work for both with and without runtime linking, it will+ # prevent static linking of such archives. So we do filename-based+ # shared library versioning with .so extension only, which is used+ # when both runtime linking and shared linking is enabled.+ # Unfortunately, runtime linking may impact performance, so we do+ # not want this to be the default eventually. Also, we use the+ # versioned .so libs for executables only if there is the -brtl+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.+ # To allow for filename-based versioning support, we need to create+ # libNAME.so.V as an archive file, containing:+ # *) an Import File, referring to the versioned filename of the+ # archive as well as the shared archive member, telling the+ # bitwidth (32 or 64) of that shared object, and providing the+ # list of exported symbols of that shared object, eventually+ # decorated with the 'weak' keyword+ # *) the shared object with the F_LOADONLY flag set, to really avoid+ # it being seen by the linker.+ # At run time we better use the real file rather than another symlink,+ # but for link time we create the symlink libNAME.so -> libNAME.so.V++ case $with_aix_soname,$aix_use_runtimelinking in+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct+ # soname into executable. Probably we can add versioning support to+ # collect2, so additional links can be useful in future.+ aix,yes) # traditional libtool+ dynamic_linker='AIX unversionable lib.so'+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so+ # instead of lib<name>.a to let people know that these are not+ # typical AIX shared libraries.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ ;;+ aix,no) # traditional AIX only+ dynamic_linker='AIX lib.a(lib.so.V)'+ # We preserve .a as extension for shared libraries through AIX4.2+ # and later when we are not doing run time linking.+ library_names_spec='$libname$release.a $libname.a'+ soname_spec='$libname$release$shared_ext$major'+ ;;+ svr4,*) # full svr4 only+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'+ # We do not specify a path in Import Files, so LIBPATH fires.+ shlibpath_overrides_runpath=yes+ ;;+ *,yes) # both, prefer svr4+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'+ # unpreferred sharedlib libNAME.a needs extra handling+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'+ # We do not specify a path in Import Files, so LIBPATH fires.+ shlibpath_overrides_runpath=yes+ ;;+ *,no) # both, prefer aix+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"+ library_names_spec='$libname$release.a $libname.a'+ soname_spec='$libname$release$shared_ext$major'+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'+ ;;+ esac+ shlibpath_var=LIBPATH+ fi+ ;;++amigaos*)+ case $host_cpu in+ powerpc)+ # Since July 2007 AmigaOS4 officially supports .so libraries.+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ ;;+ m68k)+ library_names_spec='$libname.ixlibrary $libname.a'+ # Create ${libname}_ixlibrary.a entries in /sys/libs.+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'+ ;;+ esac+ ;;++beos*)+ library_names_spec='$libname$shared_ext'+ dynamic_linker="$host_os ld.so"+ shlibpath_var=LIBRARY_PATH+ ;;++bsdi[45]*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"+ # the default ld.so.conf also contains /usr/contrib/lib and+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow+ # libtool to hard-code these into programs+ ;;++cygwin* | mingw* | pw32* | cegcc*)+ version_type=windows+ shrext_cmds=.dll+ need_version=no+ need_lib_prefix=no++ case $GCC,$cc_basename in+ yes,*)+ # gcc+ library_names_spec='$libname.dll.a'+ # DLL is installed to $(libdir)/../bin by postinstall_cmds+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname~+ chmod a+x \$dldir/$dlname~+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;+ fi'+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~+ dlpath=$dir/\$dldll~+ $RM \$dlpath'+ shlibpath_overrides_runpath=yes++ case $host_os in+ cygwin*)+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'+ soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'++ ;;+ mingw* | cegcc*)+ # MinGW DLLs use traditional 'lib' prefix+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'+ ;;+ pw32*)+ # pw32 DLLs use 'pw' prefix rather than 'lib'+ library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'+ ;;+ esac+ dynamic_linker='Win32 ld.exe'+ ;;++ *,cl* | *,icl*)+ # Native MSVC or ICC+ libname_spec='$name'+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'+ library_names_spec='$libname.dll.lib'++ case $build_os in+ mingw*)+ sys_lib_search_path_spec=+ lt_save_ifs=$IFS+ IFS=';'+ for lt_path in $LIB+ do+ IFS=$lt_save_ifs+ # Let DOS variable expansion print the short 8.3 style file name.+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"+ done+ IFS=$lt_save_ifs+ # Convert to MSYS style.+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`+ ;;+ cygwin*)+ # Convert to unix form, then to dos form, then back to unix form+ # but this time dos style (no spaces!) so that the unix form looks+ # like /cygdrive/c/PROGRA~1:/cygdr...+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`+ ;;+ *)+ sys_lib_search_path_spec=$LIB+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then+ # It is most probably a Windows format PATH.+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`+ else+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`+ fi+ # FIXME: find the short name or the path components, as spaces are+ # common. (e.g. "Program Files" -> "PROGRA~1")+ ;;+ esac++ # DLL is installed to $(libdir)/../bin by postinstall_cmds+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname'+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~+ dlpath=$dir/\$dldll~+ $RM \$dlpath'+ shlibpath_overrides_runpath=yes+ dynamic_linker='Win32 link.exe'+ ;;++ *)+ # Assume MSVC and ICC wrapper+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'+ dynamic_linker='Win32 ld.exe'+ ;;+ esac+ # FIXME: first we should search . and the directory the executable is in+ shlibpath_var=PATH+ ;;++darwin* | rhapsody*)+ dynamic_linker="$host_os dyld"+ version_type=darwin+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'+ soname_spec='$libname$release$major$shared_ext'+ shlibpath_overrides_runpath=yes+ shlibpath_var=DYLD_LIBRARY_PATH+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'++ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'+ ;;++dgux*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ ;;++freebsd* | dragonfly* | midnightbsd*)+ # DragonFly does not have aout. When/if they implement a new+ # versioning mechanism, adjust this.+ if test -x /usr/bin/objformat; then+ objformat=`/usr/bin/objformat`+ else+ case $host_os in+ freebsd[23].*) objformat=aout ;;+ *) objformat=elf ;;+ esac+ fi+ version_type=freebsd-$objformat+ case $version_type in+ freebsd-elf*)+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ need_version=no+ need_lib_prefix=no+ ;;+ freebsd-*)+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ need_version=yes+ ;;+ esac+ shlibpath_var=LD_LIBRARY_PATH+ case $host_os in+ freebsd2.*)+ shlibpath_overrides_runpath=yes+ ;;+ freebsd3.[01]* | freebsdelf3.[01]*)+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ ;;+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ ;;+ *) # from 4.6 on, and DragonFly+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ ;;+ esac+ ;;++haiku*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ dynamic_linker="$host_os runtime_loader"+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LIBRARY_PATH+ shlibpath_overrides_runpath=no+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'+ hardcode_into_libs=yes+ ;;++hpux9* | hpux10* | hpux11*)+ # Give a soname corresponding to the major version so that dld.sl refuses to+ # link against other versions.+ version_type=sunos+ need_lib_prefix=no+ need_version=no+ case $host_cpu in+ ia64*)+ shrext_cmds='.so'+ hardcode_into_libs=yes+ dynamic_linker="$host_os dld.so"+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ if test 32 = "$HPUX_IA64_MODE"; then+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32+ else+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64+ fi+ ;;+ hppa*64*)+ shrext_cmds='.sl'+ hardcode_into_libs=yes+ dynamic_linker="$host_os dld.sl"+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec+ ;;+ *)+ shrext_cmds='.sl'+ dynamic_linker="$host_os dld.sl"+ shlibpath_var=SHLIB_PATH+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ ;;+ esac+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...+ postinstall_cmds='chmod 555 $lib'+ # or fails outright, so override atomically:+ install_override_mode=555+ ;;++interix[3-9]*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ ;;++irix5* | irix6* | nonstopux*)+ case $host_os in+ nonstopux*) version_type=nonstopux ;;+ *)+ if test yes = "$lt_cv_prog_gnu_ld"; then+ version_type=linux # correct to gnu/linux during the next big refactor+ else+ version_type=irix+ fi ;;+ esac+ need_lib_prefix=no+ need_version=no+ soname_spec='$libname$release$shared_ext$major'+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'+ case $host_os in+ irix5* | nonstopux*)+ libsuff= shlibsuff=+ ;;+ *)+ case $LD in # libtool.m4 will add one of these switches to LD+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")+ libsuff= shlibsuff= libmagic=32-bit;;+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")+ libsuff=32 shlibsuff=N32 libmagic=N32;;+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")+ libsuff=64 shlibsuff=64 libmagic=64-bit;;+ *) libsuff= shlibsuff= libmagic=never-match;;+ esac+ ;;+ esac+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH+ shlibpath_overrides_runpath=no+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"+ hardcode_into_libs=yes+ ;;++# No shared lib support for Linux oldld, aout, or coff.+linux*oldld* | linux*aout* | linux*coff*)+ dynamic_linker=no+ ;;++linux*android*)+ version_type=none # Android doesn't support versioned libraries.+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext'+ soname_spec='$libname$release$shared_ext'+ finish_cmds=+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes++ # This implies no fast_install, which is unacceptable.+ # Some rework will be needed to allow for fast_install+ # before this can be enabled.+ hardcode_into_libs=yes++ dynamic_linker='Android linker'+ # Don't embed -rpath directories since the linker doesn't support them.+ hardcode_libdir_flag_spec_CXX='-L$libdir'+ ;;++# This must be glibc/ELF.+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no++ # Some binutils ld are patched to set DT_RUNPATH+ if ${lt_cv_shlibpath_overrides_runpath+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_shlibpath_overrides_runpath=no+ save_LDFLAGS=$LDFLAGS+ save_libdir=$libdir+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_cxx_try_link "$LINENO"; then :+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :+ lt_cv_shlibpath_overrides_runpath=yes+fi+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ LDFLAGS=$save_LDFLAGS+ libdir=$save_libdir++fi++ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath++ # This implies no fast_install, which is unacceptable.+ # Some rework will be needed to allow for fast_install+ # before this can be enabled.+ hardcode_into_libs=yes++ # Ideally, we could use ldconfig to report *all* directores which are+ # searched for libraries, however this is still not possible. Aside from not+ # being certain /sbin/ldconfig is available, command+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,+ # even though it is searched at run-time. Try to do the best guess by+ # appending ld.so.conf contents (and includes) to the search path.+ if test -f /etc/ld.so.conf; then+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"+ fi++ # We used to test for /lib/ld.so.1 and disable shared libraries on+ # powerpc, because MkLinux only supported shared libraries with the+ # GNU dynamic linker. Since this was broken with cross compilers,+ # most powerpc-linux boxes support dynamic linking these days and+ # people can always --disable-shared, the test was removed, and we+ # assume the GNU/Linux dynamic linker is in use.+ dynamic_linker='GNU/Linux ld.so'+ ;;++netbsdelf*-gnu)+ version_type=linux+ need_lib_prefix=no+ need_version=no+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'+ soname_spec='${libname}${release}${shared_ext}$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ dynamic_linker='NetBSD ld.elf_so'+ ;;++netbsd*)+ version_type=sunos+ need_lib_prefix=no+ need_version=no+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'+ dynamic_linker='NetBSD (a.out) ld.so'+ else+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ dynamic_linker='NetBSD ld.elf_so'+ fi+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ ;;++newsos6)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ ;;++*nto* | *qnx*)+ version_type=qnx+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ dynamic_linker='ldqnx.so'+ ;;++openbsd* | bitrig*)+ version_type=sunos+ sys_lib_dlsearch_path_spec=/usr/lib+ need_lib_prefix=no+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then+ need_version=no+ else+ need_version=yes+ fi+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ ;;++os2*)+ libname_spec='$name'+ version_type=windows+ shrext_cmds=.dll+ need_version=no+ need_lib_prefix=no+ # OS/2 can only load a DLL with a base name of 8 characters or less.+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";+ v=$($ECHO $release$versuffix | tr -d .-);+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);+ $ECHO $n$v`$shared_ext'+ library_names_spec='${libname}_dll.$libext'+ dynamic_linker='OS/2 ld.exe'+ shlibpath_var=BEGINLIBPATH+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname~+ chmod a+x \$dldir/$dlname~+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;+ fi'+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~+ dlpath=$dir/\$dldll~+ $RM \$dlpath'+ ;;++osf3* | osf4* | osf5*)+ version_type=osf+ need_lib_prefix=no+ need_version=no+ soname_spec='$libname$release$shared_ext$major'+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec+ ;;++rdos*)+ dynamic_linker=no+ ;;++solaris*)+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ # ldd complains unless libraries are executable+ postinstall_cmds='chmod +x $lib'+ ;;++sunos4*)+ version_type=sunos+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ if test yes = "$with_gnu_ld"; then+ need_lib_prefix=no+ fi+ need_version=yes+ ;;++sysv4 | sysv4.3*)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ case $host_vendor in+ sni)+ shlibpath_overrides_runpath=no+ need_lib_prefix=no+ runpath_var=LD_RUN_PATH+ ;;+ siemens)+ need_lib_prefix=no+ ;;+ motorola)+ need_lib_prefix=no+ need_version=no+ shlibpath_overrides_runpath=no+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'+ ;;+ esac+ ;;++sysv4*MP*)+ if test -d /usr/nec; then+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'+ soname_spec='$libname$shared_ext.$major'+ shlibpath_var=LD_LIBRARY_PATH+ fi+ ;;++sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)+ version_type=sco+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=yes+ hardcode_into_libs=yes+ if test yes = "$with_gnu_ld"; then+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'+ else+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'+ case $host_os in+ sco3.2v5*)+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"+ ;;+ esac+ fi+ sys_lib_dlsearch_path_spec='/usr/lib'+ ;;++tpf*)+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.+ version_type=linux # correct to gnu/linux during the next big refactor+ need_lib_prefix=no+ need_version=no+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ shlibpath_var=LD_LIBRARY_PATH+ shlibpath_overrides_runpath=no+ hardcode_into_libs=yes+ ;;++uts4*)+ version_type=linux # correct to gnu/linux during the next big refactor+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'+ soname_spec='$libname$release$shared_ext$major'+ shlibpath_var=LD_LIBRARY_PATH+ ;;++*)+ dynamic_linker=no+ ;;+esac+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5+$as_echo "$dynamic_linker" >&6; }+test no = "$dynamic_linker" && can_build_shared=no++variables_saved_for_relink="PATH $shlibpath_var $runpath_var"+if test yes = "$GCC"; then+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"+fi++if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec+fi++if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec+fi++# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec++# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"++# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH+++++++++++++++++++++++++++++++++++++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }+hardcode_action_CXX=+if test -n "$hardcode_libdir_flag_spec_CXX" ||+ test -n "$runpath_var_CXX" ||+ test yes = "$hardcode_automatic_CXX"; then++ # We can hardcode non-existent directories.+ if test no != "$hardcode_direct_CXX" &&+ # If the only mechanism to avoid hardcoding is shlibpath_var, we+ # have to relink, otherwise we might link with an installed library+ # when we should be linking with a yet-to-be-installed one+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" &&+ test no != "$hardcode_minus_L_CXX"; then+ # Linking always hardcodes the temporary library directory.+ hardcode_action_CXX=relink+ else+ # We can link without hardcoding, and we can hardcode nonexisting dirs.+ hardcode_action_CXX=immediate+ fi+else+ # We cannot hardcode anything, or else we can only hardcode existing+ # directories.+ hardcode_action_CXX=unsupported+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5+$as_echo "$hardcode_action_CXX" >&6; }++if test relink = "$hardcode_action_CXX" ||+ test yes = "$inherit_rpath_CXX"; then+ # Fast installation is not supported+ enable_fast_install=no+elif test yes = "$shlibpath_overrides_runpath" ||+ test no = "$enable_shared"; then+ # Fast installation is not necessary+ enable_fast_install=needless+fi++++++++ fi # test -n "$compiler"++ CC=$lt_save_CC+ CFLAGS=$lt_save_CFLAGS+ LDCXX=$LD+ LD=$lt_save_LD+ GCC=$lt_save_GCC+ with_gnu_ld=$lt_save_with_gnu_ld+ lt_cv_path_LDCXX=$lt_cv_path_LD+ lt_cv_path_LD=$lt_save_path_LD+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld+fi # test yes != "$_lt_caught_CXX_error"++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++++++++++++++ ac_config_commands="$ac_config_commands libtool"+++++# Only expand once:+++++# Test for 64-bit build.+# The cast to long int works around a bug in the HP C Compiler+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.+# This bug is HP SR number 8606223364.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5+$as_echo_n "checking size of size_t... " >&6; }+if ${ac_cv_sizeof_size_t+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t" "$ac_includes_default"; then :++else+ if test "$ac_cv_type_size_t" = yes; then+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "cannot compute sizeof (size_t)+See \`config.log' for more details" "$LINENO" 5; }+ else+ ac_cv_sizeof_size_t=0+ fi+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5+$as_echo "$ac_cv_sizeof_size_t" >&6; }++++cat >>confdefs.h <<_ACEOF+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t+_ACEOF++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler vendor" >&5+$as_echo_n "checking for C compiler vendor... " >&6; }+if ${ax_cv_c_compiler_vendor+:} false; then :+ $as_echo_n "(cached) " >&6+else++ vendors="+ intel: __ICC,__ECC,__INTEL_COMPILER+ ibm: __xlc__,__xlC__,__IBMC__,__IBMCPP__,__ibmxl__+ pathscale: __PATHCC__,__PATHSCALE__+ clang: __clang__+ cray: _CRAYC+ fujitsu: __FUJITSU+ sdcc: SDCC,__SDCC+ sx: _SX+ nvhpc: __NVCOMPILER+ portland: __PGI+ gnu: __GNUC__+ sun: __SUNPRO_C,__SUNPRO_CC,__SUNPRO_F90,__SUNPRO_F95+ hp: __HP_cc,__HP_aCC+ dec: __DECC,__DECCXX,__DECC_VER,__DECCXX_VER+ borland: __BORLANDC__,__CODEGEARC__,__TURBOC__+ comeau: __COMO__+ kai: __KCC+ lcc: __LCC__+ sgi: __sgi,sgi+ microsoft: _MSC_VER+ metrowerks: __MWERKS__+ watcom: __WATCOMC__+ tcc: __TINYC__+ unknown: UNKNOWN+ "+ for ventest in $vendors; do+ case $ventest in+ *:)+ vendor=$ventest+ continue+ ;;+ *)+ vencpp="defined("`echo $ventest | sed 's/,/) || defined(/g'`")"+ ;;+ esac++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++#if !($vencpp)+ thisisanerror;+#endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ break+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ done++ ax_cv_c_compiler_vendor=`echo $vendor | cut -d: -f1`++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_c_compiler_vendor" >&5+$as_echo "$ax_cv_c_compiler_vendor" >&6; }+++++++# Check whether --enable-portable-binary was given.+if test "${enable_portable_binary+set}" = set; then :+ enableval=$enable_portable_binary; acx_maxopt_portable=$enableval+else+ acx_maxopt_portable=no+fi+++# Try to determine "good" native compiler flags if none specified via CFLAGS+if test "x$ac_test_CFLAGS" = "x"; then+ case $ax_cv_c_compiler_vendor in+ dec) CFLAGS="$CFLAGS -newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host"+ if test "x$acx_maxopt_portable" = xno; then+ CFLAGS="$CFLAGS -arch host"+ fi;;++ sun) CFLAGS="$CFLAGS -native -fast -xO5 -dalign"+ if test "x$acx_maxopt_portable" = xyes; then+ CFLAGS="$CFLAGS -xarch=generic"+ fi;;++ hp) CFLAGS="$CFLAGS +Oall +Optrs_ansi +DSnative"+ if test "x$acx_maxopt_portable" = xyes; then+ CFLAGS="$CFLAGS +DAportable"+ fi;;++ ibm) if test "x$acx_maxopt_portable" = xno; then+ xlc_opt="-qarch=auto -qtune=auto"+ else+ xlc_opt="-qtune=auto"+ fi+ as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$xlc_opt" | $as_tr_sh`+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $xlc_opt" >&5+$as_echo_n "checking whether the C compiler accepts $xlc_opt... " >&6; }+if eval \${$as_CACHEVAR+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS $xlc_opt $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ eval "$as_CACHEVAR=yes"+else+ eval "$as_CACHEVAR=no"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+eval ac_res=\$$as_CACHEVAR+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :+ CFLAGS="$CFLAGS -O3 -qansialias -w $xlc_opt"+else+ CFLAGS="$CFLAGS -O3 -qansialias -w"+ echo "******************************************************"+ echo "* You seem to have the IBM C compiler. It is *"+ echo "* recommended for best performance that you use: *"+ echo "* *"+ echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *"+ echo "* ^^^ ^^^ *"+ echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *"+ echo "* CPU you have. (Set the CFLAGS environment var. *"+ echo "* and re-run configure.) For more info, man cc. *"+ echo "******************************************************"+fi++ ;;++ intel) CFLAGS="$CFLAGS -O3 -ansi_alias"+ if test "x$acx_maxopt_portable" = xno; then+ icc_archflag=unknown+ icc_flags=""+ case $host_cpu in+ i686*|x86_64*)+ # icc accepts gcc assembly syntax, so these should work:++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5+$as_echo_n "checking for x86 cpuid 0 output... " >&6; }+if ${ax_cv_gcc_x86_cpuid_0+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test "$cross_compiling" = yes; then :+ ax_cv_gcc_x86_cpuid_0=unknown+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdio.h>+int+main ()+{++ int op = 0, level = 0, eax, ebx, ecx, edx;+ FILE *f;+ __asm__ __volatile__ ("xchg %%ebx, %1\n"+ "cpuid\n"+ "xchg %%ebx, %1\n"+ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)+ : "a" (op), "2" (level));++ f = fopen("conftest_cpuid", "w"); if (!f) return 1;+ fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);+ fclose(f);+ return 0;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid+else+ ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5+$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5+$as_echo_n "checking for x86 cpuid 1 output... " >&6; }+if ${ax_cv_gcc_x86_cpuid_1+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test "$cross_compiling" = yes; then :+ ax_cv_gcc_x86_cpuid_1=unknown+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdio.h>+int+main ()+{++ int op = 1, level = 0, eax, ebx, ecx, edx;+ FILE *f;+ __asm__ __volatile__ ("xchg %%ebx, %1\n"+ "cpuid\n"+ "xchg %%ebx, %1\n"+ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)+ : "a" (op), "2" (level));++ f = fopen("conftest_cpuid", "w"); if (!f) return 1;+ fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);+ fclose(f);+ return 0;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid+else+ ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5+$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++ case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG+ *:756e6547:6c65746e:49656e69) # Intel+ case $ax_cv_gcc_x86_cpuid_1 in+ *0?6[78ab]?:*:*:*|?6[78ab]?:*:*:*|6[78ab]?:*:*:*) icc_flags="-xK" ;;+ *0?6[9d]?:*:*:*|?6[9d]?:*:*:*|6[9d]?:*:*:*|*1?65?:*:*:*) icc_flags="-xSSE2 -xB -xK" ;;+ *0?6e?:*:*:*|?6e?:*:*:*|6e?:*:*:*) icc_flags="-xSSE3 -xP -xO -xB -xK" ;;+ *0?6f?:*:*:*|?6f?:*:*:*|6f?:*:*:*|*1?66?:*:*:*) icc_flags="-xSSSE3 -xT -xB -xK" ;;+ *1?6[7d]?:*:*:*) icc_flags="-xSSE4.1 -xS -xT -xB -xK" ;;+ *1?6[aef]?:*:*:*|*2?6[5cef]?:*:*:*) icc_flags="-xSSE4.2 -xS -xT -xB -xK" ;;+ *2?6[ad]?:*:*:*) icc_flags="-xAVX -SSE4.2 -xS -xT -xB -xK" ;;+ *3?6[ae]?:*:*:*) icc_flags="-xCORE-AVX-I -xAVX -SSE4.2 -xS -xT -xB -xK" ;;+ *3?6[cf]?:*:*:*|*4?6[56]?:*:*:*) icc_flags="-xCORE-AVX2 -xCORE-AVX-I -xAVX -SSE4.2 -xS -xT -xB -xK" ;;+ *000?f[346]?:*:*:*|?f[346]?:*:*:*|f[346]?:*:*:*) icc_flags="-xSSE3 -xP -xO -xN -xW -xK" ;;+ *00??f??:*:*:*|??f??:*:*:*|?f??:*:*:*|f??:*:*:*) icc_flags="-xSSE2 -xN -xW -xK" ;;+ esac ;;+ esac ;;+ esac+ if test "x$icc_flags" != x; then+ for flag in $icc_flags; do+ as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$flag" | $as_tr_sh`+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $flag" >&5+$as_echo_n "checking whether the C compiler accepts $flag... " >&6; }+if eval \${$as_CACHEVAR+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS $flag $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ eval "$as_CACHEVAR=yes"+else+ eval "$as_CACHEVAR=no"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+eval ac_res=\$$as_CACHEVAR+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :+ icc_archflag=$flag; break+else+ :+fi++ done+ fi+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for icc architecture flag" >&5+$as_echo_n "checking for icc architecture flag... " >&6; }+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $icc_archflag" >&5+$as_echo "$icc_archflag" >&6; }+ if test "x$icc_archflag" != xunknown; then+ CFLAGS="$CFLAGS $icc_archflag"+ fi+ fi+ ;;++ nvhpc)+ # default optimization flags for nvhpc+ CFLAGS="$CFLAGS -O3"+ ;;++ gnu)+ # default optimization flags for gcc on all systems+ CFLAGS="$CFLAGS -O3 -fomit-frame-pointer"++ # -malign-double for x86 systems+ # LIBFFI_LOCAL: don't do this.+ # The testsuite doesn't use these flags and we'll get test failures.+ # AX_CHECK_COMPILE_FLAG(-malign-double, CFLAGS="$CFLAGS -malign-double")++ # -fstrict-aliasing for gcc-2.95++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fstrict-aliasing" >&5+$as_echo_n "checking whether the C compiler accepts -fstrict-aliasing... " >&6; }+if ${ax_cv_check_cflags___fstrict_aliasing+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS -fstrict-aliasing $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ax_cv_check_cflags___fstrict_aliasing=yes+else+ ax_cv_check_cflags___fstrict_aliasing=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fstrict_aliasing" >&5+$as_echo "$ax_cv_check_cflags___fstrict_aliasing" >&6; }+if test "x$ax_cv_check_cflags___fstrict_aliasing" = xyes; then :+ CFLAGS="$CFLAGS -fstrict-aliasing"+else+ :+fi+++ # note that we enable "unsafe" fp optimization with other compilers, too+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -ffast-math" >&5+$as_echo_n "checking whether the C compiler accepts -ffast-math... " >&6; }+if ${ax_cv_check_cflags___ffast_math+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS -ffast-math $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ax_cv_check_cflags___ffast_math=yes+else+ ax_cv_check_cflags___ffast_math=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___ffast_math" >&5+$as_echo "$ax_cv_check_cflags___ffast_math" >&6; }+if test "x$ax_cv_check_cflags___ffast_math" = xyes; then :+ CFLAGS="$CFLAGS -ffast-math"+else+ :+fi+++++++++# Check whether --with-gcc-arch was given.+if test "${with_gcc_arch+set}" = set; then :+ withval=$with_gcc_arch; ax_gcc_arch=$withval+else+ ax_gcc_arch=yes+fi+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5+$as_echo_n "checking for gcc architecture flag... " >&6; }+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5+$as_echo "" >&6; }+if ${ax_cv_gcc_archflag+:} false; then :+ $as_echo_n "(cached) " >&6+else++ax_cv_gcc_archflag="unknown"++if test "$GCC" = yes; then++if test "x$ax_gcc_arch" = xyes; then+ax_gcc_arch=""+if test "$cross_compiling" = no; then+case $host_cpu in+ i[3456]86*|x86_64*|amd64*) # use cpuid codes++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 0 output" >&5+$as_echo_n "checking for x86 cpuid 0 output... " >&6; }+if ${ax_cv_gcc_x86_cpuid_0+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test "$cross_compiling" = yes; then :+ ax_cv_gcc_x86_cpuid_0=unknown+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdio.h>+int+main ()+{++ int op = 0, level = 0, eax, ebx, ecx, edx;+ FILE *f;+ __asm__ __volatile__ ("xchg %%ebx, %1\n"+ "cpuid\n"+ "xchg %%ebx, %1\n"+ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)+ : "a" (op), "2" (level));++ f = fopen("conftest_cpuid", "w"); if (!f) return 1;+ fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);+ fclose(f);+ return 0;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid+else+ ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_0" >&5+$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for x86 cpuid 1 output" >&5+$as_echo_n "checking for x86 cpuid 1 output... " >&6; }+if ${ax_cv_gcc_x86_cpuid_1+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if test "$cross_compiling" = yes; then :+ ax_cv_gcc_x86_cpuid_1=unknown+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <stdio.h>+int+main ()+{++ int op = 1, level = 0, eax, ebx, ecx, edx;+ FILE *f;+ __asm__ __volatile__ ("xchg %%ebx, %1\n"+ "cpuid\n"+ "xchg %%ebx, %1\n"+ : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)+ : "a" (op), "2" (level));++ f = fopen("conftest_cpuid", "w"); if (!f) return 1;+ fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);+ fclose(f);+ return 0;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid+else+ ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_x86_cpuid_1" >&5+$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++ case $ax_cv_gcc_x86_cpuid_0 in+ *:756e6547:6c65746e:49656e69) # Intel+ case $ax_cv_gcc_x86_cpuid_1 in+ *5[4578]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;+ *5[123]?:*:*:*) ax_gcc_arch=pentium ;;+ *0?61?:*:*:*|?61?:*:*:*|61?:*:*:*) ax_gcc_arch=pentiumpro ;;+ *0?6[356]?:*:*:*|?6[356]?:*:*:*|6[356]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;+ *0?6[78ab]?:*:*:*|?6[78ab]?:*:*:*|6[78ab]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;+ *0?6[9d]?:*:*:*|?6[9d]?:*:*:*|6[9d]?:*:*:*|*1?65?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;+ *0?6e?:*:*:*|?6e?:*:*:*|6e?:*:*:*) ax_gcc_arch="yonah pentium-m pentium3 pentiumpro" ;;+ *0?6f?:*:*:*|?6f?:*:*:*|6f?:*:*:*|*1?66?:*:*:*) ax_gcc_arch="core2 pentium-m pentium3 pentiumpro" ;;+ *1?6[7d]?:*:*:*) ax_gcc_arch="penryn core2 pentium-m pentium3 pentiumpro" ;;+ *1?6[aef]?:*:*:*|*2?6e?:*:*:*) ax_gcc_arch="nehalem corei7 core2 pentium-m pentium3 pentiumpro" ;;+ *2?6[5cf]?:*:*:*) ax_gcc_arch="westmere corei7 core2 pentium-m pentium3 pentiumpro" ;;+ *2?6[ad]?:*:*:*) ax_gcc_arch="sandybridge corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;+ *3?6[ae]?:*:*:*) ax_gcc_arch="ivybridge core-avx-i corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;+ *3?6[cf]?:*:*:*|*4?6[56]?:*:*:*) ax_gcc_arch="haswell core-avx2 core-avx-i corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;+ *3?6d?:*:*:*|*4?6[7f]?:*:*:*|*5?66?:*:*:*) ax_gcc_arch="broadwell core-avx2 core-avx-i corei7-avx corei7 core2 pentium-m pentium3 pentiumpro" ;;+ *1?6c?:*:*:*|*2?6[67]?:*:*:*|*3?6[56]?:*:*:*) ax_gcc_arch="bonnell atom core2 pentium-m pentium3 pentiumpro" ;;+ *3?67?:*:*:*|*[45]?6[ad]?:*:*:*) ax_gcc_arch="silvermont atom core2 pentium-m pentium3 pentiumpro" ;;+ *000?f[012]?:*:*:*|?f[012]?:*:*:*|f[012]?:*:*:*) ax_gcc_arch="pentium4 pentiumpro" ;;+ *000?f[346]?:*:*:*|?f[346]?:*:*:*|f[346]?:*:*:*) ax_gcc_arch="nocona prescott pentium4 pentiumpro" ;;+ # fallback+ *5??:*:*:*) ax_gcc_arch=pentium ;;+ *??6??:*:*:*) ax_gcc_arch="core2 pentiumpro" ;;+ *6??:*:*:*) ax_gcc_arch=pentiumpro ;;+ *00??f??:*:*:*|??f??:*:*:*|?f??:*:*:*|f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro" ;;+ esac ;;+ *:68747541:444d4163:69746e65) # AMD+ case $ax_cv_gcc_x86_cpuid_1 in+ *5[67]?:*:*:*) ax_gcc_arch=k6 ;;+ *5[8]?:*:*:*) ax_gcc_arch="k6-2 k6" ;;+ *5[9d]?:*:*:*) ax_gcc_arch="k6-3 k6" ;;+ *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;;+ *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;;+ *6[678a]?:*:*:*) ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;+ *000?f[4578bcef]?:*:*:*|?f[4578bcef]?:*:*:*|f[4578bcef]?:*:*:*|*001?f[4578bcf]?:*:*:*|1?f[4578bcf]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;+ *002?f[13457bcf]?:*:*:*|2?f[13457bcf]?:*:*:*|*004?f[138bcf]?:*:*:*|4?f[138bcf]?:*:*:*|*005?f[df]?:*:*:*|5?f[df]?:*:*:*|*006?f[8bcf]?:*:*:*|6?f[8bcf]?:*:*:*|*007?f[cf]?:*:*:*|7?f[cf]?:*:*:*|*00c?f1?:*:*:*|c?f1?:*:*:*|*020?f3?:*:*:*|20?f3?:*:*:*) ax_gcc_arch="athlon64-sse3 k8-sse3 athlon64 k8" ;;+ *010?f[245689a]?:*:*:*|10?f[245689a]?:*:*:*|*030?f1?:*:*:*|30?f1?:*:*:*) ax_gcc_arch="barcelona amdfam10 k8" ;;+ *050?f[12]?:*:*:*|50?f[12]?:*:*:*) ax_gcc_arch="btver1 amdfam10 k8" ;;+ *060?f1?:*:*:*|60?f1?:*:*:*) ax_gcc_arch="bdver1 amdfam10 k8" ;;+ *060?f2?:*:*:*|60?f2?:*:*:*|*061?f[03]?:*:*:*|61?f[03]?:*:*:*) ax_gcc_arch="bdver2 bdver1 amdfam10 k8" ;;+ *063?f0?:*:*:*|63?f0?:*:*:*) ax_gcc_arch="bdver3 bdver2 bdver1 amdfam10 k8" ;;+ *07[03]?f0?:*:*:*|7[03]?f0?:*:*:*) ax_gcc_arch="btver2 btver1 amdfam10 k8" ;;+ # fallback+ *0[13]??f??:*:*:*|[13]??f??:*:*:*) ax_gcc_arch="barcelona amdfam10 k8" ;;+ *020?f??:*:*:*|20?f??:*:*:*) ax_gcc_arch="athlon64-sse3 k8-sse3 athlon64 k8" ;;+ *05??f??:*:*:*|5??f??:*:*:*) ax_gcc_arch="btver1 amdfam10 k8" ;;+ *060?f??:*:*:*|60?f??:*:*:*) ax_gcc_arch="bdver1 amdfam10 k8" ;;+ *061?f??:*:*:*|61?f??:*:*:*) ax_gcc_arch="bdver2 bdver1 amdfam10 k8" ;;+ *06??f??:*:*:*|6??f??:*:*:*) ax_gcc_arch="bdver3 bdver2 bdver1 amdfam10 k8" ;;+ *070?f??:*:*:*|70?f??:*:*:*) ax_gcc_arch="btver2 btver1 amdfam10 k8" ;;+ *???f??:*:*:*) ax_gcc_arch="amdfam10 k8" ;;+ esac ;;+ *:746e6543:736c7561:48727561) # IDT / VIA (Centaur)+ case $ax_cv_gcc_x86_cpuid_1 in+ *54?:*:*:*) ax_gcc_arch=winchip-c6 ;;+ *5[89]?:*:*:*) ax_gcc_arch=winchip2 ;;+ *66?:*:*:*) ax_gcc_arch=winchip2 ;;+ *6[78]?:*:*:*) ax_gcc_arch=c3 ;;+ *6[9adf]?:*:*:*) ax_gcc_arch="c3-2 c3" ;;+ esac ;;+ esac+ if test x"$ax_gcc_arch" = x; then # fallback+ case $host_cpu in+ i586*) ax_gcc_arch=pentium ;;+ i686*) ax_gcc_arch=pentiumpro ;;+ esac+ fi+ ;;++ sparc*)+ # Extract the first word of "prtdiag", so it can be a program name with args.+set dummy prtdiag; ac_word=$2+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if ${ac_cv_path_PRTDIAG+:} false; then :+ $as_echo_n "(cached) " >&6+else+ case $PRTDIAG in+ [\\/]* | ?:[\\/]*)+ ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path.+ ;;+ *)+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/"+for as_dir in $as_dummy+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then+ ac_cv_path_PRTDIAG="$as_dir/$ac_word$ac_exec_ext"+ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+ done+IFS=$as_save_IFS++ test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag"+ ;;+esac+fi+PRTDIAG=$ac_cv_path_PRTDIAG+if test -n "$PRTDIAG"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PRTDIAG" >&5+$as_echo "$PRTDIAG" >&6; }+else+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5+$as_echo "no" >&6; }+fi+++ cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`+ cputype=`echo "$cputype" | tr -d ' -' | $SED 's/SPARCIIi/SPARCII/' |tr $as_cr_LETTERS $as_cr_letters`+ case $cputype in+ *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;+ *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;+ *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;;+ *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;;+ *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;;+ *cypress*) ax_gcc_arch=cypress ;;+ esac ;;++ alphaev5) ax_gcc_arch=ev5 ;;+ alphaev56) ax_gcc_arch=ev56 ;;+ alphapca56) ax_gcc_arch="pca56 ev56" ;;+ alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;;+ alphaev6) ax_gcc_arch=ev6 ;;+ alphaev67) ax_gcc_arch=ev67 ;;+ alphaev68) ax_gcc_arch="ev68 ev67" ;;+ alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;;+ alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;;+ alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;;++ powerpc*)+ cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | $SED 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null`+ cputype=`echo $cputype | $SED -e 's/ppc//g;s/ *//g'`+ case $cputype in+ *750*) ax_gcc_arch="750 G3" ;;+ *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;;+ *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;;+ *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;;+ *970*) ax_gcc_arch="970 G5 power4";;+ *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";;+ *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";;+ 603ev|8240) ax_gcc_arch="$cputype 603e 603";;+ *POWER7*) ax_gcc_arch="power7";;+ *POWER8*) ax_gcc_arch="power8";;+ *POWER9*) ax_gcc_arch="power9";;+ *POWER10*) ax_gcc_arch="power10";;+ *) ax_gcc_arch=$cputype ;;+ esac+ ax_gcc_arch="$ax_gcc_arch powerpc"+ ;;+ aarch64)+ cpuimpl=`grep 'CPU implementer' /proc/cpuinfo 2> /dev/null | cut -d: -f2 | tr -d " " | head -n 1`+ cpuarch=`grep 'CPU architecture' /proc/cpuinfo 2> /dev/null | cut -d: -f2 | tr -d " " | head -n 1`+ cpuvar=`grep 'CPU variant' /proc/cpuinfo 2> /dev/null | cut -d: -f2 | tr -d " " | head -n 1`+ case $cpuimpl in+ 0x42) case $cpuarch in+ 8) case $cpuvar in+ 0x0) ax_gcc_arch="thunderx2t99 vulcan armv8.1-a armv8-a+lse armv8-a native" ;;+ esac+ ;;+ esac+ ;;+ 0x43) case $cpuarch in+ 8) case $cpuvar in+ 0x0) ax_gcc_arch="thunderx armv8-a native" ;;+ 0x1) ax_gcc_arch="thunderx+lse armv8.1-a armv8-a+lse armv8-a native" ;;+ esac+ ;;+ esac+ ;;+ esac+ ;;+esac+fi # not cross-compiling+fi # guess arch++if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then+if test "x$acx_maxopt_portable" = xyes; then # if we require portable code+ flag_prefixes="-mtune="+ if test "x$ax_cv_c_compiler_vendor" = xclang; then flag_prefixes="-march="; fi+ # -mcpu=$arch and m$arch generate nonportable code on every arch except+ # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr.+ case $host_cpu in i*86|x86_64*|amd64*) flag_prefixes="$flag_prefixes -mcpu= -m";; esac+else+ flag_prefixes="-march= -mcpu= -m"+fi+for flag_prefix in $flag_prefixes; do+ for arch in $ax_gcc_arch; do+ flag="$flag_prefix$arch"+ as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$flag" | $as_tr_sh`+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $flag" >&5+$as_echo_n "checking whether the C compiler accepts $flag... " >&6; }+if eval \${$as_CACHEVAR+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS $flag $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ eval "$as_CACHEVAR=yes"+else+ eval "$as_CACHEVAR=no"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+eval ac_res=\$$as_CACHEVAR+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :+ if test "x$ax_cv_c_compiler_vendor" = xclang; then+ if test "x$acx_maxopt_portable" = xyes; then+ if test "x$flag" = "x-march=$arch"; then flag=-mtune=$arch; fi+ fi+ fi; ax_cv_gcc_archflag=$flag; break+else+ :+fi++ done+ test "x$ax_cv_gcc_archflag" = xunknown || break+done+fi++fi # $GCC=yes++fi++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc architecture flag" >&5+$as_echo_n "checking for gcc architecture flag... " >&6; }+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_gcc_archflag" >&5+$as_echo "$ax_cv_gcc_archflag" >&6; }+if test "x$ax_cv_gcc_archflag" = xunknown; then+ :+else+ CFLAGS="$CFLAGS $ax_cv_gcc_archflag"+fi++ ;;++ microsoft)+ # default optimization flags for MSVC opt builds+ CFLAGS="$CFLAGS -O2"+ ;;+ esac++ if test -z "$CFLAGS"; then+ echo ""+ echo "********************************************************"+ echo "* WARNING: Don't know the best CFLAGS for this system *"+ echo "* Use ./configure CFLAGS=... to specify your own flags *"+ echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"+ echo "********************************************************"+ echo ""+ CFLAGS="$CFLAGS -O3"+ fi++ as_CACHEVAR=`$as_echo "ax_cv_check_cflags__$CFLAGS" | $as_tr_sh`+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts $CFLAGS" >&5+$as_echo_n "checking whether the C compiler accepts $CFLAGS... " >&6; }+if eval \${$as_CACHEVAR+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS $CFLAGS $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ eval "$as_CACHEVAR=yes"+else+ eval "$as_CACHEVAR=no"+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+eval ac_res=\$$as_CACHEVAR+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+if eval test \"x\$"$as_CACHEVAR"\" = x"yes"; then :+ :+else++ echo ""+ echo "********************************************************"+ echo "* WARNING: The guessed CFLAGS don't seem to work with *"+ echo "* your compiler. *"+ echo "* Use ./configure CFLAGS=... to specify your own flags *"+ echo "********************************************************"+ echo ""++fi+++fi++# The AX_CFLAGS_WARN_ALL macro doesn't currently work for sunpro+# compiler.+if test "$ax_cv_c_compiler_vendor" != "sun"; then+ ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking CFLAGS for most reasonable warnings" >&5+$as_echo_n "checking CFLAGS for most reasonable warnings... " >&6; }+if ${ac_cv_cflags_warn_all+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ac_cv_cflags_warn_all=""+ ac_save_cflags_warn_all_found="yes"+ case "$ax_cv_c_compiler_vendor" in #(+ intel) :+ ac_cv_cflags_warn_all="-w2" ;; #(+ ibm) :+ ac_cv_cflags_warn_all="-qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" ;; #(+ pathscale) :+ ;; #(+ clang) :+ ac_cv_cflags_warn_all="-Wall" ;; #(+ cray) :+ ac_cv_cflags_warn_all="-h msglevel 2" ;; #(+ fujitsu) :+ ;; #(+ sdcc) :+ ;; #(+ sx) :+ ac_cv_cflags_warn_all="-pvctl,fullmsg" ;; #(+ portland) :+ ;; #(+ gnu) :+ ac_cv_cflags_warn_all="-Wall" ;; #(+ sun) :+ ac_cv_cflags_warn_all="-v" ;; #(+ hp) :+ ac_cv_cflags_warn_all="+w1" ;; #(+ dec) :+ ac_cv_cflags_warn_all="-verbose -w0 -warnprotos" ;; #(+ borland) :+ ;; #(+ comeau) :+ ;; #(+ kai) :+ ;; #(+ lcc) :+ ;; #(+ sgi) :+ ac_cv_cflags_warn_all="-fullwarn" ;; #(+ microsoft) :+ ;; #(+ metrowerks) :+ ;; #(+ watcom) :+ ;; #(+ tcc) :+ ;; #(+ unknown) :++ ac_cv_cflags_warn_all=""+ ac_save_cflags_warn_all_found="no"+ ;; #(+ *) :++ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unknown compiler vendor returned by AX_COMPILER_VENDOR" >&5+$as_echo "$as_me: WARNING: Unknown compiler vendor returned by AX_COMPILER_VENDOR" >&2;}+ ac_cv_cflags_warn_all=""+ ac_save_cflags_warn_all_found="no"++ ;;+esac++ if test "x$ac_save_cflags_warn_all_found" = "xyes"; then :+ if test "x$ac_cv_cflags_warn_all" != "x"; then :++if ${CFLAGS+:} false; then :++ case " $CFLAGS " in #(+ *" $ac_cv_cflags_warn_all "*) :+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS already contains \$ac_cv_cflags_warn_all"; } >&5+ (: CFLAGS already contains $ac_cv_cflags_warn_all) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } ;; #(+ *) :++ CFLAGS="$ac_cv_cflags_warn_all $CFLAGS"+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5+ (: CFLAGS="$CFLAGS") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }+ ;;+esac++else++ CFLAGS=$ac_cv_cflags_warn_all+ { { $as_echo "$as_me:${as_lineno-$LINENO}: : CFLAGS=\"\$CFLAGS\""; } >&5+ (: CFLAGS="$CFLAGS") 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }++fi++fi++else+ true++fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5+$as_echo "$ac_cv_cflags_warn_all" >&6; }++ ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++fi++if test "x$GCC" = "xyes"; then+ CFLAGS="$CFLAGS -fexceptions"+fi++cat > local.exp <<EOF+set CC_FOR_TARGET "$CC"+set CXX_FOR_TARGET "$CXX"+set compiler_vendor "$ax_cv_c_compiler_vendor"+EOF+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }+ # Check whether --enable-maintainer-mode was given.+if test "${enable_maintainer_mode+set}" = set; then :+ enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval+else+ USE_MAINTAINER_MODE=no+fi++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5+$as_echo "$USE_MAINTAINER_MODE" >&6; }+ if test $USE_MAINTAINER_MODE = yes; then+ MAINTAINER_MODE_TRUE=+ MAINTAINER_MODE_FALSE='#'+else+ MAINTAINER_MODE_TRUE='#'+ MAINTAINER_MODE_FALSE=+fi++ MAINT=$MAINTAINER_MODE_TRUE++++for ac_header in sys/memfd.h+do :+ ac_fn_c_check_header_mongrel "$LINENO" "sys/memfd.h" "ac_cv_header_sys_memfd_h" "$ac_includes_default"+if test "x$ac_cv_header_sys_memfd_h" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_SYS_MEMFD_H 1+_ACEOF++fi++done++for ac_func in memfd_create+do :+ ac_fn_c_check_func "$LINENO" "memfd_create" "ac_cv_func_memfd_create"+if test "x$ac_cv_func_memfd_create" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_MEMFD_CREATE 1+_ACEOF++fi+done+++HAVE_LONG_DOUBLE_VARIANT=0++. ${srcdir}/configure.host++if test -n "${UNSUPPORTED}"; then+ as_fn_error $? "\"libffi has not been ported to $host.\"" "$LINENO" 5+fi++++++for ac_func in memcpy+do :+ ac_fn_c_check_func "$LINENO" "memcpy" "ac_cv_func_memcpy"+if test "x$ac_cv_func_memcpy" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_MEMCPY 1+_ACEOF++fi+done++for ac_header in alloca.h+do :+ ac_fn_c_check_header_mongrel "$LINENO" "alloca.h" "ac_cv_header_alloca_h" "$ac_includes_default"+if test "x$ac_cv_header_alloca_h" = xyes; then :+ cat >>confdefs.h <<_ACEOF+#define HAVE_ALLOCA_H 1+_ACEOF++fi++done+++# The cast to long int works around a bug in the HP C Compiler+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.+# This bug is HP SR number 8606223364.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of double" >&5+$as_echo_n "checking size of double... " >&6; }+if ${ac_cv_sizeof_double+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (double))" "ac_cv_sizeof_double" "$ac_includes_default"; then :++else+ if test "$ac_cv_type_double" = yes; then+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "cannot compute sizeof (double)+See \`config.log' for more details" "$LINENO" 5; }+ else+ ac_cv_sizeof_double=0+ fi+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_double" >&5+$as_echo "$ac_cv_sizeof_double" >&6; }++++cat >>confdefs.h <<_ACEOF+#define SIZEOF_DOUBLE $ac_cv_sizeof_double+_ACEOF+++# The cast to long int works around a bug in the HP C Compiler+# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects+# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.+# This bug is HP SR number 8606223364.+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long double" >&5+$as_echo_n "checking size of long double... " >&6; }+if ${ac_cv_sizeof_long_double+:} false; then :+ $as_echo_n "(cached) " >&6+else+ if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long double))" "ac_cv_sizeof_long_double" "$ac_includes_default"; then :++else+ if test "$ac_cv_type_long_double" = yes; then+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error 77 "cannot compute sizeof (long double)+See \`config.log' for more details" "$LINENO" 5; }+ else+ ac_cv_sizeof_long_double=0+ fi+fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_double" >&5+$as_echo "$ac_cv_sizeof_long_double" >&6; }++++cat >>confdefs.h <<_ACEOF+#define SIZEOF_LONG_DOUBLE $ac_cv_sizeof_long_double+_ACEOF++++# Also AC_SUBST this variable for ffi.h.+if test -z "$HAVE_LONG_DOUBLE"; then+ HAVE_LONG_DOUBLE=0+ if test $ac_cv_sizeof_long_double != 0; then+ if test $HAVE_LONG_DOUBLE_VARIANT != 0; then++$as_echo "#define HAVE_LONG_DOUBLE_VARIANT 1" >>confdefs.h++ HAVE_LONG_DOUBLE=1+ else+ if test $ac_cv_sizeof_double != $ac_cv_sizeof_long_double; then+ HAVE_LONG_DOUBLE=1++$as_echo "#define HAVE_LONG_DOUBLE 1" >>confdefs.h++ fi+ fi+ fi+fi++++ac_fn_c_check_type "$LINENO" "__int128_t" "ac_cv_type___int128_t" "$ac_includes_default"+if test "x$ac_cv_type___int128_t" = xyes; then :++$as_echo "#define HAVE_INT128 1" >>confdefs.h++fi+++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }+if ${ac_cv_c_bigendian+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_cv_c_bigendian=unknown+ # See if we're dealing with a universal compiler.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#ifndef __APPLE_CC__+ not a universal capable compiler+ #endif+ typedef int dummy;++_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :++ # Check for potential -arch flags. It is not universal unless+ # there are at least two -arch flags with different values.+ ac_arch=+ ac_prev=+ for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do+ if test -n "$ac_prev"; then+ case $ac_word in+ i?86 | x86_64 | ppc | ppc64)+ if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then+ ac_arch=$ac_word+ else+ ac_cv_c_bigendian=universal+ break+ fi+ ;;+ esac+ ac_prev=+ elif test "x$ac_word" = "x-arch"; then+ ac_prev=arch+ fi+ done+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ if test $ac_cv_c_bigendian = unknown; then+ # See if sys/param.h defines the BYTE_ORDER macro.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <sys/types.h>+ #include <sys/param.h>++int+main ()+{+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \+ && LITTLE_ENDIAN)+ bogus endian macros+ #endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ # It does; now see whether it defined to BIG_ENDIAN or not.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <sys/types.h>+ #include <sys/param.h>++int+main ()+{+#if BYTE_ORDER != BIG_ENDIAN+ not big endian+ #endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_c_bigendian=yes+else+ ac_cv_c_bigendian=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ fi+ if test $ac_cv_c_bigendian = unknown; then+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <limits.h>++int+main ()+{+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)+ bogus endian macros+ #endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ # It does; now see whether it defined to _BIG_ENDIAN or not.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+#include <limits.h>++int+main ()+{+#ifndef _BIG_ENDIAN+ not big endian+ #endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ac_cv_c_bigendian=yes+else+ ac_cv_c_bigendian=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ fi+ if test $ac_cv_c_bigendian = unknown; then+ # Compile a test program.+ if test "$cross_compiling" = yes; then :+ # Try to guess by grepping values from an object file.+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+short int ascii_mm[] =+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };+ short int ascii_ii[] =+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };+ int use_ascii (int i) {+ return ascii_mm[i] + ascii_ii[i];+ }+ short int ebcdic_ii[] =+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };+ short int ebcdic_mm[] =+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };+ int use_ebcdic (int i) {+ return ebcdic_mm[i] + ebcdic_ii[i];+ }+ extern int foo;++int+main ()+{+return use_ascii (foo) == use_ebcdic (foo);+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then+ ac_cv_c_bigendian=yes+ fi+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then+ if test "$ac_cv_c_bigendian" = unknown; then+ ac_cv_c_bigendian=no+ else+ # finding both strings is unlikely to happen, but who knows?+ ac_cv_c_bigendian=unknown+ fi+ fi+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+$ac_includes_default+int+main ()+{++ /* Are we little or big endian? From Harbison&Steele. */+ union+ {+ long int l;+ char c[sizeof (long int)];+ } u;+ u.l = 1;+ return u.c[sizeof (long int) - 1] == 1;++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ ac_cv_c_bigendian=no+else+ ac_cv_c_bigendian=yes+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++ fi+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5+$as_echo "$ac_cv_c_bigendian" >&6; }+ case $ac_cv_c_bigendian in #(+ yes)+ $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h+;; #(+ no)+ ;; #(+ universal)++$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h++ ;; #(+ *)+ as_fn_error $? "unknown endianness+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;+ esac++++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .cfi pseudo-op support" >&5+$as_echo_n "checking assembler .cfi pseudo-op support... " >&6; }+if ${gcc_cv_as_cfi_pseudo_op+:} false; then :+ $as_echo_n "(cached) " >&6+else+ ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++ #ifdef _MSC_VER+ Nope.+ #endif+ int foo (void)+ {+ __asm__ (".cfi_remember_state\n\t"+ ".cfi_restore_state\n\t");+ return 0;+ }++_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ gcc_cv_as_cfi_pseudo_op=yes+else+ gcc_cv_as_cfi_pseudo_op=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gcc_cv_as_cfi_pseudo_op" >&5+$as_echo "$gcc_cv_as_cfi_pseudo_op" >&6; }++ if test "x$gcc_cv_as_cfi_pseudo_op" = xyes; then++$as_echo "#define HAVE_AS_CFI_PSEUDO_OP 1" >>confdefs.h++ fi+++++case "$TARGET" in+ SPARC)+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler and linker support unaligned pc related relocs" >&5+$as_echo_n "checking assembler and linker support unaligned pc related relocs... " >&6; }+if ${libffi_cv_as_sparc_ua_pcrel+:} false; then :+ $as_echo_n "(cached) " >&6+else++ save_CFLAGS="$CFLAGS"+ save_LDFLAGS="$LDFLAGS"+ CFLAGS="$CFLAGS -fpic"+ LDFLAGS="$LDFLAGS -shared"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */+asm (".text; foo: nop; .data; .align 4; .byte 0; .uaword %r_disp32(foo); .text");+int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ libffi_cv_as_sparc_ua_pcrel=yes+else+ libffi_cv_as_sparc_ua_pcrel=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ CFLAGS="$save_CFLAGS"+ LDFLAGS="$save_LDFLAGS"+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_sparc_ua_pcrel" >&5+$as_echo "$libffi_cv_as_sparc_ua_pcrel" >&6; }+ if test "x$libffi_cv_as_sparc_ua_pcrel" = xyes; then++$as_echo "#define HAVE_AS_SPARC_UA_PCREL 1" >>confdefs.h++ fi++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler .register pseudo-op support" >&5+$as_echo_n "checking assembler .register pseudo-op support... " >&6; }+if ${libffi_cv_as_register_pseudo_op+:} false; then :+ $as_echo_n "(cached) " >&6+else++ libffi_cv_as_register_pseudo_op=unknown+ # Check if we have .register+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{+asm (".register %g2, #scratch");+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ libffi_cv_as_register_pseudo_op=yes+else+ libffi_cv_as_register_pseudo_op=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_register_pseudo_op" >&5+$as_echo "$libffi_cv_as_register_pseudo_op" >&6; }+ if test "x$libffi_cv_as_register_pseudo_op" = xyes; then++$as_echo "#define HAVE_AS_REGISTER_PSEUDO_OP 1" >>confdefs.h++ fi+ ;;++ X86*)+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking assembler supports pc related relocs" >&5+$as_echo_n "checking assembler supports pc related relocs... " >&6; }+if ${libffi_cv_as_x86_pcrel+:} false; then :+ $as_echo_n "(cached) " >&6+else++ libffi_cv_as_x86_pcrel=no+ echo '.text; foo: nop; .data; .long foo-.; .text' > conftest.s+ if $CC $CFLAGS -c conftest.s > /dev/null 2>&1; then+ libffi_cv_as_x86_pcrel=yes+ fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_x86_pcrel" >&5+$as_echo "$libffi_cv_as_x86_pcrel" >&6; }+ if test "x$libffi_cv_as_x86_pcrel" = xyes; then++$as_echo "#define HAVE_AS_X86_PCREL 1" >>confdefs.h++ fi+ ;;++ S390)+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler uses zarch features" >&5+$as_echo_n "checking compiler uses zarch features... " >&6; }+if ${libffi_cv_as_s390_zarch+:} false; then :+ $as_echo_n "(cached) " >&6+else++ libffi_cv_as_s390_zarch=no+ echo 'void foo(void) { bar(); bar(); }' > conftest.c+ if $CC $CFLAGS -S conftest.c > /dev/null 2>&1; then+ if $GREP -q brasl conftest.s; then+ libffi_cv_as_s390_zarch=yes+ fi+ fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_s390_zarch" >&5+$as_echo "$libffi_cv_as_s390_zarch" >&6; }+ if test "x$libffi_cv_as_s390_zarch" = xyes; then++$as_echo "#define HAVE_AS_S390_ZARCH 1" >>confdefs.h++ fi+ ;;+ wasm64)+ if test -z "$WASM64_MEMORY64"; then+ WASM64_MEMORY64=1+ fi+ CFLAGS="$CFLAGS -sMEMORY64=$WASM64_MEMORY64"+ ;;+ LOONGARCH64)+ CFLAGS="$CFLAGS -mcmodel=medium"+ ;;+ LOONGARCH32)+ # No special for LoongArch32 now.+ ;;+esac++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether compiler supports pointer authentication" >&5+$as_echo_n "checking whether compiler supports pointer authentication... " >&6; }+if ${libffi_cv_as_ptrauth+:} false; then :+ $as_echo_n "(cached) " >&6+else++ libffi_cv_as_ptrauth=unknown+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++#ifdef __clang__+# if __has_feature(ptrauth_calls)+# define HAVE_ARM64E_PTRAUTH 1+# endif+#endif++#ifndef HAVE_ARM64E_PTRAUTH+# error Pointer authentication not supported+#endif++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ libffi_cv_as_ptrauth=yes+else+ libffi_cv_as_ptrauth=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_ptrauth" >&5+$as_echo "$libffi_cv_as_ptrauth" >&6; }+if test "x$libffi_cv_as_ptrauth" = xyes; then++$as_echo "#define HAVE_ARM64E_PTRAUTH 1" >>confdefs.h++fi++# On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC;+# if EMUTRAMP is active too ffi could try mapping without PROT_EXEC,+# but the kernel needs to recognize the trampoline generated by ffi.+# Otherwise fallback to double mmap trick.+# Check whether --enable-pax_emutramp was given.+if test "${enable_pax_emutramp+set}" = set; then :+ enableval=$enable_pax_emutramp; if test "$enable_pax_emutramp" = "yes"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: EMUTRAMP is experimental only. Use --enable-pax_emutramp=experimental to enforce." >&5+$as_echo "$as_me: WARNING: EMUTRAMP is experimental only. Use --enable-pax_emutramp=experimental to enforce." >&2;}+ elif test "$enable_pax_emutramp" = "experimental"; then++$as_echo "#define FFI_MMAP_EXEC_EMUTRAMP_PAX 1" >>confdefs.h++ fi+fi+++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _ prefix in compiled symbols" >&5+$as_echo_n "checking for _ prefix in compiled symbols... " >&6; }+if ${lt_cv_sys_symbol_underscore+:} false; then :+ $as_echo_n "(cached) " >&6+else+ lt_cv_sys_symbol_underscore=no+ cat > conftest.$ac_ext <<_LT_EOF+void nm_test_func(){}+int main(){nm_test_func;return 0;}+_LT_EOF+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5+ (eval $ac_compile) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; then+ # Now try to grab the symbols.+ ac_nlist=conftest.nm+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist\""; } >&5+ (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $ac_nlist) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; } && test -s "$ac_nlist"; then+ # See whether the symbols have a leading underscore.+ if grep '^. _nm_test_func' "$ac_nlist" >/dev/null; then+ lt_cv_sys_symbol_underscore=yes+ else+ if grep '^. nm_test_func ' "$ac_nlist" >/dev/null; then+ :+ else+ echo "configure: cannot find nm_test_func in $ac_nlist" >&5+ fi+ fi+ else+ echo "configure: cannot run $lt_cv_sys_global_symbol_pipe" >&5+ fi+ else+ echo "configure: failed program was:" >&5+ cat conftest.c >&5+ fi+ rm -rf conftest*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_symbol_underscore" >&5+$as_echo "$lt_cv_sys_symbol_underscore" >&6; }+ sys_symbol_underscore=$lt_cv_sys_symbol_underscore+++if test "x$sys_symbol_underscore" = xyes; then++$as_echo "#define SYMBOL_UNDERSCORE 1" >>confdefs.h++fi++FFI_EXEC_TRAMPOLINE_TABLE=0+case "$target" in+ *arm*-apple-* | aarch64-apple-*)+ FFI_EXEC_TRAMPOLINE_TABLE=1++$as_echo "#define FFI_EXEC_TRAMPOLINE_TABLE 1" >>confdefs.h++ ;;+ *-apple-* | *-*-dragonfly* | *-*-freebsd* | *-*-kfreebsd* | *-*-openbsd* | *-pc-solaris* | *-linux-android*)++$as_echo "#define FFI_MMAP_EXEC_WRIT 1" >>confdefs.h++ ;;+esac+ if test x$FFI_EXEC_TRAMPOLINE_TABLE = x1; then+ FFI_EXEC_TRAMPOLINE_TABLE_TRUE=+ FFI_EXEC_TRAMPOLINE_TABLE_FALSE='#'+else+ FFI_EXEC_TRAMPOLINE_TABLE_TRUE='#'+ FFI_EXEC_TRAMPOLINE_TABLE_FALSE=+fi++++if test x$TARGET = xX86_64; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking toolchain supports unwind section type" >&5+$as_echo_n "checking toolchain supports unwind section type... " >&6; }+if ${libffi_cv_as_x86_64_unwind_section_type+:} false; then :+ $as_echo_n "(cached) " >&6+else++ cat > conftest1.s << EOF+.text+.globl foo+foo:+jmp bar+.section .eh_frame,"a",@unwind+bar:+EOF++ cat > conftest2.c << EOF+extern void foo();+int main(){foo();}+EOF++ libffi_cv_as_x86_64_unwind_section_type=no+ # we ensure that we can compile _and_ link an assembly file containing an @unwind section+ # since the compiler can support it and not the linker (ie old binutils)+ if $CC -Wa,--fatal-warnings $CFLAGS -c conftest1.s > /dev/null 2>&1 && \+ $CC conftest2.c conftest1.o > /dev/null 2>&1 ; then+ libffi_cv_as_x86_64_unwind_section_type=yes+ fi++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_as_x86_64_unwind_section_type" >&5+$as_echo "$libffi_cv_as_x86_64_unwind_section_type" >&6; }+ if test "x$libffi_cv_as_x86_64_unwind_section_type" = xyes; then++$as_echo "#define HAVE_AS_X86_64_UNWIND_SECTION_TYPE 1" >>confdefs.h++ fi+fi++if test "x$GCC" = "xyes"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler accepts -fno-lto" >&5+$as_echo_n "checking whether the C compiler accepts -fno-lto... " >&6; }+if ${ax_cv_check_cflags___fno_lto+:} false; then :+ $as_echo_n "(cached) " >&6+else++ ax_check_save_flags=$CFLAGS+ if test x"$GCC" = xyes ; then+ add_gnu_werror="-Werror"+ fi+ CFLAGS="$CFLAGS -fno-lto $add_gnu_werror"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_compile "$LINENO"; then :+ ax_cv_check_cflags___fno_lto=yes+else+ ax_cv_check_cflags___fno_lto=no+fi+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ CFLAGS=$ax_check_save_flags+fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fno_lto" >&5+$as_echo "$ax_cv_check_cflags___fno_lto" >&6; }+if test "x$ax_cv_check_cflags___fno_lto" = xyes; then :+ libffi_cv_no_lto=-fno-lto+else+ :+fi+++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether .eh_frame section should be read-only" >&5+$as_echo_n "checking whether .eh_frame section should be read-only... " >&6; }+if ${libffi_cv_ro_eh_frame+:} false; then :+ $as_echo_n "(cached) " >&6+else++ libffi_cv_ro_eh_frame=yes+ echo 'extern void foo (void); void bar (void) { foo (); foo (); }' > conftest.c+ if $CC $CFLAGS -c -fpic -fexceptions $libffi_cv_no_lto -o conftest.o conftest.c > /dev/null 2>&1; then+ if $READELF -WS conftest.o 2>/dev/null | $GREP -q -n 'eh_frame .* WA'; then+ libffi_cv_ro_eh_frame=no+ fi+ fi+ rm -f conftest.*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_ro_eh_frame" >&5+$as_echo "$libffi_cv_ro_eh_frame" >&6; }+ if test "x$libffi_cv_ro_eh_frame" = xyes; then++$as_echo "#define HAVE_RO_EH_FRAME 1" >>confdefs.h+++$as_echo "#define EH_FRAME_FLAGS \"a\"" >>confdefs.h++ else++$as_echo "#define EH_FRAME_FLAGS \"aw\"" >>confdefs.h++ fi++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((visibility(\"hidden\")))" >&5+$as_echo_n "checking for __attribute__((visibility(\"hidden\")))... " >&6; }+if ${libffi_cv_hidden_visibility_attribute+:} false; then :+ $as_echo_n "(cached) " >&6+else++ echo 'int __attribute__ ((visibility ("hidden"))) foo (void) { return 1 ; }' > conftest.c+ libffi_cv_hidden_visibility_attribute=no+ if { ac_try='${CC-cc} -Werror -S conftest.c -o conftest.s 1>&5'+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5+ (eval $ac_try) 2>&5+ ac_status=$?+ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5+ test $ac_status = 0; }; }; then+ if $EGREP '(\.hidden|\.private_extern).*foo|foo.*,hidden' conftest.s >/dev/null; then+ libffi_cv_hidden_visibility_attribute=yes+ fi+ fi+ rm -f conftest.*++fi+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libffi_cv_hidden_visibility_attribute" >&5+$as_echo "$libffi_cv_hidden_visibility_attribute" >&6; }+ if test $libffi_cv_hidden_visibility_attribute = yes; then++$as_echo "#define HAVE_HIDDEN_VISIBILITY_ATTRIBUTE 1" >>confdefs.h++ fi+fi++++++EXTRA_SOURCES=` printf " %s " "$SOURCES" | sed -E "s/ ([^ ]+)/src\/$TARGETDIR\/\1 /g" `++EXTRA_ASM_SOURCES=` printf " %s " "$ASM_SOURCES" | sed -E "s/ ([^ ]+)/src\/$TARGETDIR\/\1 /g" `+++# Check whether --enable-debug was given.+if test "${enable_debug+set}" = set; then :+ enableval=$enable_debug; if test "$enable_debug" = "yes"; then++$as_echo "#define FFI_DEBUG 1" >>confdefs.h++ fi+fi++ if test "$enable_debug" = "yes"; then+ FFI_DEBUG_TRUE=+ FFI_DEBUG_FALSE='#'+else+ FFI_DEBUG_TRUE='#'+ FFI_DEBUG_FALSE=+fi+++# Check whether --enable-structs was given.+if test "${enable_structs+set}" = set; then :+ enableval=$enable_structs; if test "$enable_structs" = "no"; then++$as_echo "#define FFI_NO_STRUCTS 1" >>confdefs.h++ fi+fi++ if test "$enable_debug" = "yes"; then+ FFI_DEBUG_TRUE=+ FFI_DEBUG_FALSE='#'+else+ FFI_DEBUG_TRUE='#'+ FFI_DEBUG_FALSE=+fi+++# Check whether --enable-raw-api was given.+if test "${enable_raw_api+set}" = set; then :+ enableval=$enable_raw_api; if test "$enable_raw_api" = "no"; then++$as_echo "#define FFI_NO_RAW_API 1" >>confdefs.h++ fi+fi+++# Check whether --enable-exec-static-tramp was given.+if test "${enable_exec_static_tramp+set}" = set; then :+ enableval=$enable_exec_static_tramp;+fi+++if test "$enable_exec_static_tramp" != no; then+case "$target" in+ *-cygwin* | *-msys*)+ # Only define static trampolines if we are using the cygwin runtime.+ # Will this need to be changed for mingw?+ if test "x$GCC" = "xyes"; then++$as_echo "#define FFI_EXEC_STATIC_TRAMP 1" >>confdefs.h++ fi+ ;;+ *arm*-*-linux-* | aarch64*-*-linux-* | i*86-*-linux-* | x86_64-*-linux-* \+ | loongarch*-*-linux-* | s390x*-linux-* | powerpc*-linux-* \+ | riscv*-linux-*)++$as_echo "#define FFI_EXEC_STATIC_TRAMP 1" >>confdefs.h++ ;;+esac+fi++# Check whether --enable-purify-safety was given.+if test "${enable_purify_safety+set}" = set; then :+ enableval=$enable_purify_safety; if test "$enable_purify_safety" = "yes"; then++$as_echo "#define USING_PURIFY 1" >>confdefs.h++ fi+fi+++# Check linker support.++ # If we're not using GNU ld, then there's no point in even trying these+ # tests. Check for that first. We should have already tested for gld+ # by now (in libtool), but require it now just to be safe...+ test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''+ test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''++++ # The name set by libtool depends on the version of libtool. Shame on us+ # for depending on an impl detail, but c'est la vie. Older versions used+ # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on+ # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually+ # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't+ # set (hence we're using an older libtool), then set it.+ if test x${with_gnu_ld+set} != xset; then+ if test x${ac_cv_prog_gnu_ld+set} != xset; then+ # We got through "ac_require(ac_prog_ld)" and still not set? Huh?+ with_gnu_ld=no+ else+ with_gnu_ld=$ac_cv_prog_gnu_ld+ fi+ fi++ # Start by getting the version number. I think the libtool test already+ # does some of this, but throws away the result.+ libat_ld_is_gold=no+ if $LD --version 2>/dev/null | grep 'GNU gold'> /dev/null 2>&1; then+ libat_ld_is_gold=yes+ fi+ libat_ld_is_lld=no+ if $LD --version 2>/dev/null | grep 'LLD '> /dev/null 2>&1; then+ libat_ld_is_lld=yes+ fi+ libat_ld_is_mold=no+ if $LD --version 2>/dev/null | grep 'mold '> /dev/null 2>&1; then+ libat_ld_is_mold=yes+ fi++ ldver=`$LD --version 2>/dev/null |+ sed -e 's/GNU gold /GNU ld /;s/GNU ld version /GNU ld /;s/GNU ld ([^)]*) /GNU ld /;s/GNU ld \([0-9.][0-9.]*\).*/\1/; q'`++ libat_gnu_ld_version=`echo $ldver | \+ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`++ # Set --gc-sections.+ if test "$with_gnu_ld" = "notbroken"; then+ # GNU ld it is! Joy and bunny rabbits!++ # All these tests are for C++; save the language and the compiler flags.+ # Need to do this so that g++ won't try to link in libstdc+++ ac_test_CFLAGS="${CFLAGS+set}"+ ac_save_CFLAGS="$CFLAGS"+ CFLAGS='-x c++ -Wl,--gc-sections'++ # Check for -Wl,--gc-sections+ # XXX This test is broken at the moment, as symbols required for linking+ # are now in libsupc++ (not built yet). In addition, this test has+ # cored on solaris in the past. In addition, --gc-sections doesn't+ # really work at the moment (keeps on discarding used sections, first+ # .eh_frame and now some of the glibc sections for iconv).+ # Bzzzzt. Thanks for playing, maybe next time.+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5+$as_echo_n "checking for ld that supports -Wl,--gc-sections... " >&6; }+ if test "$cross_compiling" = yes; then :+ ac_sectionLDflags=yes+else+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++ int main(void)+ {+ try { throw 1; }+ catch (...) { };+ return 0;+ }++_ACEOF+if ac_fn_c_try_run "$LINENO"; then :+ ac_sectionLDflags=yes+else+ ac_sectionLDflags=no+fi+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \+ conftest.$ac_objext conftest.beam conftest.$ac_ext+fi++ if test "$ac_test_CFLAGS" = set; then+ CFLAGS="$ac_save_CFLAGS"+ else+ # this is the suspicious part+ CFLAGS=''+ fi+ if test "$ac_sectionLDflags" = "yes"; then+ SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"+ fi+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_sectionLDflags" >&5+$as_echo "$ac_sectionLDflags" >&6; }+ fi++ # Set linker optimization flags.+ if test x"$with_gnu_ld" = x"yes"; then+ OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"+ fi+++++++ # Check whether --enable-symvers was given.+if test "${enable_symvers+set}" = set; then :+ enableval=$enable_symvers;+ case "$enableval" in+ yes|no|gnu*|sun) ;;+ *) as_fn_error $? "Unknown argument to enable/disable symvers" "$LINENO" 5 ;;+ esac++else+ enable_symvers=yes+fi++++# If we never went through the LIBFFI_CHECK_LINKER_FEATURES macro, then we+# don't know enough about $LD to do tricks...+++# Turn a 'yes' into a suitable default.+if test x$enable_symvers = xyes ; then+ # FIXME The following test is too strict, in theory.+ if test $enable_shared = no || test "x$LD" = x; then+ enable_symvers=no+ else+ if test $with_gnu_ld = yes ; then+ enable_symvers=gnu+ else+ case ${target_os} in+ # Sun symbol versioning exists since Solaris 2.5.+ solaris2.[5-9]* | solaris2.1[0-9]*)+ enable_symvers=sun ;;+ *)+ enable_symvers=no ;;+ esac+ fi+ fi+fi++# Check if 'sun' was requested on non-Solaris 2 platforms.+if test x$enable_symvers = xsun ; then+ case ${target_os} in+ solaris2*)+ # All fine.+ ;;+ *)+ # Unlikely to work.+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested Sun symbol versioning, but" >&5+$as_echo "$as_me: WARNING: === You have requested Sun symbol versioning, but" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === you are not targetting Solaris 2." >&5+$as_echo "$as_me: WARNING: === you are not targetting Solaris 2." >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5+$as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}+ enable_symvers=no+ ;;+ esac+fi++# Check to see if libgcc_s exists, indicating that shared libgcc is possible.+if test $enable_symvers != no; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared libgcc" >&5+$as_echo_n "checking for shared libgcc... " >&6; }+ ac_save_CFLAGS="$CFLAGS"+ CFLAGS=' -lgcc_s'+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{+return 0;+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ libat_shared_libgcc=yes+else+ libat_shared_libgcc=no+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ CFLAGS="$ac_save_CFLAGS"+ if test $libat_shared_libgcc = no; then+ cat > conftest.c <<EOF+int main (void) { return 0; }+EOF+ libat_libgcc_s_suffix=`${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS \+ -shared -shared-libgcc -o conftest.so \+ conftest.c -v 2>&1 >/dev/null \+ | sed -n 's/^.* -lgcc_s\([^ ]*\) .*$/\1/p'`+ rm -f conftest.c conftest.so+ if test x${libat_libgcc_s_suffix+set} = xset; then+ CFLAGS=" -lgcc_s$libat_libgcc_s_suffix"+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext+/* end confdefs.h. */++int+main ()+{+return 0;+ ;+ return 0;+}+_ACEOF+if ac_fn_c_try_link "$LINENO"; then :+ libat_shared_libgcc=yes+fi+rm -f core conftest.err conftest.$ac_objext \+ conftest$ac_exeext conftest.$ac_ext+ CFLAGS="$ac_save_CFLAGS"+ fi+ fi+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $libat_shared_libgcc" >&5+$as_echo "$libat_shared_libgcc" >&6; }+fi++# For GNU ld, we need at least this version. The format is described in+# LIBFFI_CHECK_LINKER_FEATURES above.+libat_min_gnu_ld_version=21400+# XXXXXXXXXXX libat_gnu_ld_version=21390++# Check to see if unspecified "yes" value can win, given results above.+# Change "yes" into either "no" or a style name.+if test $enable_symvers != no && test $libat_shared_libgcc = yes; then+ if test $with_gnu_ld = yes; then+ if test $libat_gnu_ld_version -ge $libat_min_gnu_ld_version ; then+ enable_symvers=gnu+ elif test $libat_ld_is_gold = yes ; then+ enable_symvers=gnu+ elif test $libat_ld_is_lld = yes ; then+ enable_symvers=gnu+ elif test $libat_ld_is_mold = yes ; then+ enable_symvers=gnu+ else+ # The right tools, the right setup, but too old. Fallbacks?+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Linker version $libat_gnu_ld_version is too old for" >&5+$as_echo "$as_me: WARNING: === Linker version $libat_gnu_ld_version is too old for" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === full symbol versioning support in this release of GCC." >&5+$as_echo "$as_me: WARNING: === full symbol versioning support in this release of GCC." >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === You would need to upgrade your binutils to version" >&5+$as_echo "$as_me: WARNING: === You would need to upgrade your binutils to version" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === $libat_min_gnu_ld_version or later and rebuild GCC." >&5+$as_echo "$as_me: WARNING: === $libat_min_gnu_ld_version or later and rebuild GCC." >&2;}+ if test $libat_gnu_ld_version -ge 21200 ; then+ # Globbing fix is present, proper block support is not.+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5+$as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}+ enable_symvers=no+ else+ # 2.11 or older.+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5+$as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}+ enable_symvers=no+ fi+ fi+ elif test $enable_symvers = sun; then+ : All interesting versions of Sun ld support sun style symbol versioning.+ else+ # just fail for now+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === You have requested some kind of symbol versioning, but" >&5+$as_echo "$as_me: WARNING: === You have requested some kind of symbol versioning, but" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === either you are not using a supported linker, or you are" >&5+$as_echo "$as_me: WARNING: === either you are not using a supported linker, or you are" >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === not building a shared libgcc_s (which is required)." >&5+$as_echo "$as_me: WARNING: === not building a shared libgcc_s (which is required)." >&2;}+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: === Symbol versioning will be disabled." >&5+$as_echo "$as_me: WARNING: === Symbol versioning will be disabled." >&2;}+ enable_symvers=no+ fi+fi+if test $enable_symvers = gnu; then++$as_echo "#define LIBFFI_GNU_SYMBOL_VERSIONING 1" >>confdefs.h++fi++ if test $enable_symvers != no; then+ LIBFFI_BUILD_VERSIONED_SHLIB_TRUE=+ LIBFFI_BUILD_VERSIONED_SHLIB_FALSE='#'+else+ LIBFFI_BUILD_VERSIONED_SHLIB_TRUE='#'+ LIBFFI_BUILD_VERSIONED_SHLIB_FALSE=+fi++ if test $enable_symvers = gnu; then+ LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE=+ LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE='#'+else+ LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE='#'+ LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE=+fi++ if test $enable_symvers = sun; then+ LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE=+ LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE='#'+else+ LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE='#'+ LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE=+fi++{ $as_echo "$as_me:${as_lineno-$LINENO}: versioning on shared library symbols is $enable_symvers" >&5+$as_echo "$as_me: versioning on shared library symbols is $enable_symvers" >&6;}+++ac_config_files="$ac_config_files include/ffi.h"+++EXTRA_LIBS=` printf " %s " "$LIBS" | sed -E 's/ -l([^ ]*)/\1 /g' `++ac_config_files="$ac_config_files libffi-clib.buildinfo"+++cat >confcache <<\_ACEOF+# This file is a shell script that caches the results of configure+# tests run on this system so they can be shared between configure+# scripts and configure runs, see configure's option --config-cache.+# It is not useful on other systems. If it contains results you don't+# want to keep, you may remove or edit it.+#+# config.status only pays attention to the cache file if you give it+# the --recheck option to rerun configure.+#+# `ac_cv_env_foo' variables (set or unset) will be overridden when+# loading this file, other *unset* `ac_cv_foo' will be assigned the+# following values.++_ACEOF++# The following way of writing the cache mishandles newlines in values,+# but we know of no workaround that is simple, portable, and efficient.+# So, we kill variables containing newlines.+# Ultrix sh set writes to stderr and can't be redirected directly,+# and sets the high bit in the cache file unless we assign to the vars.+(+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do+ eval ac_val=\$$ac_var+ case $ac_val in #(+ *${as_nl}*)+ case $ac_var in #(+ *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+ esac+ case $ac_var in #(+ _ | IFS | as_nl) ;; #(+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+ *) { eval $ac_var=; unset $ac_var;} ;;+ esac ;;+ esac+ done++ (set) 2>&1 |+ case $as_nl`(ac_space=' '; set) 2>&1` in #(+ *${as_nl}ac_space=\ *)+ # `set' does not quote correctly, so add quotes: double-quote+ # substitution turns \\\\ into \\, and sed turns \\ into \.+ sed -n \+ "s/'/'\\\\''/g;+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"+ ;; #(+ *)+ # `set' quotes correctly as required by POSIX, so do not add quotes.+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+ ;;+ esac |+ sort+) |+ sed '+ /^ac_cv_env_/b end+ t clear+ :clear+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/+ t end+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/+ :end' >>confcache+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else+ if test -w "$cache_file"; then+ if test "x$cache_file" != "x/dev/null"; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5+$as_echo "$as_me: updating cache $cache_file" >&6;}+ if test ! -f "$cache_file" || test -h "$cache_file"; then+ cat confcache >"$cache_file"+ else+ case $cache_file in #(+ */* | ?:*)+ mv -f confcache "$cache_file"$$ &&+ mv -f "$cache_file"$$ "$cache_file" ;; #(+ *)+ mv -f confcache "$cache_file" ;;+ esac+ fi+ fi+ else+ { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}+ fi+fi+rm -f confcache++test "x$prefix" = xNONE && prefix=$ac_default_prefix+# Let make expand exec_prefix.+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'++DEFS=-DHAVE_CONFIG_H++ac_libobjs=+ac_ltlibobjs=+U=+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue+ # 1. Remove the extension, and $U if already installed.+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR+ # will be set to the directory where LIBOBJS objects are built.+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'+done+LIBOBJS=$ac_libobjs++LTLIBOBJS=$ac_ltlibobjs+++if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then+ as_fn_error $? "conditional \"AMDEP\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then+ as_fn_error $? "conditional \"am__fastdepCCAS\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then+ as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi++if test -z "${FFI_EXEC_TRAMPOLINE_TABLE_TRUE}" && test -z "${FFI_EXEC_TRAMPOLINE_TABLE_FALSE}"; then+ as_fn_error $? "conditional \"FFI_EXEC_TRAMPOLINE_TABLE\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then+ as_fn_error $? "conditional \"FFI_DEBUG\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${FFI_DEBUG_TRUE}" && test -z "${FFI_DEBUG_FALSE}"; then+ as_fn_error $? "conditional \"FFI_DEBUG\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_TRUE}" && test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_FALSE}"; then+ as_fn_error $? "conditional \"LIBFFI_BUILD_VERSIONED_SHLIB\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_GNU_TRUE}" && test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_GNU_FALSE}"; then+ as_fn_error $? "conditional \"LIBFFI_BUILD_VERSIONED_SHLIB_GNU\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi+if test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_SUN_TRUE}" && test -z "${LIBFFI_BUILD_VERSIONED_SHLIB_SUN_FALSE}"; then+ as_fn_error $? "conditional \"LIBFFI_BUILD_VERSIONED_SHLIB_SUN\" was never defined.+Usually this means the macro was only invoked conditionally." "$LINENO" 5+fi++: "${CONFIG_STATUS=./config.status}"+ac_write_fail=0+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files $CONFIG_STATUS"+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}+as_write_fail=0+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1+#! $SHELL+# Generated by $as_me.+# Run this file to recreate the current configuration.+# Compiler output produced by configure, useful for debugging+# configure, is in config.log if it exists.++debug=false+ac_cs_recheck=false+ac_cs_silent=false++SHELL=\${CONFIG_SHELL-$SHELL}+export SHELL+_ASEOF+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1+## -------------------- ##+## M4sh Initialization. ##+## -------------------- ##++# Be more Bourne compatible+DUALCASE=1; export DUALCASE # for MKS sh+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '${1+"$@"}'='"$@"'+ setopt NO_GLOB_SUBST+else+ case `(set -o) 2>/dev/null` in #(+ *posix*) :+ set -o posix ;; #(+ *) :+ ;;+esac+fi+++as_nl='+'+export as_nl+# Printing a long string crashes Solaris 7 /usr/bin/printf.+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo+# Prefer a ksh shell builtin over an external printf program on Solaris,+# but without wasting forks for bash or zsh.+if test -z "$BASH_VERSION$ZSH_VERSION" \+ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then+ as_echo='print -r --'+ as_echo_n='print -rn --'+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then+ as_echo='printf %s\n'+ as_echo_n='printf %s'+else+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'+ as_echo_n='/usr/ucb/echo -n'+ else+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'+ as_echo_n_body='eval+ arg=$1;+ case $arg in #(+ *"$as_nl"*)+ expr "X$arg" : "X\\(.*\\)$as_nl";+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;+ esac;+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"+ '+ export as_echo_n_body+ as_echo_n='sh -c $as_echo_n_body as_echo'+ fi+ export as_echo_body+ as_echo='sh -c $as_echo_body as_echo'+fi++# The user is always right.+if test "${PATH_SEPARATOR+set}" != set; then+ PATH_SEPARATOR=:+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||+ PATH_SEPARATOR=';'+ }+fi+++# IFS+# We need space, tab and new line, in precisely that order. Quoting is+# there to prevent editors from complaining about space-tab.+# (If _AS_PATH_WALK were called with IFS unset, it would disable word+# splitting by setting IFS to empty value.)+IFS=" "" $as_nl"++# Find who we are. Look in the path if we contain no directory separator.+as_myself=+case $0 in #((+ *[\\/]* ) as_myself=$0 ;;+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break+ done+IFS=$as_save_IFS++ ;;+esac+# We did not find ourselves, most probably we were run as `sh COMMAND'+# in which case we are not to be found in the path.+if test "x$as_myself" = x; then+ as_myself=$0+fi+if test ! -f "$as_myself"; then+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2+ exit 1+fi++# Unset variables that we do not need and which cause bugs (e.g. in+# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1"+# suppresses any "Segmentation fault" message there. '((' could+# trigger a bug in pdksh 5.2.14.+for as_var in BASH_ENV ENV MAIL MAILPATH+do eval test x\${$as_var+set} = xset \+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :+done+PS1='$ '+PS2='> '+PS4='+ '++# NLS nuisances.+LC_ALL=C+export LC_ALL+LANGUAGE=C+export LANGUAGE++# CDPATH.+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH+++# as_fn_error STATUS ERROR [LINENO LOG_FD]+# ----------------------------------------+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the+# script with STATUS, using 1 if that was 0.+as_fn_error ()+{+ as_status=$1; test $as_status -eq 0 && as_status=1+ if test "$4"; then+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack+ $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4+ fi+ $as_echo "$as_me: error: $2" >&2+ as_fn_exit $as_status+} # as_fn_error+++# as_fn_set_status STATUS+# -----------------------+# Set $? to STATUS, without forking.+as_fn_set_status ()+{+ return $1+} # as_fn_set_status++# as_fn_exit STATUS+# -----------------+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.+as_fn_exit ()+{+ set +e+ as_fn_set_status $1+ exit $1+} # as_fn_exit++# as_fn_unset VAR+# ---------------+# Portably unset VAR.+as_fn_unset ()+{+ { eval $1=; unset $1;}+}+as_unset=as_fn_unset+# as_fn_append VAR VALUE+# ----------------------+# Append the text in VALUE to the end of the definition contained in VAR. Take+# advantage of any shell optimizations that allow amortized linear growth over+# repeated appends, instead of the typical quadratic growth present in naive+# implementations.+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :+ eval 'as_fn_append ()+ {+ eval $1+=\$2+ }'+else+ as_fn_append ()+ {+ eval $1=\$$1\$2+ }+fi # as_fn_append++# as_fn_arith ARG...+# ------------------+# Perform arithmetic evaluation on the ARGs, and store the result in the+# global $as_val. Take advantage of shells that can avoid forks. The arguments+# must be portable across $(()) and expr.+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :+ eval 'as_fn_arith ()+ {+ as_val=$(( $* ))+ }'+else+ as_fn_arith ()+ {+ as_val=`expr "$@" || test $? -eq 1`+ }+fi # as_fn_arith+++if expr a : '\(a\)' >/dev/null 2>&1 &&+ test "X`expr 00001 : '.*\(...\)'`" = X001; then+ as_expr=expr+else+ as_expr=false+fi++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then+ as_basename=basename+else+ as_basename=false+fi++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then+ as_dirname=dirname+else+ as_dirname=false+fi++as_me=`$as_basename -- "$0" ||+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \+ X"$0" : 'X\(//\)$' \| \+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$0" |+ sed '/^.*\/\([^/][^/]*\)\/*$/{+ s//\1/+ q+ }+ /^X\/\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\/\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`++# Avoid depending upon Character Ranges.+as_cr_letters='abcdefghijklmnopqrstuvwxyz'+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+as_cr_Letters=$as_cr_letters$as_cr_LETTERS+as_cr_digits='0123456789'+as_cr_alnum=$as_cr_Letters$as_cr_digits++ECHO_C= ECHO_N= ECHO_T=+case `echo -n x` in #(((((+-n*)+ case `echo 'xy\c'` in+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.+ xy) ECHO_C='\c';;+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null+ ECHO_T=' ';;+ esac;;+*)+ ECHO_N='-n';;+esac++rm -f conf$$ conf$$.exe conf$$.file+if test -d conf$$.dir; then+ rm -f conf$$.dir/conf$$.file+else+ rm -f conf$$.dir+ mkdir conf$$.dir 2>/dev/null+fi+if (echo >conf$$.file) 2>/dev/null; then+ if ln -s conf$$.file conf$$ 2>/dev/null; then+ as_ln_s='ln -s'+ # ... but there are two gotchas:+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.+ # In both cases, we have to default to `cp -pR'.+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||+ as_ln_s='cp -pR'+ elif ln conf$$.file conf$$ 2>/dev/null; then+ as_ln_s=ln+ else+ as_ln_s='cp -pR'+ fi+else+ as_ln_s='cp -pR'+fi+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file+rmdir conf$$.dir 2>/dev/null+++# as_fn_mkdir_p+# -------------+# Create "$as_dir" as a directory, including parents if necessary.+as_fn_mkdir_p ()+{++ case $as_dir in #(+ -*) as_dir=./$as_dir;;+ esac+ test -d "$as_dir" || eval $as_mkdir_p || {+ as_dirs=+ while :; do+ case $as_dir in #(+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(+ *) as_qdir=$as_dir;;+ esac+ as_dirs="'$as_qdir' $as_dirs"+ as_dir=`$as_dirname -- "$as_dir" ||+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$as_dir" : 'X\(//\)[^/]' \| \+ X"$as_dir" : 'X\(//\)$' \| \+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_dir" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ test -d "$as_dir" && break+ done+ test -z "$as_dirs" || eval "mkdir $as_dirs"+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"+++} # as_fn_mkdir_p+if mkdir -p . 2>/dev/null; then+ as_mkdir_p='mkdir -p "$as_dir"'+else+ test -d ./-p && rmdir ./-p+ as_mkdir_p=false+fi+++# as_fn_executable_p FILE+# -----------------------+# Test if FILE is an executable regular file.+as_fn_executable_p ()+{+ test -f "$1" && test -x "$1"+} # as_fn_executable_p+as_test_x='test -x'+as_executable_p=as_fn_executable_p++# Sed expression to map a string onto a valid CPP name.+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"++# Sed expression to map a string onto a valid variable name.+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"+++exec 6>&1+## ----------------------------------- ##+## Main body of $CONFIG_STATUS script. ##+## ----------------------------------- ##+_ASEOF+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# Save the log message, to keep $0 and so on meaningful, and to+# report actual input values of CONFIG_FILES etc. instead of their+# values after options handling.+ac_log="+This file was extended by libffi $as_me 3.6.0, which was+generated by GNU Autoconf 2.69. Invocation command line was++ CONFIG_FILES = $CONFIG_FILES+ CONFIG_HEADERS = $CONFIG_HEADERS+ CONFIG_LINKS = $CONFIG_LINKS+ CONFIG_COMMANDS = $CONFIG_COMMANDS+ $ $0 $@++on `(hostname || uname -n) 2>/dev/null | sed 1q`+"++_ACEOF++case $ac_config_files in *"+"*) set x $ac_config_files; shift; ac_config_files=$*;;+esac++case $ac_config_headers in *"+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;+esac+++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+# Files that config.status was made for.+config_files="$ac_config_files"+config_headers="$ac_config_headers"+config_commands="$ac_config_commands"++_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+ac_cs_usage="\+\`$as_me' instantiates files and other configuration actions+from templates according to the current configuration. Unless the files+and actions are specified as TAGs, all are instantiated by default.++Usage: $0 [OPTION]... [TAG]...++ -h, --help print this help, then exit+ -V, --version print version number and configuration settings, then exit+ --config print configuration, then exit+ -q, --quiet, --silent+ do not print progress messages+ -d, --debug don't remove temporary files+ --recheck update $as_me by reconfiguring in the same conditions+ --file=FILE[:TEMPLATE]+ instantiate the configuration file FILE+ --header=FILE[:TEMPLATE]+ instantiate the configuration header FILE++Configuration files:+$config_files++Configuration headers:+$config_headers++Configuration commands:+$config_commands++Report bugs to <http://github.com/libffi/libffi/issues>."++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"+ac_cs_version="\\+libffi config.status 3.6.0+configured by $0, generated by GNU Autoconf 2.69,+ with options \\"\$ac_cs_config\\"++Copyright (C) 2012 Free Software Foundation, Inc.+This config.status script is free software; the Free Software Foundation+gives unlimited permission to copy, distribute and modify it."++ac_pwd='$ac_pwd'+srcdir='$srcdir'+AWK='$AWK'+test -n "\$AWK" || AWK=awk+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# The default lists apply if the user does not specify any file.+ac_need_defaults=:+while test $# != 0+do+ case $1 in+ --*=?*)+ ac_option=`expr "X$1" : 'X\([^=]*\)='`+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`+ ac_shift=:+ ;;+ --*=)+ ac_option=`expr "X$1" : 'X\([^=]*\)='`+ ac_optarg=+ ac_shift=:+ ;;+ *)+ ac_option=$1+ ac_optarg=$2+ ac_shift=shift+ ;;+ esac++ case $ac_option in+ # Handling of the options.+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)+ ac_cs_recheck=: ;;+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )+ $as_echo "$ac_cs_version"; exit ;;+ --config | --confi | --conf | --con | --co | --c )+ $as_echo "$ac_cs_config"; exit ;;+ --debug | --debu | --deb | --de | --d | -d )+ debug=: ;;+ --file | --fil | --fi | --f )+ $ac_shift+ case $ac_optarg in+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;+ '') as_fn_error $? "missing file argument" ;;+ esac+ as_fn_append CONFIG_FILES " '$ac_optarg'"+ ac_need_defaults=false;;+ --header | --heade | --head | --hea )+ $ac_shift+ case $ac_optarg in+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;+ esac+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"+ ac_need_defaults=false;;+ --he | --h)+ # Conflict between --help and --header+ as_fn_error $? "ambiguous option: \`$1'+Try \`$0 --help' for more information.";;+ --help | --hel | -h )+ $as_echo "$ac_cs_usage"; exit ;;+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil | --si | --s)+ ac_cs_silent=: ;;++ # This is an error.+ -*) as_fn_error $? "unrecognized option: \`$1'+Try \`$0 --help' for more information." ;;++ *) as_fn_append ac_config_targets " $1"+ ac_need_defaults=false ;;++ esac+ shift+done++ac_configure_extra_args=++if $ac_cs_silent; then+ exec 6>/dev/null+ ac_configure_extra_args="$ac_configure_extra_args --silent"+fi++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+if \$ac_cs_recheck; then+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion+ shift+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6+ CONFIG_SHELL='$SHELL'+ export CONFIG_SHELL+ exec "\$@"+fi++_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+exec 5>>config.log+{+ echo+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX+## Running $as_me. ##+_ASBOX+ $as_echo "$ac_log"+} >&5++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+#+# INIT-COMMANDS+#+ax_enable_builddir_srcdir="$srcdir" # $srcdir+ax_enable_builddir_host="$HOST" # $HOST / $host+ax_enable_builddir_version="$VERSION" # $VERSION+ax_enable_builddir_package="$PACKAGE" # $PACKAGE+ax_enable_builddir_auxdir="$ax_enable_builddir_auxdir" # $AUX+ax_enable_builddir_sed="$ax_enable_builddir_sed" # $SED+ax_enable_builddir="$ax_enable_builddir" # $SUB++AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"+++# The HP-UX ksh and POSIX shell print the target directory to stdout+# if CDPATH is set.+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH++sed_quote_subst='$sed_quote_subst'+double_quote_subst='$double_quote_subst'+delay_variable_subst='$delay_variable_subst'+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'+FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'+lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'+compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'+predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'+postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'+predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'+postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'+compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'+LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'+reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'+reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'+old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'+compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'+GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'+lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'+lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'+archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'+enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'+export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'+whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'+compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'+old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'+old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'+archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'+archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'+module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'+module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'+with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'+allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'+no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'+inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'+link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'+always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'+export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'+exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'+include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'+prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'+postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'+file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'+hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'+compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'+predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'+postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'+predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'+postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'+compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'++LTCC='$LTCC'+LTCFLAGS='$LTCFLAGS'+compiler='$compiler_DEFAULT'++# A function that is used when there is no print builtin or printf.+func_fallback_echo ()+{+ eval 'cat <<_LTECHO_EOF+\$1+_LTECHO_EOF'+}++# Quote evaled strings.+for var in SHELL \+ECHO \+PATH_SEPARATOR \+SED \+GREP \+EGREP \+FGREP \+LD \+NM \+LN_S \+lt_SP2NL \+lt_NL2SP \+reload_flag \+FILECMD \+OBJDUMP \+deplibs_check_method \+file_magic_cmd \+file_magic_glob \+want_nocaseglob \+DLLTOOL \+sharedlib_from_linklib_cmd \+AR \+archiver_list_spec \+STRIP \+RANLIB \+CC \+CFLAGS \+compiler \+lt_cv_sys_global_symbol_pipe \+lt_cv_sys_global_symbol_to_cdecl \+lt_cv_sys_global_symbol_to_import \+lt_cv_sys_global_symbol_to_c_name_address \+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \+lt_cv_nm_interface \+nm_file_list_spec \+lt_cv_truncate_bin \+lt_prog_compiler_no_builtin_flag \+lt_prog_compiler_pic \+lt_prog_compiler_wl \+lt_prog_compiler_static \+lt_cv_prog_compiler_c_o \+need_locks \+MANIFEST_TOOL \+DSYMUTIL \+NMEDIT \+LIPO \+OTOOL \+OTOOL64 \+shrext_cmds \+export_dynamic_flag_spec \+whole_archive_flag_spec \+compiler_needs_object \+with_gnu_ld \+allow_undefined_flag \+no_undefined_flag \+hardcode_libdir_flag_spec \+hardcode_libdir_separator \+exclude_expsyms \+include_expsyms \+file_list_spec \+variables_saved_for_relink \+libname_spec \+library_names_spec \+soname_spec \+install_override_mode \+finish_eval \+old_striplib \+striplib \+compiler_lib_search_dirs \+predep_objects \+postdep_objects \+predeps \+postdeps \+compiler_lib_search_path \+LD_CXX \+reload_flag_CXX \+compiler_CXX \+lt_prog_compiler_no_builtin_flag_CXX \+lt_prog_compiler_pic_CXX \+lt_prog_compiler_wl_CXX \+lt_prog_compiler_static_CXX \+lt_cv_prog_compiler_c_o_CXX \+export_dynamic_flag_spec_CXX \+whole_archive_flag_spec_CXX \+compiler_needs_object_CXX \+with_gnu_ld_CXX \+allow_undefined_flag_CXX \+no_undefined_flag_CXX \+hardcode_libdir_flag_spec_CXX \+hardcode_libdir_separator_CXX \+exclude_expsyms_CXX \+include_expsyms_CXX \+file_list_spec_CXX \+compiler_lib_search_dirs_CXX \+predep_objects_CXX \+postdep_objects_CXX \+predeps_CXX \+postdeps_CXX \+compiler_lib_search_path_CXX; do+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in+ *[\\\\\\\`\\"\\\$]*)+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes+ ;;+ *)+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""+ ;;+ esac+done++# Double-quote double-evaled strings.+for var in reload_cmds \+old_postinstall_cmds \+old_postuninstall_cmds \+old_archive_cmds \+extract_expsyms_cmds \+old_archive_from_new_cmds \+old_archive_from_expsyms_cmds \+archive_cmds \+archive_expsym_cmds \+module_cmds \+module_expsym_cmds \+export_symbols_cmds \+prelink_cmds \+postlink_cmds \+postinstall_cmds \+postuninstall_cmds \+finish_cmds \+sys_lib_search_path_spec \+configure_time_dlsearch_path \+configure_time_lt_sys_library_path \+reload_cmds_CXX \+old_archive_cmds_CXX \+old_archive_from_new_cmds_CXX \+old_archive_from_expsyms_cmds_CXX \+archive_cmds_CXX \+archive_expsym_cmds_CXX \+module_cmds_CXX \+module_expsym_cmds_CXX \+export_symbols_cmds_CXX \+prelink_cmds_CXX \+postlink_cmds_CXX; do+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in+ *[\\\\\\\`\\"\\\$]*)+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes+ ;;+ *)+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""+ ;;+ esac+done++ac_aux_dir='$ac_aux_dir'++# See if we are running on zsh, and set the options that allow our+# commands through without removal of \ escapes INIT.+if test -n "\${ZSH_VERSION+set}"; then+ setopt NO_GLOB_SUBST+fi+++ PACKAGE='$PACKAGE'+ VERSION='$VERSION'+ RM='$RM'+ ofile='$ofile'+++++++_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1++# Handling of arguments.+for ac_config_target in $ac_config_targets+do+ case $ac_config_target in+ "fficonfig.h") CONFIG_HEADERS="$CONFIG_HEADERS fficonfig.h" ;;+ "buildir") CONFIG_COMMANDS="$CONFIG_COMMANDS buildir" ;;+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;+ "include/ffi.h") CONFIG_FILES="$CONFIG_FILES include/ffi.h" ;;+ "libffi-clib.buildinfo") CONFIG_FILES="$CONFIG_FILES libffi-clib.buildinfo" ;;++ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;+ esac+done+++# If the user did not use the arguments to specify the items to instantiate,+# then the envvar interface is used. Set only those that are not.+# We use the long form for the default assignment because of an extremely+# bizarre bug on SunOS 4.1.3.+if $ac_need_defaults; then+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands+fi++# Have a temporary directory for convenience. Make it in the build tree+# simply because there is no reason against having it here, and in addition,+# creating and moving files from /tmp can sometimes cause problems.+# Hook for its removal unless debugging.+# Note that there is a small window in which the directory will not be cleaned:+# after its creation but before its name has been assigned to `$tmp'.+$debug ||+{+ tmp= ac_tmp=+ trap 'exit_status=$?+ : "${ac_tmp:=$tmp}"+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status+' 0+ trap 'as_fn_exit 1' 1 2 13 15+}+# Create a (secure) tmp directory for tmp files.++{+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&+ test -d "$tmp"+} ||+{+ tmp=./conf$$-$RANDOM+ (umask 077 && mkdir "$tmp")+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5+ac_tmp=$tmp++# Set up the scripts for CONFIG_FILES section.+# No need to generate them if there are no CONFIG_FILES.+# This happens for instance with `./config.status config.h'.+if test -n "$CONFIG_FILES"; then+++ac_cr=`echo X | tr X '\015'`+# On cygwin, bash can eat \r inside `` if the user requested igncr.+# But we know of no other shell where ac_cr would be empty at this+# point, so we can use a bashism as a fallback.+if test "x$ac_cr" = x; then+ eval ac_cr=\$\'\\r\'+fi+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then+ ac_cs_awk_cr='\\r'+else+ ac_cs_awk_cr=$ac_cr+fi++echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&+_ACEOF+++{+ echo "cat >conf$$subs.awk <<_ACEOF" &&+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&+ echo "_ACEOF"+} >conf$$subs.sh ||+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`+ac_delim='%!_!# '+for ac_last_try in false false false false false :; do+ . ./conf$$subs.sh ||+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5++ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`+ if test $ac_delim_n = $ac_delim_num; then+ break+ elif $ac_last_try; then+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5+ else+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "+ fi+done+rm -f conf$$subs.sh++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&+_ACEOF+sed -n '+h+s/^/S["/; s/!.*/"]=/+p+g+s/^[^!]*!//+:repl+t repl+s/'"$ac_delim"'$//+t delim+:nl+h+s/\(.\{148\}\)..*/\1/+t more1+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/+p+n+b repl+:more1+s/["\\]/\\&/g; s/^/"/; s/$/"\\/+p+g+s/.\{148\}//+t nl+:delim+h+s/\(.\{148\}\)..*/\1/+t more2+s/["\\]/\\&/g; s/^/"/; s/$/"/+p+b+:more2+s/["\\]/\\&/g; s/^/"/; s/$/"\\/+p+g+s/.\{148\}//+t delim+' <conf$$subs.awk | sed '+/^[^""]/{+ N+ s/\n//+}+' >>$CONFIG_STATUS || ac_write_fail=1+rm -f conf$$subs.awk+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+_ACAWK+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&+ for (key in S) S_is_set[key] = 1+ FS = ""++}+{+ line = $ 0+ nfields = split(line, field, "@")+ substed = 0+ len = length(field[1])+ for (i = 2; i < nfields; i++) {+ key = field[i]+ keylen = length(key)+ if (S_is_set[key]) {+ value = S[key]+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)+ len += length(value) + length(field[++i])+ substed = 1+ } else+ len += 1 + keylen+ }++ print line+}++_ACAWK+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"+else+ cat+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5+_ACEOF++# VPATH may cause trouble with some makes, so we remove sole $(srcdir),+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and+# trailing colons and then remove the whole line if VPATH becomes empty+# (actually we leave an empty line to preserve line numbers).+if test "x$srcdir" = x.; then+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{+h+s///+s/^/:/+s/[ ]*$/:/+s/:\$(srcdir):/:/g+s/:\${srcdir}:/:/g+s/:@srcdir@:/:/g+s/^:*//+s/:*$//+x+s/\(=[ ]*\).*/\1/+G+s/\n//+s/^[^=]*=[ ]*$//+}'+fi++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+fi # test -n "$CONFIG_FILES"++# Set up the scripts for CONFIG_HEADERS section.+# No need to generate them if there are no CONFIG_HEADERS.+# This happens for instance with `./config.status Makefile'.+if test -n "$CONFIG_HEADERS"; then+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||+BEGIN {+_ACEOF++# Transform confdefs.h into an awk script `defines.awk', embedded as+# here-document in config.status, that substitutes the proper values into+# config.h.in to produce config.h.++# Create a delimiter string that does not exist in confdefs.h, to ease+# handling of long lines.+ac_delim='%!_!# '+for ac_last_try in false false :; do+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`+ if test -z "$ac_tt"; then+ break+ elif $ac_last_try; then+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5+ else+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "+ fi+done++# For the awk script, D is an array of macro values keyed by name,+# likewise P contains macro parameters if any. Preserve backslash+# newline sequences.++ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*+sed -n '+s/.\{148\}/&'"$ac_delim"'/g+t rset+:rset+s/^[ ]*#[ ]*define[ ][ ]*/ /+t def+d+:def+s/\\$//+t bsnl+s/["\\]/\\&/g+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\+D["\1"]=" \3"/p+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p+d+:bsnl+s/["\\]/\\&/g+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\+D["\1"]=" \3\\\\\\n"\\/p+t cont+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p+t cont+d+:cont+n+s/.\{148\}/&'"$ac_delim"'/g+t clear+:clear+s/\\$//+t bsnlc+s/["\\]/\\&/g; s/^/"/; s/$/"/p+d+:bsnlc+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p+b cont+' <confdefs.h | sed '+s/'"$ac_delim"'/"\\\+"/g' >>$CONFIG_STATUS || ac_write_fail=1++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ for (key in D) D_is_set[key] = 1+ FS = ""+}+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {+ line = \$ 0+ split(line, arg, " ")+ if (arg[1] == "#") {+ defundef = arg[2]+ mac1 = arg[3]+ } else {+ defundef = substr(arg[1], 2)+ mac1 = arg[2]+ }+ split(mac1, mac2, "(") #)+ macro = mac2[1]+ prefix = substr(line, 1, index(line, defundef) - 1)+ if (D_is_set[macro]) {+ # Preserve the white space surrounding the "#".+ print prefix "define", macro P[macro] D[macro]+ next+ } else {+ # Replace #undef with comments. This is necessary, for example,+ # in the case of _POSIX_SOURCE, which is predefined and required+ # on some systems where configure will not decide to define it.+ if (defundef == "undef") {+ print "/*", prefix defundef, macro, "*/"+ next+ }+ }+}+{ print }+_ACAWK+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5+fi # test -n "$CONFIG_HEADERS"+++eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"+shift+for ac_tag+do+ case $ac_tag in+ :[FHLC]) ac_mode=$ac_tag; continue;;+ esac+ case $ac_mode$ac_tag in+ :[FHL]*:*);;+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;+ :[FH]-) ac_tag=-:-;;+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;+ esac+ ac_save_IFS=$IFS+ IFS=:+ set x $ac_tag+ IFS=$ac_save_IFS+ shift+ ac_file=$1+ shift++ case $ac_mode in+ :L) ac_source=$1;;+ :[FH])+ ac_file_inputs=+ for ac_f+ do+ case $ac_f in+ -) ac_f="$ac_tmp/stdin";;+ *) # Look for the file first in the build tree, then in the source tree+ # (if the path is not absolute). The absolute path cannot be DOS-style,+ # because $ac_f cannot contain `:'.+ test -f "$ac_f" ||+ case $ac_f in+ [\\/$]*) false;;+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;+ esac ||+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;+ esac+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac+ as_fn_append ac_file_inputs " '$ac_f'"+ done++ # Let's still pretend it is `configure' which instantiates (i.e., don't+ # use $as_me), people would be surprised to read:+ # /* config.h. Generated by config.status. */+ configure_input='Generated from '`+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'+ `' by configure.'+ if test x"$ac_file" != x-; then+ configure_input="$ac_file. $configure_input"+ { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5+$as_echo "$as_me: creating $ac_file" >&6;}+ fi+ # Neutralize special characters interpreted by sed in replacement strings.+ case $configure_input in #(+ *\&* | *\|* | *\\* )+ ac_sed_conf_input=`$as_echo "$configure_input" |+ sed 's/[\\\\&|]/\\\\&/g'`;; #(+ *) ac_sed_conf_input=$configure_input;;+ esac++ case $ac_tag in+ *:-:* | *:-) cat >"$ac_tmp/stdin" \+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;+ esac+ ;;+ esac++ ac_dir=`$as_dirname -- "$ac_file" ||+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$ac_file" : 'X\(//\)[^/]' \| \+ X"$ac_file" : 'X\(//\)$' \| \+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$ac_file" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ as_dir="$ac_dir"; as_fn_mkdir_p+ ac_builddir=.++case "$ac_dir" in+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;+*)+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`+ # A ".." for each directory in $ac_dir_suffix.+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`+ case $ac_top_builddir_sub in+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;+ esac ;;+esac+ac_abs_top_builddir=$ac_pwd+ac_abs_builddir=$ac_pwd$ac_dir_suffix+# for backward compatibility:+ac_top_builddir=$ac_top_build_prefix++case $srcdir in+ .) # We are building in place.+ ac_srcdir=.+ ac_top_srcdir=$ac_top_builddir_sub+ ac_abs_top_srcdir=$ac_pwd ;;+ [\\/]* | ?:[\\/]* ) # Absolute name.+ ac_srcdir=$srcdir$ac_dir_suffix;+ ac_top_srcdir=$srcdir+ ac_abs_top_srcdir=$srcdir ;;+ *) # Relative name.+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix+ ac_top_srcdir=$ac_top_build_prefix$srcdir+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;+esac+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix+++ case $ac_mode in+ :F)+ #+ # CONFIG_FILE+ #++_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# If the template does not know about datarootdir, expand it.+# FIXME: This hack should be removed a few years after 2.60.+ac_datarootdir_hack=; ac_datarootdir_seen=+ac_sed_dataroot='+/datarootdir/ {+ p+ q+}+/@datadir@/p+/@docdir@/p+/@infodir@/p+/@localedir@/p+/@mandir@/p'+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in+*datarootdir*) ac_datarootdir_seen=yes;;+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}+_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ ac_datarootdir_hack='+ s&@datadir@&$datadir&g+ s&@docdir@&$docdir&g+ s&@infodir@&$infodir&g+ s&@localedir@&$localedir&g+ s&@mandir@&$mandir&g+ s&\\\${datarootdir}&$datarootdir&g' ;;+esac+_ACEOF++# Neutralize VPATH when `$srcdir' = `.'.+# Shell code in configure.ac might set extrasub.+# FIXME: do we really want to maintain this feature?+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ac_sed_extra="$ac_vpsub+$extrasub+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+:t+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b+s|@configure_input@|$ac_sed_conf_input|;t t+s&@top_builddir@&$ac_top_builddir_sub&;t t+s&@top_build_prefix@&$ac_top_build_prefix&;t t+s&@srcdir@&$ac_srcdir&;t t+s&@abs_srcdir@&$ac_abs_srcdir&;t t+s&@top_srcdir@&$ac_top_srcdir&;t t+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t+s&@builddir@&$ac_builddir&;t t+s&@abs_builddir@&$ac_abs_builddir&;t t+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t+$ac_datarootdir_hack+"+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \+ "$ac_tmp/out"`; test -z "$ac_out"; } &&+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'+which seems to be undefined. Please make sure it is defined" >&5+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'+which seems to be undefined. Please make sure it is defined" >&2;}++ rm -f "$ac_tmp/stdin"+ case $ac_file in+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;+ esac \+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5+ ;;+ :H)+ #+ # CONFIG_HEADER+ #+ if test x"$ac_file" != x-; then+ {+ $as_echo "/* $configure_input */" \+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"+ } >"$ac_tmp/config.h" \+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5+$as_echo "$as_me: $ac_file is unchanged" >&6;}+ else+ rm -f "$ac_file"+ mv "$ac_tmp/config.h" "$ac_file" \+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5+ fi+ else+ $as_echo "/* $configure_input */" \+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \+ || as_fn_error $? "could not create -" "$LINENO" 5+ fi+# Compute "$ac_file"'s index in $config_headers.+_am_arg="$ac_file"+_am_stamp_count=1+for _am_header in $config_headers :; do+ case $_am_header in+ $_am_arg | $_am_arg:* )+ break ;;+ * )+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;+ esac+done+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$_am_arg" : 'X\(//\)[^/]' \| \+ X"$_am_arg" : 'X\(//\)$' \| \+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$_am_arg" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`/stamp-h$_am_stamp_count+ ;;++ :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5+$as_echo "$as_me: executing $ac_file commands" >&6;}+ ;;+ esac+++ case $ac_file$ac_mode in+ "buildir":C) ac_top_srcdir="$ax_enable_builddir_srcdir"+ if test ".$ax_enable_builddir" = ".." ; then+ if test -f "$top_srcdir/Makefile" ; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: skipping top_srcdir/Makefile - left untouched" >&5+$as_echo "$as_me: skipping top_srcdir/Makefile - left untouched" >&6;}+ else+ { $as_echo "$as_me:${as_lineno-$LINENO}: skipping top_srcdir/Makefile - not created" >&5+$as_echo "$as_me: skipping top_srcdir/Makefile - not created" >&6;}+ fi+ else+ if test -f "$ac_top_srcdir/Makefile" ; then+ a=`grep "^VERSION " "$ac_top_srcdir/Makefile"` ; b=`grep "^VERSION " Makefile`+ test "$a" != "$b" && rm "$ac_top_srcdir/Makefile"+ fi+ if test -f "$ac_top_srcdir/Makefile" ; then+ echo "$ac_top_srcdir/Makefile : $ac_top_srcdir/Makefile.in" > $tmp/conftemp.mk+ echo " @ echo 'REMOVED,,,' >\$@" >> $tmp/conftemp.mk+ eval "${MAKE-make} -f $tmp/conftemp.mk 2>/dev/null >/dev/null"+ if grep '^REMOVED,,,' "$ac_top_srcdir/Makefile" >/dev/null+ then rm $ac_top_srcdir/Makefile ; fi+ cp $tmp/conftemp.mk $ac_top_srcdir/makefiles.mk~ ## DEBUGGING+ fi+ if test ! -f "$ac_top_srcdir/Makefile" ; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: create top_srcdir/Makefile guessed from local Makefile" >&5+$as_echo "$as_me: create top_srcdir/Makefile guessed from local Makefile" >&6;}+ x='`' ; cat >$tmp/conftemp.sed <<_EOF+/^\$/n+x+/^\$/bS+x+/\\\\\$/{H;d;}+{H;s/.*//;x;}+bM+:S+x+/\\\\\$/{h;d;}+{h;s/.*//;x;}+:M+s/\\(\\n\\) /\\1 /g+/^ /d+/^[ ]*[\\#]/d+/^VPATH *=/d+s/^srcdir *=.*/srcdir = ./+s/^top_srcdir *=.*/top_srcdir = ./+/[:=]/!d+/^\\./d+/ = /b+/ .= /b+/:/!b+s/:.*/:/+s/ / /g+s/ \\([a-z][a-z-]*[a-zA-Z0-9]\\)\\([ :]\\)/ \\1 \\1-all\\2/g+s/^\\([a-z][a-z-]*[a-zA-Z0-9]\\)\\([ :]\\)/\\1 \\1-all\\2/+s/ / /g+/^all all-all[ :]/i\\+all-configured : all-all+s/ [a-zA-Z0-9-]*-all [a-zA-Z0-9-]*-all-all//g+/-all-all/d+a\\+ @ HOST="\$(HOST)\" \\\\\\+ ; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\+ ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\+ ; use=$x basename "\$\@" -all $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\+ ; echo "MAKE \$\$HOST : \$\$n * \$\@"; if test "\$\$n" -eq "0" ; then : \\\\\\+ ; BUILD=$x grep "^####.*|" Makefile |tail -1| sed -e 's/.*|//' $x ; fi \\\\\\+ ; test ".\$\$BUILD" = "." && BUILD="." \\\\\\+ ; test "\$\$use" = "\$\@" && BUILD=$x echo "\$\$BUILD" | tail -1 $x \\\\\\+ ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\+ ; (cd "\$\$i" && test ! -f configure && \$(MAKE) \$\$use) || exit; done+/dist-all *:/a\\+ @ HOST="\$(HOST)\" \\\\\\+ ; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\+ ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\+ ; found=$x echo \$\$BUILD | wc -w $x \\\\\\+ ; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).tar.*" \\\\\\+ ; if test "\$\$found" -eq "0" ; then : \\\\\\+ ; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\+ ; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\+ ; for f in \$\$i/\$(PACKAGE)-\$(VERSION).tar.* \\\\\\+ ; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done+/dist-[a-zA-Z0-9]*-all *:/a\\+ @ HOST="\$(HOST)\" \\\\\\+ ; test ".\$\$HOST" = "." && HOST=$x sh ./config.guess $x \\\\\\+ ; BUILD=$x grep "^#### \$\$HOST " Makefile | sed -e 's/.*|//' $x \\\\\\+ ; found=$x echo \$\$BUILD | wc -w $x \\\\\\+ ; echo "MAKE \$\$HOST : \$\$found \$(PACKAGE)-\$(VERSION).*" \\\\\\+ ; if test "\$\$found" -eq "0" ; then : \\\\\\+ ; BUILD=$x grep "^#### .*|" Makefile |tail -1| sed -e 's/.*|//' $x \\\\\\+ ; fi ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\+ ; for f in \$\$i/\$(PACKAGE)-\$(VERSION).* \\\\\\+ ; do test -f "\$\$f" && mv "\$\$f" \$(PUB). ; done ; break ; done+/distclean-all *:/a\\+ @ HOST="\$(HOST)\" \\\\\\+ ; test ".\$\$HOST" = "." && HOST=$x sh $ax_enable_builddir_auxdir/config.guess $x \\\\\\+ ; BUILD=$x grep "^#### .*|" Makefile | sed -e 's/.*|//' $x \\\\\\+ ; use=$x basename "\$\@" -all $x; n=$x echo \$\$BUILD | wc -w $x \\\\\\+ ; echo "MAKE \$\$HOST : \$\$n * \$\@ (all local builds)" \\\\\\+ ; test ".\$\$BUILD" = "." && BUILD="." \\\\\\+ ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\+ ; echo "# rm -r \$\$i"; done ; echo "# (sleep 3)" ; sleep 3 \\\\\\+ ; for i in \$\$BUILD ; do test ".\$\$i" = "." && continue \\\\\\+ ; echo "\$\$i" | grep "^/" > /dev/null && continue \\\\\\+ ; echo "\$\$i" | grep "^../" > /dev/null && continue \\\\\\+ ; echo "rm -r \$\$i"; (rm -r "\$\$i") ; done ; rm Makefile+_EOF+ cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefile.sed~" ## DEBUGGING+ $ax_enable_builddir_sed -f $tmp/conftemp.sed Makefile >$ac_top_srcdir/Makefile+ if test -f "$ac_top_srcdir/Makefile.mk" ; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&5+$as_echo "$as_me: extend top_srcdir/Makefile with top_srcdir/Makefile.mk" >&6;}+ cat $ac_top_srcdir/Makefile.mk >>$ac_top_srcdir/Makefile+ fi ; xxxx="####"+ echo "$xxxx CONFIGURATIONS FOR TOPLEVEL MAKEFILE: " >>$ac_top_srcdir/Makefile+ # sanity check+ if grep '^; echo "MAKE ' $ac_top_srcdir/Makefile >/dev/null ; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: buggy sed found - it deletes tab in \"a\" text parts" >&5+$as_echo "$as_me: buggy sed found - it deletes tab in \"a\" text parts" >&6;}+ $ax_enable_builddir_sed -e '/^@ HOST=/s/^/ /' -e '/^; /s/^/ /' $ac_top_srcdir/Makefile \+ >$ac_top_srcdir/Makefile~+ (test -s $ac_top_srcdir/Makefile~ && mv $ac_top_srcdir/Makefile~ $ac_top_srcdir/Makefile) 2>/dev/null+ fi+ else+ xxxx="\\#\\#\\#\\#"+ # echo "/^$xxxx *$ax_enable_builddir_host /d" >$tmp/conftemp.sed+ echo "s!^$xxxx [^|]* | *$ax_enable_builddir *\$!$xxxx ...... $ax_enable_builddir!" >$tmp/conftemp.sed+ $ax_enable_builddir_sed -f "$tmp/conftemp.sed" "$ac_top_srcdir/Makefile" >$tmp/mkfile.tmp+ cp "$tmp/conftemp.sed" "$ac_top_srcdir/makefiles.sed~" ## DEBUGGING+ cp "$tmp/mkfile.tmp" "$ac_top_srcdir/makefiles.out~" ## DEBUGGING+ if cmp -s "$ac_top_srcdir/Makefile" "$tmp/mkfile.tmp" 2>/dev/null ; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: keeping top_srcdir/Makefile from earlier configure" >&5+$as_echo "$as_me: keeping top_srcdir/Makefile from earlier configure" >&6;}+ rm "$tmp/mkfile.tmp"+ else+ { $as_echo "$as_me:${as_lineno-$LINENO}: reusing top_srcdir/Makefile from earlier configure" >&5+$as_echo "$as_me: reusing top_srcdir/Makefile from earlier configure" >&6;}+ mv "$tmp/mkfile.tmp" "$ac_top_srcdir/Makefile"+ fi+ fi+ { $as_echo "$as_me:${as_lineno-$LINENO}: build in $ax_enable_builddir (HOST=$ax_enable_builddir_host)" >&5+$as_echo "$as_me: build in $ax_enable_builddir (HOST=$ax_enable_builddir_host)" >&6;}+ xxxx="####"+ echo "$xxxx" "$ax_enable_builddir_host" "|$ax_enable_builddir" >>$ac_top_srcdir/Makefile+ fi+ ;;+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {+ # Older Autoconf quotes --file arguments for eval, but not when files+ # are listed without --file. Let's play safe and only enable the eval+ # if we detect the quoting.+ # TODO: see whether this extra hack can be removed once we start+ # requiring Autoconf 2.70 or later.+ case $CONFIG_FILES in #(+ *\'*) :+ eval set x "$CONFIG_FILES" ;; #(+ *) :+ set x $CONFIG_FILES ;; #(+ *) :+ ;;+esac+ shift+ # Used to flag and report bootstrapping failures.+ am_rc=0+ for am_mf+ do+ # Strip MF so we end up with the name of the file.+ am_mf=`$as_echo "$am_mf" | sed -e 's/:.*$//'`+ # Check whether this is an Automake generated Makefile which includes+ # dependency-tracking related rules and includes.+ # Grep'ing the whole file directly is not great: AIX grep has a line+ # limit of 2048, but all sed's we know have understand at least 4000.+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \+ || continue+ am_dirpart=`$as_dirname -- "$am_mf" ||+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$am_mf" : 'X\(//\)[^/]' \| \+ X"$am_mf" : 'X\(//\)$' \| \+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$am_mf" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ am_filepart=`$as_basename -- "$am_mf" ||+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \+ X"$am_mf" : 'X\(//\)$' \| \+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$am_mf" |+ sed '/^.*\/\([^/][^/]*\)\/*$/{+ s//\1/+ q+ }+ /^X\/\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\/\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ { echo "$as_me:$LINENO: cd "$am_dirpart" \+ && sed -e '/# am--include-marker/d' "$am_filepart" \+ | $MAKE -f - am--depfiles" >&5+ (cd "$am_dirpart" \+ && sed -e '/# am--include-marker/d' "$am_filepart" \+ | $MAKE -f - am--depfiles) >&5 2>&5+ ac_status=$?+ echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } || am_rc=$?+ done+ if test $am_rc -ne 0; then+ { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+as_fn_error $? "Something went wrong bootstrapping makefile fragments+ for automatic dependency tracking. If GNU make was not used, consider+ re-running the configure script with MAKE=\"gmake\" (or whatever is+ necessary). You can also try re-running configure with the+ '--disable-dependency-tracking' option to at least be able to build+ the package (albeit without support for automatic dependency tracking).+See \`config.log' for more details" "$LINENO" 5; }+ fi+ { am_dirpart=; unset am_dirpart;}+ { am_filepart=; unset am_filepart;}+ { am_mf=; unset am_mf;}+ { am_rc=; unset am_rc;}+ rm -f conftest-deps.mk+}+ ;;+ "libtool":C)++ # See if we are running on zsh, and set the options that allow our+ # commands through without removal of \ escapes.+ if test -n "${ZSH_VERSION+set}"; then+ setopt NO_GLOB_SUBST+ fi++ cfgfile=${ofile}T+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15+ $RM "$cfgfile"++ cat <<_LT_EOF >> "$cfgfile"+#! $SHELL+# Generated automatically by $as_me ($PACKAGE) $VERSION+# NOTE: Changes made to this file will be lost: look at ltmain.sh.++# Provide generalized library-building support services.+# Written by Gordon Matzigkeit, 1996++# Copyright (C) 2014 Free Software Foundation, Inc.+# This is free software; see the source for copying conditions. There is NO+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.++# GNU Libtool 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 2 of of the License, or+# (at your option) any later version.+#+# As a special exception to the GNU General Public License, if you+# distribute this file as part of a program or library that is built+# using GNU Libtool, you may include this file under the same+# distribution terms that you use for the rest of that program.+#+# GNU Libtool 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.+#+# You should have received a copy of the GNU General Public License+# along with this program. If not, see <http://www.gnu.org/licenses/>.+++# The names of the tagged configurations supported by this script.+available_tags='CXX '++# Configured defaults for sys_lib_dlsearch_path munging.+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}++# ### BEGIN LIBTOOL CONFIG++# Which release of libtool.m4 was used?+macro_version=$macro_version+macro_revision=$macro_revision++# Whether or not to build shared libraries.+build_libtool_libs=$enable_shared++# Whether or not to build static libraries.+build_old_libs=$enable_static++# What type of objects to build.+pic_mode=$pic_mode++# Whether or not to optimize for fast installation.+fast_install=$enable_fast_install++# Shared archive member basename,for filename based shared library versioning on AIX.+shared_archive_member_spec=$shared_archive_member_spec++# Shell to use when invoking shell scripts.+SHELL=$lt_SHELL++# An echo program that protects backslashes.+ECHO=$lt_ECHO++# The PATH separator for the build system.+PATH_SEPARATOR=$lt_PATH_SEPARATOR++# The host system.+host_alias=$host_alias+host=$host+host_os=$host_os++# The build system.+build_alias=$build_alias+build=$build+build_os=$build_os++# A sed program that does not truncate output.+SED=$lt_SED++# Sed that helps us avoid accidentally triggering echo(1) options like -n.+Xsed="\$SED -e 1s/^X//"++# A grep program that handles long lines.+GREP=$lt_GREP++# An ERE matcher.+EGREP=$lt_EGREP++# A literal string matcher.+FGREP=$lt_FGREP++# A BSD- or MS-compatible name lister.+NM=$lt_NM++# Whether we need soft or hard links.+LN_S=$lt_LN_S++# What is the maximum length of a command?+max_cmd_len=$max_cmd_len++# Object file suffix (normally "o").+objext=$ac_objext++# Executable file suffix (normally "").+exeext=$exeext++# whether the shell understands "unset".+lt_unset=$lt_unset++# turn spaces into newlines.+SP2NL=$lt_lt_SP2NL++# turn newlines into spaces.+NL2SP=$lt_lt_NL2SP++# convert \$build file names to \$host format.+to_host_file_cmd=$lt_cv_to_host_file_cmd++# convert \$build files to toolchain format.+to_tool_file_cmd=$lt_cv_to_tool_file_cmd++# A file(cmd) program that detects file types.+FILECMD=$lt_FILECMD++# An object symbol dumper.+OBJDUMP=$lt_OBJDUMP++# Method to check whether dependent libraries are shared objects.+deplibs_check_method=$lt_deplibs_check_method++# Command to use when deplibs_check_method = "file_magic".+file_magic_cmd=$lt_file_magic_cmd++# How to find potential files when deplibs_check_method = "file_magic".+file_magic_glob=$lt_file_magic_glob++# Find potential files using nocaseglob when deplibs_check_method = "file_magic".+want_nocaseglob=$lt_want_nocaseglob++# DLL creation program.+DLLTOOL=$lt_DLLTOOL++# Command to associate shared and link libraries.+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd++# The archiver.+AR=$lt_AR++# Flags to create an archive (by configure).+lt_ar_flags=$lt_ar_flags++# Flags to create an archive.+AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}++# How to feed a file listing to the archiver.+archiver_list_spec=$lt_archiver_list_spec++# A symbol stripping program.+STRIP=$lt_STRIP++# Commands used to install an old-style archive.+RANLIB=$lt_RANLIB+old_postinstall_cmds=$lt_old_postinstall_cmds+old_postuninstall_cmds=$lt_old_postuninstall_cmds++# Whether to use a lock for old archive extraction.+lock_old_archive_extraction=$lock_old_archive_extraction++# A C compiler.+LTCC=$lt_CC++# LTCC compiler flags.+LTCFLAGS=$lt_CFLAGS++# Take the output of nm and produce a listing of raw symbols and C names.+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe++# Transform the output of nm in a proper C declaration.+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl++# Transform the output of nm into a list of symbols to manually relocate.+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import++# Transform the output of nm in a C name address pair.+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address++# Transform the output of nm in a C name address pair when lib prefix is needed.+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix++# The name lister interface.+nm_interface=$lt_lt_cv_nm_interface++# Specify filename containing input files for \$NM.+nm_file_list_spec=$lt_nm_file_list_spec++# The root where to search for dependent libraries,and where our libraries should be installed.+lt_sysroot=$lt_sysroot++# Command to truncate a binary pipe.+lt_truncate_bin=$lt_lt_cv_truncate_bin++# The name of the directory that contains temporary libtool files.+objdir=$objdir++# Used to examine libraries when file_magic_cmd begins with "file".+MAGIC_CMD=$MAGIC_CMD++# Must we lock files when doing compilation?+need_locks=$lt_need_locks++# Manifest tool.+MANIFEST_TOOL=$lt_MANIFEST_TOOL++# Tool to manipulate archived DWARF debug symbol files on Mac OS X.+DSYMUTIL=$lt_DSYMUTIL++# Tool to change global to local symbols on Mac OS X.+NMEDIT=$lt_NMEDIT++# Tool to manipulate fat objects and archives on Mac OS X.+LIPO=$lt_LIPO++# ldd/readelf like tool for Mach-O binaries on Mac OS X.+OTOOL=$lt_OTOOL++# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.+OTOOL64=$lt_OTOOL64++# Old archive suffix (normally "a").+libext=$libext++# Shared library suffix (normally ".so").+shrext_cmds=$lt_shrext_cmds++# The commands to extract the exported symbol list from a shared archive.+extract_expsyms_cmds=$lt_extract_expsyms_cmds++# Variables whose values should be saved in libtool wrapper scripts and+# restored at link time.+variables_saved_for_relink=$lt_variables_saved_for_relink++# Do we need the "lib" prefix for modules?+need_lib_prefix=$need_lib_prefix++# Do we need a version for libraries?+need_version=$need_version++# Library versioning type.+version_type=$version_type++# Shared library runtime path variable.+runpath_var=$runpath_var++# Shared library path variable.+shlibpath_var=$shlibpath_var++# Is shlibpath searched before the hard-coded library search path?+shlibpath_overrides_runpath=$shlibpath_overrides_runpath++# Format of library name prefix.+libname_spec=$lt_libname_spec++# List of archive names. First name is the real one, the rest are links.+# The last name is the one that the linker finds with -lNAME+library_names_spec=$lt_library_names_spec++# The coded name of the library, if different from the real name.+soname_spec=$lt_soname_spec++# Permission mode override for installation of shared libraries.+install_override_mode=$lt_install_override_mode++# Command to use after installation of a shared archive.+postinstall_cmds=$lt_postinstall_cmds++# Command to use after uninstallation of a shared archive.+postuninstall_cmds=$lt_postuninstall_cmds++# Commands used to finish a libtool library installation in a directory.+finish_cmds=$lt_finish_cmds++# As "finish_cmds", except a single script fragment to be evaled but+# not shown.+finish_eval=$lt_finish_eval++# Whether we should hardcode library paths into libraries.+hardcode_into_libs=$hardcode_into_libs++# Compile-time system search path for libraries.+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec++# Detected run-time system search path for libraries.+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path++# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path++# Whether dlopen is supported.+dlopen_support=$enable_dlopen++# Whether dlopen of programs is supported.+dlopen_self=$enable_dlopen_self++# Whether dlopen of statically linked programs is supported.+dlopen_self_static=$enable_dlopen_self_static++# Commands to strip libraries.+old_striplib=$lt_old_striplib+striplib=$lt_striplib+++# The linker used to build libraries.+LD=$lt_LD++# How to create reloadable object files.+reload_flag=$lt_reload_flag+reload_cmds=$lt_reload_cmds++# Commands used to build an old-style archive.+old_archive_cmds=$lt_old_archive_cmds++# A language specific compiler.+CC=$lt_compiler++# Is the compiler the GNU compiler?+with_gcc=$GCC++# Compiler flag to turn off builtin functions.+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag++# Additional compiler flags for building library objects.+pic_flag=$lt_lt_prog_compiler_pic++# How to pass a linker flag through the compiler.+wl=$lt_lt_prog_compiler_wl++# Compiler flag to prevent dynamic linking.+link_static_flag=$lt_lt_prog_compiler_static++# Does compiler simultaneously support -c and -o options?+compiler_c_o=$lt_lt_cv_prog_compiler_c_o++# Whether or not to add -lc for building shared libraries.+build_libtool_need_lc=$archive_cmds_need_lc++# Whether or not to disallow shared libs when runtime libs are static.+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes++# Compiler flag to allow reflexive dlopens.+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec++# Compiler flag to generate shared objects directly from archives.+whole_archive_flag_spec=$lt_whole_archive_flag_spec++# Whether the compiler copes with passing no objects directly.+compiler_needs_object=$lt_compiler_needs_object++# Create an old-style archive from a shared archive.+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds++# Create a temporary old-style archive to link instead of a shared archive.+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds++# Commands used to build a shared archive.+archive_cmds=$lt_archive_cmds+archive_expsym_cmds=$lt_archive_expsym_cmds++# Commands used to build a loadable module if different from building+# a shared archive.+module_cmds=$lt_module_cmds+module_expsym_cmds=$lt_module_expsym_cmds++# Whether we are building with GNU ld or not.+with_gnu_ld=$lt_with_gnu_ld++# Flag that allows shared libraries with undefined symbols to be built.+allow_undefined_flag=$lt_allow_undefined_flag++# Flag that enforces no undefined symbols.+no_undefined_flag=$lt_no_undefined_flag++# Flag to hardcode \$libdir into a binary during linking.+# This must work even if \$libdir does not exist+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec++# Whether we need a single "-rpath" flag with a separated argument.+hardcode_libdir_separator=$lt_hardcode_libdir_separator++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes+# DIR into the resulting binary.+hardcode_direct=$hardcode_direct++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes+# DIR into the resulting binary and the resulting library dependency is+# "absolute",i.e impossible to change by setting \$shlibpath_var if the+# library is relocated.+hardcode_direct_absolute=$hardcode_direct_absolute++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR+# into the resulting binary.+hardcode_minus_L=$hardcode_minus_L++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR+# into the resulting binary.+hardcode_shlibpath_var=$hardcode_shlibpath_var++# Set to "yes" if building a shared library automatically hardcodes DIR+# into the library and all subsequent libraries and executables linked+# against it.+hardcode_automatic=$hardcode_automatic++# Set to yes if linker adds runtime paths of dependent libraries+# to runtime path list.+inherit_rpath=$inherit_rpath++# Whether libtool must link a program against all its dependency libraries.+link_all_deplibs=$link_all_deplibs++# Set to "yes" if exported symbols are required.+always_export_symbols=$always_export_symbols++# The commands to list exported symbols.+export_symbols_cmds=$lt_export_symbols_cmds++# Symbols that should not be listed in the preloaded symbols.+exclude_expsyms=$lt_exclude_expsyms++# Symbols that must always be exported.+include_expsyms=$lt_include_expsyms++# Commands necessary for linking programs (against libraries) with templates.+prelink_cmds=$lt_prelink_cmds++# Commands necessary for finishing linking programs.+postlink_cmds=$lt_postlink_cmds++# Specify filename containing input files.+file_list_spec=$lt_file_list_spec++# How to hardcode a shared library path into an executable.+hardcode_action=$hardcode_action++# The directories searched by this compiler when creating a shared library.+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs++# Dependencies to place before and after the objects being linked to+# create a shared library.+predep_objects=$lt_predep_objects+postdep_objects=$lt_postdep_objects+predeps=$lt_predeps+postdeps=$lt_postdeps++# The library search path used internally by the compiler when linking+# a shared library.+compiler_lib_search_path=$lt_compiler_lib_search_path++# ### END LIBTOOL CONFIG++_LT_EOF++ cat <<'_LT_EOF' >> "$cfgfile"++# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE++# func_munge_path_list VARIABLE PATH+# -----------------------------------+# VARIABLE is name of variable containing _space_ separated list of+# directories to be munged by the contents of PATH, which is string+# having a format:+# "DIR[:DIR]:"+# string "DIR[ DIR]" will be prepended to VARIABLE+# ":DIR[:DIR]"+# string "DIR[ DIR]" will be appended to VARIABLE+# "DIRP[:DIRP]::[DIRA:]DIRA"+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string+# "DIRA[ DIRA]" will be appended to VARIABLE+# "DIR[:DIR]"+# VARIABLE will be replaced by "DIR[ DIR]"+func_munge_path_list ()+{+ case x$2 in+ x)+ ;;+ *:)+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"+ ;;+ x:*)+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"+ ;;+ *::*)+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"+ ;;+ *)+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"+ ;;+ esac+}+++# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.+func_cc_basename ()+{+ for cc_temp in $*""; do+ case $cc_temp in+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;+ \-*) ;;+ *) break;;+ esac+ done+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`+}+++# ### END FUNCTIONS SHARED WITH CONFIGURE++_LT_EOF++ case $host_os in+ aix3*)+ cat <<\_LT_EOF >> "$cfgfile"+# AIX sometimes has problems with the GCC collect2 program. For some+# reason, if we set the COLLECT_NAMES environment variable, the problems+# vanish in a puff of smoke.+if test set != "${COLLECT_NAMES+set}"; then+ COLLECT_NAMES=+ export COLLECT_NAMES+fi+_LT_EOF+ ;;+ esac+++ltmain=$ac_aux_dir/ltmain.sh+++ # We use sed instead of cat because bash on DJGPP gets confused if+ # if finds mixed CR/LF and LF-only lines. Since sed operates in+ # text mode, it properly converts lines to CR/LF. This bash problem+ # is reportedly fixed, but why not run on old versions too?+ $SED '$q' "$ltmain" >> "$cfgfile" \+ || (rm -f "$cfgfile"; exit 1)++ mv -f "$cfgfile" "$ofile" ||+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")+ chmod +x "$ofile"+++ cat <<_LT_EOF >> "$ofile"++# ### BEGIN LIBTOOL TAG CONFIG: CXX++# The linker used to build libraries.+LD=$lt_LD_CXX++# How to create reloadable object files.+reload_flag=$lt_reload_flag_CXX+reload_cmds=$lt_reload_cmds_CXX++# Commands used to build an old-style archive.+old_archive_cmds=$lt_old_archive_cmds_CXX++# A language specific compiler.+CC=$lt_compiler_CXX++# Is the compiler the GNU compiler?+with_gcc=$GCC_CXX++# Compiler flag to turn off builtin functions.+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX++# Additional compiler flags for building library objects.+pic_flag=$lt_lt_prog_compiler_pic_CXX++# How to pass a linker flag through the compiler.+wl=$lt_lt_prog_compiler_wl_CXX++# Compiler flag to prevent dynamic linking.+link_static_flag=$lt_lt_prog_compiler_static_CXX++# Does compiler simultaneously support -c and -o options?+compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX++# Whether or not to add -lc for building shared libraries.+build_libtool_need_lc=$archive_cmds_need_lc_CXX++# Whether or not to disallow shared libs when runtime libs are static.+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX++# Compiler flag to allow reflexive dlopens.+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX++# Compiler flag to generate shared objects directly from archives.+whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX++# Whether the compiler copes with passing no objects directly.+compiler_needs_object=$lt_compiler_needs_object_CXX++# Create an old-style archive from a shared archive.+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX++# Create a temporary old-style archive to link instead of a shared archive.+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX++# Commands used to build a shared archive.+archive_cmds=$lt_archive_cmds_CXX+archive_expsym_cmds=$lt_archive_expsym_cmds_CXX++# Commands used to build a loadable module if different from building+# a shared archive.+module_cmds=$lt_module_cmds_CXX+module_expsym_cmds=$lt_module_expsym_cmds_CXX++# Whether we are building with GNU ld or not.+with_gnu_ld=$lt_with_gnu_ld_CXX++# Flag that allows shared libraries with undefined symbols to be built.+allow_undefined_flag=$lt_allow_undefined_flag_CXX++# Flag that enforces no undefined symbols.+no_undefined_flag=$lt_no_undefined_flag_CXX++# Flag to hardcode \$libdir into a binary during linking.+# This must work even if \$libdir does not exist+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX++# Whether we need a single "-rpath" flag with a separated argument.+hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes+# DIR into the resulting binary.+hardcode_direct=$hardcode_direct_CXX++# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes+# DIR into the resulting binary and the resulting library dependency is+# "absolute",i.e impossible to change by setting \$shlibpath_var if the+# library is relocated.+hardcode_direct_absolute=$hardcode_direct_absolute_CXX++# Set to "yes" if using the -LDIR flag during linking hardcodes DIR+# into the resulting binary.+hardcode_minus_L=$hardcode_minus_L_CXX++# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR+# into the resulting binary.+hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX++# Set to "yes" if building a shared library automatically hardcodes DIR+# into the library and all subsequent libraries and executables linked+# against it.+hardcode_automatic=$hardcode_automatic_CXX++# Set to yes if linker adds runtime paths of dependent libraries+# to runtime path list.+inherit_rpath=$inherit_rpath_CXX++# Whether libtool must link a program against all its dependency libraries.+link_all_deplibs=$link_all_deplibs_CXX++# Set to "yes" if exported symbols are required.+always_export_symbols=$always_export_symbols_CXX++# The commands to list exported symbols.+export_symbols_cmds=$lt_export_symbols_cmds_CXX++# Symbols that should not be listed in the preloaded symbols.+exclude_expsyms=$lt_exclude_expsyms_CXX++# Symbols that must always be exported.+include_expsyms=$lt_include_expsyms_CXX++# Commands necessary for linking programs (against libraries) with templates.+prelink_cmds=$lt_prelink_cmds_CXX++# Commands necessary for finishing linking programs.+postlink_cmds=$lt_postlink_cmds_CXX++# Specify filename containing input files.+file_list_spec=$lt_file_list_spec_CXX++# How to hardcode a shared library path into an executable.+hardcode_action=$hardcode_action_CXX++# The directories searched by this compiler when creating a shared library.+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX++# Dependencies to place before and after the objects being linked to+# create a shared library.+predep_objects=$lt_predep_objects_CXX+postdep_objects=$lt_postdep_objects_CXX+predeps=$lt_predeps_CXX+postdeps=$lt_postdeps_CXX++# The library search path used internally by the compiler when linking+# a shared library.+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX++# ### END LIBTOOL TAG CONFIG: CXX+_LT_EOF++ ;;++ esac+done # for ac_tag+++as_fn_exit 0+_ACEOF+ac_clean_files=$ac_clean_files_save++test $ac_write_fail = 0 ||+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5+++# configure is writing to config.log, and then calls config.status.+# config.status does its own redirection, appending to config.log.+# Unfortunately, on DOS this fails, as config.log is still kept open+# by configure, so config.status won't be able to write to it; its+# output is simply discarded. So we exec the FD to /dev/null,+# effectively closing config.log, so it can be properly (re)opened and+# appended to by config.status. When coming back to configure, we+# need to make the FD available again.+if test "$no_create" != yes; then+ ac_cs_success=:+ ac_config_status_args=+ test "$silent" = yes &&+ ac_config_status_args="$ac_config_status_args --quiet"+ exec 5>/dev/null+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false+ exec 5>>config.log+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which+ # would make configure fail if this is the last instruction.+ $ac_cs_success || as_fn_exit 1+fi+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}+fi
configure.ac view
@@ -2,7 +2,7 @@ AC_PREREQ([2.68]) -AC_INIT([libffi],[3.5.2],[http://github.com/libffi/libffi/issues])+AC_INIT([libffi],[3.6.0],[http://github.com/libffi/libffi/issues]) AC_CONFIG_HEADERS([fficonfig.h]) FFI_VERSION_STRING="3.5.2"@@ -111,6 +111,10 @@ AC_SUBST(HAVE_LONG_DOUBLE) AC_SUBST(HAVE_LONG_DOUBLE_VARIANT) +AC_CHECK_TYPE(__int128_t,+ AC_DEFINE(HAVE_INT128, 1,+ [Define if __int128_t and __uint128_t are supported.]))+ AC_C_BIGENDIAN GCC_AS_CFI_PSEUDO_OP@@ -182,6 +186,12 @@ fi CFLAGS="$CFLAGS -sMEMORY64=$WASM64_MEMORY64" ;;+ LOONGARCH64)+ CFLAGS="$CFLAGS -mcmodel=medium"+ ;;+ LOONGARCH32)+ # No special for LoongArch32 now.+ ;; esac AC_CACHE_CHECK([whether compiler supports pointer authentication],@@ -370,7 +380,8 @@ fi ;; *arm*-*-linux-* | aarch64*-*-linux-* | i*86-*-linux-* | x86_64-*-linux-* \- | loongarch*-*-linux-* | s390x*-linux-* | powerpc*-linux-*)+ | loongarch*-*-linux-* | s390x*-linux-* | powerpc*-linux-* \+ | riscv*-linux-*) AC_DEFINE(FFI_EXEC_STATIC_TRAMP, 1, [Define this if you want statically defined trampolines]) ;;
configure.host view
@@ -141,8 +141,13 @@ SOURCES="ffi.c"; ASM_SOURCES="sysv.S" ;; - loongarch64-*-*)- TARGET=LOONGARCH64; TARGETDIR=loongarch64+ loongarch*-*-*)+ if test $ac_cv_sizeof_size_t = 4; then+ TARGET=LOONGARCH32+ else+ TARGET=LOONGARCH64+ fi+ TARGETDIR=loongarch SOURCES="ffi.c"; ASM_SOURCES="sysv.S" ;;
fficonfig.h.in view
@@ -59,6 +59,9 @@ /* Define if __attribute__((visibility("hidden"))) is supported. */ #undef HAVE_HIDDEN_VISIBILITY_ATTRIBUTE +/* Define if __int128_t and __uint128_t are supported. */+#undef HAVE_INT128+ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H @@ -68,10 +71,10 @@ /* Define if you support more than one size of the long double type */ #undef HAVE_LONG_DOUBLE_VARIANT -/* Define to 1 if you have the 'memcpy' function. */+/* Define to 1 if you have the `memcpy' function. */ #undef HAVE_MEMCPY -/* Define to 1 if you have the 'memfd_create' function. */+/* Define to 1 if you have the `memfd_create' function. */ #undef HAVE_MEMFD_CREATE /* Define if .eh_frame sections should be read-only. */@@ -110,6 +113,9 @@ /* Define to the sub-directory where libtool stores uninstalled libraries. */ #undef LT_OBJDIR +/* Name of package */+#undef PACKAGE+ /* Define to the address where bug reports for this package should be sent. */ #undef PACKAGE_BUGREPORT @@ -128,16 +134,16 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* The size of 'double', as computed by sizeof. */+/* The size of `double', as computed by sizeof. */ #undef SIZEOF_DOUBLE -/* The size of 'long double', as computed by sizeof. */+/* The size of `long double', as computed by sizeof. */ #undef SIZEOF_LONG_DOUBLE -/* The size of 'size_t', as computed by sizeof. */+/* The size of `size_t', as computed by sizeof. */ #undef SIZEOF_SIZE_T -/* Define to 1 if all of the C89 standard headers exist (not just the ones+/* Define to 1 if all of the C90 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS@@ -148,6 +154,9 @@ /* Define this if you are using Purify and want to suppress spurious messages. */ #undef USING_PURIFY++/* Version number of package */+#undef VERSION /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most significant byte first (like Motorola and SPARC, unlike Intel). */
include/ffi.h.in view
@@ -77,9 +77,11 @@ #define FFI_TYPE_STRUCT 13 #define FFI_TYPE_POINTER 14 #define FFI_TYPE_COMPLEX 15+#define FFI_TYPE_UINT128 16+#define FFI_TYPE_SINT128 17 /* This should always refer to the last type code (for sanity checks). */-#define FFI_TYPE_LAST FFI_TYPE_COMPLEX+#define FFI_TYPE_LAST FFI_TYPE_SINT128 #include <ffitarget.h> @@ -227,6 +229,11 @@ FFI_EXTERN ffi_type ffi_type_complex_double; FFI_EXTERN ffi_type ffi_type_complex_longdouble; #endif++#ifdef FFI_TARGET_HAS_INT128+FFI_EXTERN ffi_type ffi_type_uint128;+FFI_EXTERN ffi_type ffi_type_sint128;+#endif #endif /* LIBFFI_HIDE_BASIC_TYPES */ typedef enum {@@ -344,6 +351,11 @@ void *trampoline_table; void *trampoline_table_entry; #else+ /* Anonymous unions are C11 (a GNU extension in C99); __extension__ keeps+ the field names without tripping -Wpedantic under -std=c99 (#795). */+#ifdef __GNUC__+ __extension__+#endif union { char tramp[FFI_TRAMPOLINE_SIZE]; void *ftramp;
install-sh view
@@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2024-06-19.01; # UTC+scriptversion=2020-11-14.01; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the@@ -124,9 +124,9 @@ If -S is not specified, no backups are attempted. -Report bugs to <bug-automake@gnu.org>.-GNU Automake home page: <https://www.gnu.org/software/automake/>.-General help using GNU software: <https://www.gnu.org/gethelp/>."+Email bug reports to bug-automake@gnu.org.+Automake home page: https://www.gnu.org/software/automake/+" while test $# -ne 0; do case $1 in@@ -170,7 +170,7 @@ -T) is_target_a_directory=never;; - --version) echo "$0 (GNU Automake) $scriptversion"; exit $?;;+ --version) echo "$0 $scriptversion"; exit $?;; --) shift break;;@@ -345,7 +345,7 @@ ' 0 # Because "mkdir -p" follows existing symlinks and we likely work- # directly in world-writable /tmp, make sure that the '$tmpdir'+ # directly in world-writeable /tmp, make sure that the '$tmpdir' # directory is successfully created first before we actually test # 'mkdir -p'. if (umask $mkdir_umask &&@@ -353,7 +353,7 @@ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || {- # Check for POSIX incompatibility with -m.+ # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
libffi-clib.cabal view
@@ -1,6 +1,6 @@ cabal-version: 3.12 name: libffi-clib-version: 3.5.2+version: 3.6.0 synopsis: libffi clibs description: C source code for the libffi package license: MIT
ltmain.sh view
@@ -2,11 +2,11 @@ ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in ## by inline-source v2019-02-19.15 -# libtool (GNU libtool) 2.5.4+# libtool (GNU libtool) 2.4.7 # Provide generalized library-building support services. # Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 -# Copyright (C) 1996-2019, 2021-2024 Free Software Foundation, Inc.+# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. @@ -31,8 +31,8 @@ PROGRAM=libtool PACKAGE=libtool-VERSION=2.5.4-package_revision=2.5.4+VERSION="2.4.7 Debian-2.4.7-7build1"+package_revision=2.4.7 ## ------ ##@@ -72,11 +72,11 @@ # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. #-# Copyright (C) 2004-2019, 2021, 2023-2024 Bootstrap Authors+# Copyright (C) 2004-2019, 2021 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license-# <https://opensource.org/licenses/MIT>, and GPL version 2 or later-# <https://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of+# <https://opensource.org/license/MIT>, and GPL version 2 or later+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts.@@ -143,7 +143,7 @@ ' IFS="$sp $nl" -# There are apparently some systems that use ';' as a PATH separator!+# There are apparently some retarded systems that use ';' as a PATH separator! if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {@@ -430,7 +430,7 @@ # putting '$debug_cmd' at the start of all your functions, you can get # bash to show function call trace with: #-# debug_cmd='eval echo "${FUNCNAME[0]} $*" >&2' bash your-script-name+# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name debug_cmd=${debug_cmd-":"} exit_cmd=: @@ -572,27 +572,15 @@ # --------------------- # Append VALUE onto the existing contents of VAR. - # We should try to minimise forks, especially on Windows where they are- # unreasonably slow, so skip the feature probes when bash or zsh are- # being used:- if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then- : ${_G_HAVE_ARITH_OP="yes"}- : ${_G_HAVE_XSI_OPS="yes"}- # The += operator was introduced in bash 3.1- case $BASH_VERSION in- [12].* | 3.0 | 3.0*) ;;- *)- : ${_G_HAVE_PLUSEQ_OP="yes"}- ;;- esac- fi- # _G_HAVE_PLUSEQ_OP # Can be empty, in which case the shell is probed, "yes" if += is- # usable or anything else if it does not work.- test -z "$_G_HAVE_PLUSEQ_OP" \- && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \- && _G_HAVE_PLUSEQ_OP=yes+ # useable or anything else if it does not work.+ if test -z "$_G_HAVE_PLUSEQ_OP" && \+ __PLUSEQ_TEST="a" && \+ __PLUSEQ_TEST+=" b" 2>/dev/null && \+ test "a b" = "$__PLUSEQ_TEST"; then+ _G_HAVE_PLUSEQ_OP=yes+ fi if test yes = "$_G_HAVE_PLUSEQ_OP" then@@ -739,7 +727,7 @@ # to NONDIR_REPLACEMENT. # value returned in "$func_dirname_result" # basename: Compute filename of FILE.-# value returned in "$func_basename_result"+# value retuned in "$func_basename_result" # For efficiency, we do not delegate to the functions above but instead # duplicate the functionality here. eval 'func_dirname_and_basename ()@@ -897,7 +885,7 @@ # While some portion of DIR does not yet exist... while test ! -d "$_G_directory_path"; do # ...make a list in topmost first order. Use a colon delimited- # list in case some portion of path contains whitespace.+ # list incase some portion of path contains whitespace. _G_dir_list=$_G_directory_path:$_G_dir_list # If the last portion added has no slash in it, the list is done@@ -1536,11 +1524,11 @@ # This is free software. There is NO warranty; not even for # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. #-# Copyright (C) 2010-2019, 2021, 2023-2024 Bootstrap Authors+# Copyright (C) 2010-2019, 2021 Bootstrap Authors # # This file is dual licensed under the terms of the MIT license-# <https://opensource.org/licenses/MIT>, and GPL version 2 or later-# <https://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of+# <https://opensource.org/license/MIT>, and GPL version 2 or later+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of # these licenses when using or redistributing this software or any of # the files within it. See the URLs above, or the file `LICENSE` # included in the Bootstrap distribution for the full license texts.@@ -1706,6 +1694,8 @@ { $debug_cmd + _G_rc_run_hooks=false+ case " $hookable_fns " in *" $1 "*) ;; *) func_fatal_error "'$1' does not support hook functions." ;;@@ -2215,30 +2205,7 @@ # End: # Set a version string.-scriptversion='(GNU libtool) 2.5.4'--# func_version-# -------------# Echo version message to standard output and exit.-func_version ()-{- $debug_cmd-- year=`date +%Y`-- cat <<EOF-$progname $scriptversion-Copyright (C) $year Free Software Foundation, Inc.-License GPLv2+: GNU GPL version 2 or later <https://gnu.org/licenses/gpl.html>-This is free software: you are free to change and redistribute it.-There is NO WARRANTY, to the extent permitted by law.--Originally written by Gordon Matzigkeit, 1996-(See AUTHORS for complete contributor listing)-EOF-- exit $?-}+scriptversion='(GNU libtool) 2.4.7' # func_echo ARG...@@ -2261,6 +2228,18 @@ } +# func_warning ARG...+# -------------------+# Libtool warnings are not categorized, so override funclib.sh+# func_warning with this simpler definition.+func_warning ()+{+ $debug_cmd++ $warning_func ${1+"$@"}+}++ ## ---------------- ## ## Options parsing. ## ## ---------------- ##@@ -2272,23 +2251,19 @@ # Short help message in response to '-h'. usage_message="Options:- --config show all configuration variables- --debug enable verbose shell tracing- -n, --dry-run display commands without modifying any files- --features display basic configuration information- --finish use operation '--mode=finish'- --mode=MODE use operation mode MODE- --no-finish don't update shared library cache- --no-quiet, --no-silent print default informational messages- --no-warnings equivalent to '-Wnone'- --preserve-dup-deps don't remove duplicate dependency libraries- --quiet, --silent don't print informational messages- --reorder-cache=DIRS reorder shared library cache for preferred DIRS- --tag=TAG use configuration variables from tag TAG- -v, --verbose print more informational messages than default- --version print version information- -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]- -h, --help, --help-all print short, long, or detailed help message+ --config show all configuration variables+ --debug enable verbose shell tracing+ -n, --dry-run display commands without modifying any files+ --features display basic configuration information and exit+ --mode=MODE use operation mode MODE+ --no-warnings equivalent to '-Wnone'+ --preserve-dup-deps don't remove duplicate dependency libraries+ --quiet, --silent don't print informational messages+ --tag=TAG use configuration variables from tag TAG+ -v, --verbose print more informational messages than default+ --version print version information+ -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]+ -h, --help, --help-all print short, long, or detailed help message " # Additional text appended to 'usage_message' in response to '--help'.@@ -2321,13 +2296,13 @@ compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld)- version: $progname $scriptversion+ version: $progname $scriptversion Debian-2.4.7-7build1 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` Report bugs to <bug-libtool@gnu.org>.-GNU libtool home page: <https://www.gnu.org/software/libtool/>.-General help using GNU software: <https://www.gnu.org/gethelp/>."+GNU libtool home page: <http://www.gnu.org/s/libtool/>.+General help using GNU software: <http://www.gnu.org/gethelp/>." exit 0 } @@ -2517,17 +2492,16 @@ opt_dry_run=false opt_help=false opt_mode=- opt_reorder_cache=false opt_preserve_dup_deps=false opt_quiet=false- opt_finishing=true- opt_warning= nonopt= preserve_args= _G_rc_lt_options_prep=: + _G_rc_lt_options_prep=:+ # Shorthand for --mode=foo, only valid as the first argument case $1 in clean|clea|cle|cl)@@ -2611,18 +2585,14 @@ clean|compile|execute|finish|install|link|relink|uninstall) ;; # Catch anything else as an error- *) func_error "invalid argument '$1' for $_G_opt"+ *) func_error "invalid argument for $_G_opt" exit_cmd=exit+ break ;; esac shift ;; - --no-finish)- opt_finishing=false- func_append preserve_args " $_G_opt"- ;;- --no-silent|--no-quiet) opt_quiet=false func_append preserve_args " $_G_opt"@@ -2638,24 +2608,6 @@ func_append preserve_args " $_G_opt" ;; - --reorder-cache)- opt_reorder_cache=true- shared_lib_dirs=$1- if test -n "$shared_lib_dirs"; then- case $1 in- # Must begin with /:- /*) ;;-- # Catch anything else as an error (relative paths)- *) func_error "invalid argument '$1' for $_G_opt"- func_error "absolute paths are required for $_G_opt"- exit_cmd=exit- ;;- esac- fi- shift- ;;- --silent|--quiet) opt_quiet=: opt_verbose=false@@ -2692,19 +2644,7 @@ func_add_hook func_parse_options libtool_parse_options -# func_warning ARG...-# --------------------# Libtool warnings are not categorized, so override funclib.sh-# func_warning with this simpler definition.-func_warning ()-{- if $opt_warning; then- $debug_cmd- $warning_func ${1+"$@"}- fi-} - # libtool_validate_options [ARG]... # --------------------------------- # Perform any sanity checks on option settings and/or unconsumed@@ -2720,10 +2660,17 @@ # preserve --debug test : = "$debug_cmd" || func_append preserve_args " --debug" - # Keeping compiler generated duplicates in $postdeps and $predeps is not- # harmful, and is necessary in a majority of systems that use it to satisfy- # symbol dependencies.- opt_duplicate_compiler_generated_deps=:+ case $host in+ # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452+ # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)+ # don't eliminate duplications in $postdeps and $predeps+ opt_duplicate_compiler_generated_deps=:+ ;;+ *)+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps+ ;;+ esac $opt_help || { # Sanity checks first:@@ -3048,7 +2995,7 @@ # func_convert_core_file_wine_to_w32 ARG # Helper function used by file name conversion functions when $build is *nix,-# and $host is mingw, windows, cygwin, or some other w32 environment. Relies on a+# and $host is mingw, cygwin, or some other w32 environment. Relies on a # correctly configured wine environment available, with the winepath program # in $build's $PATH. #@@ -3080,10 +3027,9 @@ # func_convert_core_path_wine_to_w32 ARG # Helper function used by path conversion functions when $build is *nix, and-# $host is mingw, windows, cygwin, or some other w32 environment. Relies on a-# correctly configured wine environment available, with the winepath program-# in $build's $PATH. Assumes ARG has no leading or trailing path separator-# characters.+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly+# configured wine environment available, with the winepath program in $build's+# $PATH. Assumes ARG has no leading or trailing path separator characters. # # ARG is path to be converted from $build format to win32. # Result is available in $func_convert_core_path_wine_to_w32_result.@@ -3226,15 +3172,6 @@ # end func_convert_path_front_back_pathsep -# func_convert_delimited_path PATH ORIG_DELIMITER NEW_DELIMITER-# Replaces a delimiter for a given path.-func_convert_delimited_path ()-{- converted_path=`$ECHO "$1" | $SED "s#$2#$3#g"`-}-# end func_convert_delimited_path-- ################################################## # $build to $host FILE NAME CONVERSION FUNCTIONS # ##################################################@@ -3569,65 +3506,6 @@ } -# func_reorder_shared_lib_cache DIRS-# Reorder the shared library cache by unconfiguring previous shared library cache-# and configuring preferred search directories before previous search directories.-# Previous shared library cache: /usr/lib /usr/local/lib-# Preferred search directories: /tmp/testing-# Reordered shared library cache: /tmp/testing /usr/lib /usr/local/lib-func_reorder_shared_lib_cache ()-{- $debug_cmd-- case $host_os in- openbsd*)- get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"`- func_convert_delimited_path "$get_search_directories" ':' '\ '- save_search_directories=$converted_path- func_convert_delimited_path "$1" ':' '\ '-- # Ensure directories exist- for dir in $converted_path; do- # Ensure each directory is an absolute path- case $dir in- /*) ;;- *) func_error "Directory '$dir' is not an absolute path"- exit $EXIT_FAILURE ;;- esac- # Ensure no trailing slashes- func_stripname '' '/' "$dir"- dir=$func_stripname_result- if test -d "$dir"; then- if test -n "$preferred_search_directories"; then- preferred_search_directories="$preferred_search_directories $dir"- else- preferred_search_directories=$dir- fi- else- func_error "Directory '$dir' does not exist"- exit $EXIT_FAILURE- fi- done-- PATH="$PATH:/sbin" ldconfig -U $save_search_directories- PATH="$PATH:/sbin" ldconfig -m $preferred_search_directories $save_search_directories- get_search_directories=`PATH="$PATH:/sbin" ldconfig -r | $GREP "search directories" | $SED "s#.*search directories:\ ##g"`- func_convert_delimited_path "$get_search_directories" ':' '\ '- reordered_search_directories=$converted_path-- $ECHO "Original: $save_search_directories"- $ECHO "Reordered: $reordered_search_directories"- exit $EXIT_SUCCESS- ;;- *)- func_error "--reorder-cache is not supported for host_os=$host_os."- exit $EXIT_FAILURE- ;;- esac-}-# end func_reorder_shared_lib_cache-- # func_mode_compile arg... func_mode_compile () {@@ -3806,7 +3684,7 @@ # On Cygwin there's no "real" PIC flag so we must build both object types case $host_os in- cygwin* | mingw* | windows* | pw32* | os2* | cegcc*)+ cygwin* | mingw* | pw32* | os2* | cegcc*) pic_mode=default ;; esac@@ -4200,12 +4078,6 @@ fi -# If option '--reorder-cache', reorder the shared library cache and exit.-if $opt_reorder_cache; then- func_reorder_shared_lib_cache $shared_lib_dirs-fi-- # func_mode_execute arg... func_mode_execute () {@@ -4390,7 +4262,7 @@ fi fi - if test -n "$finish_cmds$finish_eval" && test -n "$libdirs" && $opt_finishing; then+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then for libdir in $libdirs; do if test -n "$finish_cmds"; then # Do each command in the finish commands.@@ -4415,12 +4287,6 @@ for libdir in $libdirs; do $ECHO " $libdir" done- if test "false" = "$opt_finishing"; then- echo- echo "NOTE: finish_cmds were not executed during testing, so you must"- echo "manually run ldconfig to add a given test directory, LIBDIR, to"- echo "the search path for generated executables."- fi echo echo "If you ever happen to want to link against installed libraries" echo "in a given directory, LIBDIR, you must either use libtool, and"@@ -4657,15 +4523,8 @@ func_append dir "$objdir" if test -n "$relink_command"; then- # Strip any trailing slash from the destination.- func_stripname '' '/' "$libdir"- destlibdir=$func_stripname_result-- func_stripname '' '/' "$destdir"- s_destdir=$func_stripname_result- # Determine the prefix the user has applied to our future dir.- inst_prefix_dir=`$ECHO "X$s_destdir" | $Xsed -e "s%$destlibdir\$%%"`+ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` # Don't allow the user to place us outside of our expected # location b/c this prevents finding dependent libraries that@@ -4702,7 +4561,7 @@ 'exit $?' tstripme=$stripme case $host_os in- cygwin* | mingw* | windows* | pw32* | cegcc*)+ cygwin* | mingw* | pw32* | cegcc*) case $realname in *.dll.a) tstripme=@@ -4815,7 +4674,7 @@ # Do a test to see if this is really a libtool program. case $host in- *cygwin* | *mingw* | *windows*)+ *cygwin* | *mingw*) if func_ltwrapper_executable_p "$file"; then func_ltwrapper_scriptname "$file" wrapper=$func_ltwrapper_scriptname_result@@ -5043,7 +4902,7 @@ $RM $export_symbols eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' case $host in- *cygwin* | *mingw* | *windows* | *cegcc* )+ *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' ;;@@ -5055,7 +4914,7 @@ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' eval '$MV "$nlist"T "$nlist"' case $host in- *cygwin* | *mingw* | *windows* | *cegcc* )+ *cygwin* | *mingw* | *cegcc* ) eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' ;;@@ -5069,7 +4928,7 @@ func_basename "$dlprefile" name=$func_basename_result case $host in- *cygwin* | *mingw* | *windows* | *cegcc* )+ *cygwin* | *mingw* | *cegcc* ) # if an import library, we need to obtain dlname if func_win32_import_lib_p "$dlprefile"; then func_tr_sh "$dlprefile"@@ -5095,16 +4954,8 @@ eval '$ECHO ": $name " >> "$nlist"' fi func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32- case $host in- i[3456]86-*-mingw32*)- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"- ;;- *)- eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |- $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/__nm_//' >> '$nlist'"- ;;- esac+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" } else # not an import lib $opt_dry_run || {@@ -5252,7 +5103,7 @@ # Transform the symbol file into the correct name. symfileobj=$output_objdir/${my_outputname}S.$objext case $host in- *cygwin* | *mingw* | *windows* | *cegcc* )+ *cygwin* | *mingw* | *cegcc* ) if test -f "$output_objdir/$my_outputname.def"; then compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`@@ -5328,7 +5179,7 @@ *ar\ archive*) # could be an import, or static # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |- $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)' >/dev/null; then+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then case $nm_interface in "MS dumpbin") if func_cygming_ms_implib_p "$1" ||@@ -5595,7 +5446,7 @@ # # Emit a libtool wrapper script on stdout. # Don't directly open a file because we may want to-# incorporate the script contents within a cygwin/mingw/windows+# incorporate the script contents within a cygwin/mingw # wrapper executable. Must ONLY be called from within # func_mode_link because it depends on a number of variables # set therein.@@ -5603,7 +5454,7 @@ # ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR # variable will take. If 'yes', then the emitted script # will assume that the directory where it is stored is-# the $objdir directory. This is a cygwin/mingw/windows-specific+# the $objdir directory. This is a cygwin/mingw-specific # behavior. func_emit_wrapper () {@@ -5728,7 +5579,7 @@ " case $host in # Backslashes separate directories on plain windows- *-*-mingw* | *-*-windows* | *-*-os2* | *-cegcc*)+ *-*-mingw | *-*-os2* | *-cegcc*) $ECHO "\ if test -n \"\$lt_option_debug\"; then \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2@@ -5796,7 +5647,7 @@ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` done - # Usually 'no', except on cygwin/mingw/windows when embedded into+ # Usually 'no', except on cygwin/mingw when embedded into # the cwrapper. WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then@@ -5928,7 +5779,7 @@ #endif #include <stdio.h> #include <stdlib.h>-#if defined _WIN32 && !defined __GNUC__+#ifdef _MSC_VER # include <direct.h> # include <process.h> # include <io.h>@@ -5953,7 +5804,7 @@ /* declarations of non-ANSI functions */ #if defined __MINGW32__ # ifdef __STRICT_ANSI__-_CRTIMP int __cdecl _putenv (const char *);+int _putenv (const char *); # endif #elif defined __CYGWIN__ # ifdef __STRICT_ANSI__@@ -6151,7 +6002,7 @@ { EOF case $host in- *mingw* | *windows* | *cygwin* )+ *mingw* | *cygwin* ) # make stdout use "unix" line endings echo " setmode(1,_O_BINARY);" ;;@@ -6170,7 +6021,7 @@ { /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX namespace, but it is not one of the ones we know about and- have already dealt with, above (including dump-script), then+ have already dealt with, above (inluding dump-script), then report an error. Otherwise, targets might begin to believe they are allowed to use options in the LTWRAPPER_OPTION_PREFIX namespace. The first time any user complains about this, we'll@@ -6254,7 +6105,7 @@ EOF case $host_os in- mingw* | windows*)+ mingw*) cat <<"EOF" { char* p;@@ -6296,7 +6147,7 @@ EOF case $host_os in- mingw* | windows*)+ mingw*) cat <<"EOF" /* execv doesn't actually work on mingw as expected on unix */ newargz = prepare_spawn (newargz);@@ -6715,7 +6566,7 @@ EOF case $host_os in- mingw* | windows*)+ mingw*) cat <<"EOF" /* Prepares an argument vector before calling spawn().@@ -6890,7 +6741,7 @@ $debug_cmd case $host in- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) # It is impossible to link a dll without this setting, and # we shouldn't force the makefile maintainer to figure out # what system we are compiling for in order to pass an extra@@ -6914,7 +6765,6 @@ finalize_command=$nonopt compile_rpath=- compile_rpath_tail= finalize_rpath= compile_shlibpath= finalize_shlibpath=@@ -6955,12 +6805,10 @@ xrpath= perm_rpath= temp_rpath=- temp_rpath_tail= thread_safe=no vinfo= vinfo_number=no weak_libs=- rpath_arg= single_module=$wl-single_module func_infer_tag $base_compile @@ -7223,7 +7071,7 @@ case $arg in [\\/]* | [A-Za-z]:[\\/]*) ;; *)- func_fatal_error "argument to -rpath is not absolute: $arg"+ func_fatal_error "only absolute run-paths are allowed" ;; esac if test rpath = "$prev"; then@@ -7399,7 +7247,7 @@ ;; esac case $host in- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` case :$dllsearchpath: in *":$dir:"*) ;;@@ -7419,7 +7267,7 @@ -l*) if test X-lc = "X$arg" || test X-lm = "X$arg"; then case $host in- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) # These systems don't actually have a C or math library (as such) continue ;;@@ -7427,7 +7275,7 @@ # These systems don't actually have a C library (as such) test X-lc = "X$arg" && continue ;;- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc due to us having libc/libc_r. test X-lc = "X$arg" && continue ;;@@ -7447,7 +7295,7 @@ esac elif test X-lc_r = "X$arg"; then case $host in- *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*) # Do not include libc_r directly, use -pthread flag. continue ;;@@ -7470,8 +7318,7 @@ # Tru64 UNIX uses -model [arg] to determine the layout of C++ # classes, name mangling, and exception handling. # Darwin uses the -arch flag to determine output architecture.- # -q <option> for IBM XL C/C++ compiler.- -model|-arch|-isysroot|--sysroot|-q)+ -model|-arch|-isysroot|--sysroot) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg"@@ -7492,7 +7339,7 @@ continue ;; -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \- |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) func_append compiler_flags " $arg" func_append compile_command " $arg" func_append finalize_command " $arg"@@ -7515,7 +7362,7 @@ -no-install) case $host in- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) # The PATH hackery in wrapper scripts is required on Windows # and Darwin in order for the loader to find any dlls it needs. func_warning "'-no-install' is ignored for $host"@@ -7575,7 +7422,7 @@ dir=$lt_sysroot$func_stripname_result ;; *)- func_fatal_error "argument ($arg) to '-R' is not an absolute path: $dir"+ func_fatal_error "only absolute run-paths are allowed" ;; esac case "$xrpath " in@@ -7700,29 +7547,15 @@ # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization # -specs=* GCC specs files # -stdlib=* select c++ std lib with clang- # -fdiagnostics-color* simply affects output- # -frecord-gcc-switches used to verify flags were respected # -fsanitize=* Clang/GCC memory and address sanitizer- # -fno-sanitize* Clang/GCC memory and address sanitizer- # -shared-libsan Link with shared sanitizer runtimes (Clang)- # -static-libsan Link with static sanitizer runtimes (Clang)- # -no-canonical-prefixes Do not expand any symbolic links # -fuse-ld=* Linker select flags for GCC # -static-* direct GCC to link specific libraries statically # -fcilkplus Cilk Plus language extension features for C/C++- # -rtlib=* select c runtime lib with clang- # --unwindlib=* select unwinder library with clang- # -f{file|debug|macro|profile}-prefix-map=* needed for lto linking # -Wa,* Pass flags directly to the assembler- # -Werror, -Werror=* Report (specified) warnings as errors -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-no-canonical-prefixes| \- -stdlib=*|-rtlib=*|--unwindlib=*| \- -specs=*|-fsanitize=*|-fno-sanitize*|-shared-libsan|-static-libsan| \- -ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*| \- -fdiagnostics-color*|-frecord-gcc-switches| \- -fuse-ld=*|-static-*|-fcilkplus|-Wa,*|-Werror|-Werror=*)+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \+ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*) func_quote_arg pretty "$arg" arg=$func_quote_arg_result func_append compile_command " $arg"@@ -7880,20 +7713,8 @@ # Now actually substitute the argument into the commands. if test -n "$arg"; then- if test -n "$rpath_arg"; then- func_append finalize_rpath " ${arg##*,}"- unset rpath_arg- else- case $arg in- -Wl,-rpath,*)- func_append finalize_rpath " ${arg##*,}";;- -Wl,-rpath)- rpath_arg=1;;- *)- func_append compile_command " $arg"- func_append finalize_command " $arg"- esac- fi+ func_append compile_command " $arg"+ func_append finalize_command " $arg" fi done # argument parsing loop @@ -8027,7 +7848,10 @@ case $pass in dlopen) libs=$dlfiles ;; dlpreopen) libs=$dlprefiles ;;- link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;+ link)+ libs="$deplibs %DEPLIBS%"+ test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"+ ;; esac fi if test lib,dlpreopen = "$linkmode,$pass"; then@@ -8064,7 +7888,7 @@ found=false case $deplib in -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \- |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) if test prog,link = "$linkmode,$pass"; then compile_deplibs="$deplib $compile_deplibs" finalize_deplibs="$deplib $finalize_deplibs"@@ -8241,15 +8065,18 @@ ;; esac if $valid_a_lib; then- func_warning "Linking the shared library $output against the static library $deplib is not portable!"+ echo+ $ECHO "*** Warning: Linking the shared library $output against the"+ $ECHO "*** static library $deplib is not portable!" deplibs="$deplib $deplibs" else- func_warning "Trying to link with static lib archive $deplib."- func_warning "I have the capability to make that library automatically link in when"- func_warning "you link to this library. But I can only do this if you have a"- func_warning "shared version of the library, which you do not appear to have"- func_warning "because the file extensions .$libext of this argument makes me believe"- func_warning "that it is just a static archive that I should not use here."+ echo+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."+ echo "*** I have the capability to make that library automatically link in when"+ echo "*** you link to this library. But I can only do this if you have a"+ echo "*** shared version of the library, which you do not appear to have"+ echo "*** because the file extensions .$libext of this argument makes me believe"+ echo "*** that it is just a static archive that I should not use here." fi ;; esac@@ -8343,19 +8170,19 @@ # It is a libtool convenience library, so add in its objects. func_append convenience " $ladir/$objdir/$old_library" func_append old_convenience " $ladir/$objdir/$old_library"+ tmp_libs=+ for deplib in $dependency_libs; do+ deplibs="$deplib $deplibs"+ if $opt_preserve_dup_deps; then+ case "$tmp_libs " in+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;+ esac+ fi+ func_append tmp_libs " $deplib"+ done elif test prog != "$linkmode" && test lib != "$linkmode"; then func_fatal_error "'$lib' is not a convenience library" fi- tmp_libs=- for deplib in $dependency_libs; do- deplibs="$deplib $deplibs"- if $opt_preserve_dup_deps; then- case "$tmp_libs " in- *" $deplib "*) func_append specialdeplibs " $deplib" ;;- esac- fi- func_append tmp_libs " $deplib"- done continue fi # $pass = conv @@ -8444,7 +8271,7 @@ fi case $host in # special handling for platforms with PE-DLLs.- *cygwin* | *mingw* | *windows* | *cegcc* )+ *cygwin* | *mingw* | *cegcc* ) # Linker will automatically link against shared library if both # static and shared are present. Therefore, ensure we extract # symbols from the import library if a shared library is present@@ -8544,10 +8371,7 @@ # Make sure the rpath contains only unique directories. case $temp_rpath: in *"$absdir:"*) ;;- *) case $absdir in- "$progdir/"*) func_append temp_rpath "$absdir:" ;;- *) func_append temp_rpath_tail "$absdir:" ;;- esac+ *) func_append temp_rpath "$absdir:" ;; esac fi @@ -8557,12 +8381,9 @@ case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *)- case "$compile_rpath$compile_rpath_tail " in+ case "$compile_rpath " in *" $absdir "*) ;;- *) case $absdir in- "$progdir/"*) func_append compile_rpath " $absdir" ;;- *) func_append compile_rpath_tail " $absdir" ;;- esac+ *) func_append compile_rpath " $absdir" ;; esac ;; esac@@ -8593,8 +8414,8 @@ fi if test -n "$library_names" && { test no = "$use_static_libs" || test -z "$old_library"; }; then- case $host_os in- cygwin* | mingw* | windows* | cegcc* | os2*)+ case $host in+ *cygwin* | *mingw* | *cegcc* | *os2*) # No point in relinking DLLs because paths are not encoded func_append notinst_deplibs " $lib" need_relink=no@@ -8620,11 +8441,11 @@ if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then echo if test prog = "$linkmode"; then- func_warning "Linking the executable $output against the loadable module"+ $ECHO "*** Warning: Linking the executable $output against the loadable module" else- func_warning "Linking the shared library $output against the loadable module"+ $ECHO "*** Warning: Linking the shared library $output against the loadable module" fi- func_warning "$linklib is not portable!"+ $ECHO "*** $linklib is not portable!" fi if test lib = "$linkmode" && test yes = "$hardcode_into_libs"; then@@ -8634,12 +8455,9 @@ case " $sys_lib_dlsearch_path " in *" $absdir "*) ;; *)- case "$compile_rpath$compile_rpath_tail " in+ case "$compile_rpath " in *" $absdir "*) ;;- *) case $absdir in- "$progdir/"*) func_append compile_rpath " $absdir" ;;- *) func_append compile_rpath_tail " $absdir" ;;- esac+ *) func_append compile_rpath " $absdir" ;; esac ;; esac@@ -8666,8 +8484,8 @@ soname=$dlname elif test -n "$soname_spec"; then # bleh windows- case $host_os in- cygwin* | mingw* | windows* | cegcc* | os2*)+ case $host in+ *cygwin* | mingw* | *cegcc* | *os2*) func_arith $current - $age major=$func_arith_result versuffix=-$major@@ -8714,7 +8532,6 @@ case $host in *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; *-*-sysv4*uw2*) add_dir=-L$dir ;;- *-*-emscripten*) add_dir=-L$dir ;; *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ *-*-unixware7*) add_dir=-L$dir ;; *-*-darwin* )@@ -8723,10 +8540,11 @@ if /usr/bin/file -L $add 2> /dev/null | $GREP ": [^:]* bundle" >/dev/null; then if test "X$dlopenmodule" != "X$lib"; then- func_warning "lib $linklib is a module, not a shared library"+ $ECHO "*** Warning: lib $linklib is a module, not a shared library" if test -z "$old_library"; then- func_warning "And there doesn't seem to be a static archive available"- func_warning "The link will probably fail, sorry"+ echo+ echo "*** And there doesn't seem to be a static archive available"+ echo "*** The link will probably fail, sorry" else add=$dir/$old_library fi@@ -8809,7 +8627,7 @@ test no = "$hardcode_direct_absolute"; then add=$libdir/$linklib elif test yes = "$hardcode_minus_L"; then- add_dir=-L$lt_sysroot$libdir+ add_dir=-L$libdir add=-l$name elif test yes = "$hardcode_shlibpath_var"; then case :$finalize_shlibpath: in@@ -8826,7 +8644,7 @@ fi else # We cannot seem to hardcode it, guess we'll fake it.- add_dir=-L$lt_sysroot$libdir+ add_dir=-L$libdir # Try looking first in the location we're being installed to. if test -n "$inst_prefix_dir"; then case $libdir in@@ -8866,19 +8684,21 @@ # Just print a warning and add the library to dependency_libs so # that the program can be linked against the static library.- func_warning "This system cannot link to static lib archive $lib."- func_warning "I have the capability to make that library automatically link in when"- func_warning "you link to this library. But I can only do this if you have a"- func_warning "shared version of the library, which you do not appear to have."+ echo+ $ECHO "*** Warning: This system cannot link to static lib archive $lib."+ echo "*** I have the capability to make that library automatically link in when"+ echo "*** you link to this library. But I can only do this if you have a"+ echo "*** shared version of the library, which you do not appear to have." if test yes = "$module"; then- func_warning "But as you try to build a module library, libtool will still create "- func_warning "a static module, that should work as long as the dlopening application"- func_warning "is linked with the -dlopen flag to resolve symbols at runtime."+ echo "*** But as you try to build a module library, libtool will still create "+ echo "*** a static module, that should work as long as the dlopening application"+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime." if test -z "$global_symbol_pipe"; then- func_warning "However, this would only work if libtool was able to extract symbol"- func_warning "lists from a program, using 'nm' or equivalent, but libtool could"- func_warning "not find such a program. So, this module is probably useless."- func_warning "'nm' from GNU binutils and a full rebuild may help."+ echo+ echo "*** However, this would only work if libtool was able to extract symbol"+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"+ echo "*** not find such a program. So, this module is probably useless."+ echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then build_libtool_libs=module@@ -9001,10 +8821,6 @@ fi # link_all_deplibs != no fi # linkmode = lib done # for deplib in $libs-- func_append temp_rpath "$temp_rpath_tail"- func_append compile_rpath "$compile_rpath_tail"- if test link = "$pass"; then if test prog = "$linkmode"; then compile_deplibs="$new_inherited_linker_flags $compile_deplibs"@@ -9042,46 +8858,42 @@ # Add libraries to $var in reverse order eval tmp_libs=\"\$$var\" new_libs=- # FIXME: Pedantically, this is the right thing to do, so- # that some nasty dependency loop isn't accidentally- # broken: new_libs="$deplib $new_libs" for deplib in $tmp_libs; do- if $opt_preserve_dup_deps; then- new_libs="$deplib $new_libs"- else- # Pragmatically, this seems to cause very few problems in- # practice:- case $deplib in- -L*) new_libs="$deplib $new_libs" ;;- -R*) ;;+ # FIXME: Pedantically, this is the right thing to do, so+ # that some nasty dependency loop isn't accidentally+ # broken:+ #new_libs="$deplib $new_libs"+ # Pragmatically, this seems to cause very few problems in+ # practice:+ case $deplib in+ -L*) new_libs="$deplib $new_libs" ;;+ -R*) ;;+ *)+ # And here is the reason: when a library appears more+ # than once as an explicit dependence of a library, or+ # is implicitly linked in more than once by the+ # compiler, it is considered special, and multiple+ # occurrences thereof are not removed. Compare this+ # with having the same library being listed as a+ # dependency of multiple other libraries: in this case,+ # we know (pedantically, we assume) the library does not+ # need to be listed more than once, so we keep only the+ # last copy. This is not always right, but it is rare+ # enough that we require users that really mean to play+ # such unportable linking tricks to link the library+ # using -Wl,-lname, so that libtool does not consider it+ # for duplicate removal.+ case " $specialdeplibs " in+ *" $deplib "*) new_libs="$deplib $new_libs" ;; *)- # And here is the reason: when a library appears more- # than once as an explicit dependence of a library, or- # is implicitly linked in more than once by the- # compiler, it is considered special, and multiple- # occurrences thereof are not removed. Compare this- # with having the same library being listed as a- # dependency of multiple other libraries: in this case,- # we know (pedantically, we assume) the library does not- # need to be listed more than once, so we keep only the- # last copy. This is not always right, but it is rare- # enough that we require users that really mean to play- # such unportable linking tricks to link the library- # using -Wl,-lname, so that libtool does not consider it- # for duplicate removal. And if not possible for portability- # reasons, then --preserve-dup-deps should be used.- case " $specialdeplibs " in- *" $deplib "*) new_libs="$deplib $new_libs" ;;- *)- case " $new_libs " in- *" $deplib "*) ;;- *) new_libs="$deplib $new_libs" ;;- esac- ;;- esac- ;;+ case " $new_libs " in+ *" $deplib "*) ;;+ *) new_libs="$deplib $new_libs" ;;+ esac+ ;; esac- fi+ ;;+ esac done tmp_libs= for deplib in $new_libs; do@@ -9213,7 +9025,9 @@ if test pass_all != "$deplibs_check_method"; then func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" else- func_warning "Linking the shared library $output against the non-libtool objects $objs is not portable!"+ echo+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"+ $ECHO "*** objects $objs is not portable!" func_append libobjs " $objs" fi fi@@ -9274,13 +9088,13 @@ # case $version_type in # correct linux to gnu/linux during the next big refactor- darwin|freebsd-elf|linux|midnightbsd-elf|osf|qnx|windows|none)+ darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none) func_arith $number_major + $number_minor current=$func_arith_result age=$number_minor revision=$number_revision ;;- freebsd-aout|sco|sunos)+ freebsd-aout|qnx|sunos) current=$number_major revision=$number_minor age=0@@ -9430,9 +9244,8 @@ ;; qnx)- func_arith $current - $age- major=.$func_arith_result- versuffix=$major.$age.$revision+ major=.$current+ versuffix=.$current ;; sco)@@ -9585,7 +9398,7 @@ if test yes = "$build_libtool_libs"; then if test -n "$rpath"; then case $host in- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) # these systems don't actually have a c library (as such)! ;; *-*-rhapsody* | *-*-darwin1.[012])@@ -9636,6 +9449,108 @@ # implementing what was already the behavior. newdeplibs=$deplibs ;;+ test_compile)+ # This code stresses the "libraries are programs" paradigm to its+ # limits. Maybe even breaks it. We compile a program, linking it+ # against the deplibs as a proxy for the library. Then we can check+ # whether they linked in statically or dynamically with ldd.+ $opt_dry_run || $RM conftest.c+ cat > conftest.c <<EOF+ int main() { return 0; }+EOF+ $opt_dry_run || $RM conftest+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then+ ldd_output=`ldd conftest`+ for i in $deplibs; do+ case $i in+ -l*)+ func_stripname -l '' "$i"+ name=$func_stripname_result+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then+ case " $predeps $postdeps " in+ *" $i "*)+ func_append newdeplibs " $i"+ i=+ ;;+ esac+ fi+ if test -n "$i"; then+ libname=`eval "\\$ECHO \"$libname_spec\""`+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`+ set dummy $deplib_matches; shift+ deplib_match=$1+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then+ func_append newdeplibs " $i"+ else+ droppeddeps=yes+ echo+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."+ echo "*** I have the capability to make that library automatically link in when"+ echo "*** you link to this library. But I can only do this if you have a"+ echo "*** shared version of the library, which I believe you do not have"+ echo "*** because a test_compile did reveal that the linker did not use it for"+ echo "*** its dynamic dependency list that programs get resolved with at runtime."+ fi+ fi+ ;;+ *)+ func_append newdeplibs " $i"+ ;;+ esac+ done+ else+ # Error occurred in the first compile. Let's try to salvage+ # the situation: Compile a separate program for each library.+ for i in $deplibs; do+ case $i in+ -l*)+ func_stripname -l '' "$i"+ name=$func_stripname_result+ $opt_dry_run || $RM conftest+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then+ ldd_output=`ldd conftest`+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then+ case " $predeps $postdeps " in+ *" $i "*)+ func_append newdeplibs " $i"+ i=+ ;;+ esac+ fi+ if test -n "$i"; then+ libname=`eval "\\$ECHO \"$libname_spec\""`+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`+ set dummy $deplib_matches; shift+ deplib_match=$1+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then+ func_append newdeplibs " $i"+ else+ droppeddeps=yes+ echo+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."+ echo "*** I have the capability to make that library automatically link in when"+ echo "*** you link to this library. But I can only do this if you have a"+ echo "*** shared version of the library, which you do not appear to have"+ echo "*** because a test_compile did reveal that the linker did not use this one"+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."+ fi+ fi+ else+ droppeddeps=yes+ echo+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"+ echo "*** make it link in! You will probably need to install it or some"+ echo "*** library that it depends on before this library will be fully"+ echo "*** functional. Installing it before continuing would be even better."+ fi+ ;;+ *)+ func_append newdeplibs " $i"+ ;;+ esac+ done+ fi+ ;; file_magic*) set dummy $deplibs_check_method; shift file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`@@ -9699,16 +9614,17 @@ fi if test -n "$a_deplib"; then droppeddeps=yes- func_warning "Linker path does not have real file for library $a_deplib."- func_warning "I have the capability to make that library automatically link in when"- func_warning "you link to this library. But I can only do this if you have a"- func_warning "shared version of the library, which you do not appear to have"- func_warning "because I did check the linker path looking for a file starting"+ echo+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."+ echo "*** I have the capability to make that library automatically link in when"+ echo "*** you link to this library. But I can only do this if you have a"+ echo "*** shared version of the library, which you do not appear to have"+ echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then- func_warning "with $libname but no candidates were found. (...for file magic test)"+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)" else- func_warning "with $libname and none of the candidates passed a file format test"- func_warning "using a file magic. Last file checked: $potlib"+ $ECHO "*** with $libname and none of the candidates passed a file format test"+ $ECHO "*** using a file magic. Last file checked: $potlib" fi fi ;;@@ -9752,16 +9668,17 @@ fi if test -n "$a_deplib"; then droppeddeps=yes- func_warning "Linker path does not have real file for library $a_deplib."- func_warning "I have the capability to make that library automatically link in when"- func_warning "you link to this library. But I can only do this if you have a"- func_warning "shared version of the library, which you do not appear to have"- func_warning "because I did check the linker path looking for a file starting"+ echo+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."+ echo "*** I have the capability to make that library automatically link in when"+ echo "*** you link to this library. But I can only do this if you have a"+ echo "*** shared version of the library, which you do not appear to have"+ echo "*** because I did check the linker path looking for a file starting" if test -z "$potlib"; then- func_warning "with $libname but no candidates were found. (...for regex pattern test)"+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" else- func_warning "with $libname and none of the candidates passed a file format test"- func_warning "using a regex pattern. Last file checked: $potlib"+ $ECHO "*** with $libname and none of the candidates passed a file format test"+ $ECHO "*** using a regex pattern. Last file checked: $potlib" fi fi ;;@@ -9785,11 +9702,11 @@ *[!\ \ ]*) echo if test none = "$deplibs_check_method"; then- func_warning "Inter-library dependencies are not supported in this platform."+ echo "*** Warning: inter-library dependencies are not supported in this platform." else- func_warning "Inter-library dependencies are not known to be supported."+ echo "*** Warning: inter-library dependencies are not known to be supported." fi- func_warning "All declared inter-library dependencies are being dropped."+ echo "*** All declared inter-library dependencies are being dropped." droppeddeps=yes ;; esac@@ -9810,15 +9727,17 @@ if test yes = "$droppeddeps"; then if test yes = "$module"; then- func_warning "libtool could not satisfy all declared inter-library"- func_warning "dependencies of module $libname. Therefore, libtool will create"- func_warning "a static module, that should work as long as the dlopening"- func_warning "application is linked with the -dlopen flag."+ echo+ echo "*** Warning: libtool could not satisfy all declared inter-library"+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"+ echo "*** a static module, that should work as long as the dlopening"+ echo "*** application is linked with the -dlopen flag." if test -z "$global_symbol_pipe"; then- func_warning "However, this would only work if libtool was able to extract symbol"- func_warning "lists from a program, using 'nm' or equivalent, but libtool could"- func_warning "not find such a program. So, this module is probably useless."- func_warning "'nm' from GNU binutils and a full rebuild may help."+ echo+ echo "*** However, this would only work if libtool was able to extract symbol"+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"+ echo "*** not find such a program. So, this module is probably useless."+ echo "*** 'nm' from GNU binutils and a full rebuild may help." fi if test no = "$build_old_libs"; then oldlibs=$output_objdir/$libname.$libext@@ -9993,7 +9912,7 @@ orig_export_symbols= case $host_os in- cygwin* | mingw* | windows* | cegcc*)+ cygwin* | mingw* | cegcc*) if test -n "$export_symbols" && test -z "$export_symbols_regex"; then # exporting using user supplied symfile func_dll_def_p "$export_symbols" || {@@ -10191,7 +10110,20 @@ last_robj= k=1 - if test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then+ if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then+ output=$output_objdir/$output_la.lnkscript+ func_verbose "creating GNU ld script: $output"+ echo 'INPUT (' > $output+ for obj in $save_libobjs+ do+ func_to_tool_file "$obj"+ $ECHO "$func_to_tool_file_result" >> $output+ done+ echo ')' >> $output+ func_append delfiles " $output"+ func_to_tool_file "$output"+ output=$func_to_tool_file_result+ elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then output=$output_objdir/$output_la.lnk func_verbose "creating linker input file list: $output" : > $output@@ -10210,19 +10142,6 @@ func_append delfiles " $output" func_to_tool_file "$output" output=$firstobj\"$file_list_spec$func_to_tool_file_result\"- elif test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then- output=$output_objdir/$output_la.lnkscript- func_verbose "creating GNU ld script: $output"- echo 'INPUT (' > $output- for obj in $save_libobjs- do- func_to_tool_file "$obj"- $ECHO "$func_to_tool_file_result" >> $output- done- echo ')' >> $output- func_append delfiles " $output"- func_to_tool_file "$output"- output=$func_to_tool_file_result else if test -n "$save_libobjs"; then func_verbose "creating reloadable object files..."@@ -10663,7 +10582,7 @@ esac fi case $host in- *-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-os2* | *-cegcc*)+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` case :$dllsearchpath: in *":$libdir:"*) ;;@@ -10741,7 +10660,7 @@ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. wrappers_required=false ;;- *cygwin* | *mingw* | *windows* )+ *cygwin* | *mingw* ) test yes = "$build_libtool_libs" || wrappers_required=false ;; *)@@ -10895,7 +10814,7 @@ *) exeext= ;; esac case $host in- *cygwin* | *mingw* | windows* )+ *cygwin* | *mingw* ) func_dirname_and_basename "$output" "" "." output_name=$func_basename_result output_path=$func_dirname_result@@ -11229,7 +11148,7 @@ # tests/bindir.at for full details. tdlname=$dlname case $host,$output,$installed,$module,$dlname in- *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *windows*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) # If a -bindir argument was supplied, place the dll there. if test -n "$bindir"; then func_relative_path "$install_libdir" "$bindir"
m4/libtool.m4 view
@@ -1,6 +1,6 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- #-# Copyright (C) 1996-2001, 2003-2019, 2021-2024 Free Software+# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gordon Matzigkeit, 1996 #@@ -9,13 +9,13 @@ # modifications, as long as this notice is preserved. m4_define([_LT_COPYING], [dnl-# Copyright (C) 2024 Free Software Foundation, Inc.+# Copyright (C) 2014 Free Software Foundation, Inc. # This is free software; see the source for copying conditions. There is NO # warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # GNU Libtool 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 2 of the License, or+# the Free Software Foundation; either version 2 of of the License, or # (at your option) any later version. # # As a special exception to the GNU General Public License, if you@@ -32,7 +32,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. ]) -# serial 63 LT_INIT+# serial 59 LT_INIT # LT_PREREQ(VERSION)@@ -60,7 +60,7 @@ # LT_INIT([OPTIONS]) # ------------------ AC_DEFUN([LT_INIT],-[AC_PREREQ([2.64])dnl We use AC_PATH_PROGS_FEATURE_CHECK+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl AC_BEFORE([$0], [LT_LANG])dnl AC_BEFORE([$0], [LT_OUTPUT])dnl@@ -616,7 +616,7 @@ # LT_OUTPUT # --------- # This macro allows early generation of the libtool script (before-# AC_OUTPUT is called), in case it is used in configure for compilation+# AC_OUTPUT is called), incase it is used in configure for compilation # tests. AC_DEFUN([LT_OUTPUT], [: ${CONFIG_LT=./config.lt}@@ -651,9 +651,9 @@ m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) configured by $[0], generated by m4_PACKAGE_STRING. -Copyright (C) 2024 Free Software Foundation, Inc.+Copyright (C) 2011 Free Software Foundation, Inc. This config.lt script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it."+gives unlimited permision to copy, distribute and modify it." while test 0 != $[#] do@@ -974,7 +974,6 @@ $RM -r conftest* ])# _LT_LINKER_BOILERPLATE - # _LT_REQUIRED_DARWIN_CHECKS # ------------------------- m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[@@ -1025,21 +1024,6 @@ rm -f conftest.* fi]) - # Feature test to disable chained fixups since it is not- # compatible with '-undefined dynamic_lookup'- AC_CACHE_CHECK([for -no_fixup_chains linker flag],- [lt_cv_support_no_fixup_chains],- [ save_LDFLAGS=$LDFLAGS- LDFLAGS="$LDFLAGS -Wl,-no_fixup_chains"- AC_LINK_IFELSE(- [AC_LANG_PROGRAM([],[])],- lt_cv_support_no_fixup_chains=yes,- lt_cv_support_no_fixup_chains=no- )- LDFLAGS=$save_LDFLAGS- ]- )- AC_CACHE_CHECK([for -exported_symbols_list linker flag], [lt_cv_ld_exported_symbols_list], [lt_cv_ld_exported_symbols_list=no@@ -1064,7 +1048,7 @@ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF-int main(void) { return 0;}+int main() { return 0;} _LT_EOF echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err@@ -1089,32 +1073,13 @@ 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; *)- _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup'- if test yes = "$lt_cv_support_no_fixup_chains"; then- AS_VAR_APPEND([_lt_dar_allow_undefined], [' $wl-no_fixup_chains'])- fi- ;;+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac if test yes = "$lt_cv_apple_cc_single_mod"; then _lt_dar_single_mod='$single_module' fi- _lt_dar_needs_single_mod=no- case $host_os in- rhapsody* | darwin1.*)- _lt_dar_needs_single_mod=yes ;;- darwin*)- # When targeting Mac OS X 10.4 (darwin 8) or later,- # -single_module is the default and -multi_module is unsupported.- # The toolchain on macOS 10.14 (darwin 18) and later cannot- # target any OS version that needs -single_module.- case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in- 10.0,*-darwin[[567]].*|10.[[0-3]],*-darwin[[5-9]].*|10.[[0-3]],*-darwin1[[0-7]].*)- _lt_dar_needs_single_mod=yes ;;- esac- ;;- esac if test yes = "$lt_cv_ld_exported_symbols_list"; then _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' else@@ -1160,7 +1125,7 @@ _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX],-[ if test yes = "$_lt_dar_needs_single_mod" -a yes != "$lt_cv_apple_cc_single_mod"; then+[ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi@@ -1290,9 +1255,7 @@ case $with_sysroot in #( yes) if test yes = "$GCC"; then- # Trim trailing / since we'll always append absolute paths and we want- # to avoid //, if only for less confusing output for the user.- lt_sysroot=`$CC --print-sysroot 2>/dev/null | $SED 's:/\+$::'`+ lt_sysroot=`$CC --print-sysroot 2>/dev/null` fi ;; #( /*)@@ -1404,7 +1367,7 @@ ;; x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \-s390*-*linux*|s390*-*tpf*|sparc*-*linux*|x86_64-gnu*)+s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # Find out what ABI is being produced by ac_compile, and set linker # options accordingly. Note that the listed cases only cover the # situations where additional linker options are needed (such as when@@ -1419,7 +1382,7 @@ x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;;- x86_64-*linux*|x86_64-gnu*)+ x86_64-*linux*) case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64"@@ -1448,7 +1411,7 @@ x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_x86_64_fbsd" ;;- x86_64-*linux*|x86_64-gnu*)+ x86_64-*linux*) LD="${LD-ld} -m elf_x86_64" ;; powerpcle-*linux*)@@ -1531,7 +1494,7 @@ # Use ARFLAGS variable as AR's operation code to sync the variable naming with # Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have-# higher priority because that's what people were doing historically (setting+# higher priority because thats what people were doing historically (setting # ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS # variable obsoleted/removed. @@ -1581,7 +1544,7 @@ test -z "$STRIP" && STRIP=: _LT_DECL([], [STRIP], [1], [A symbol stripping program]) -AC_REQUIRE([AC_PROG_RANLIB])+AC_CHECK_TOOL(RANLIB, ranlib, :) test -z "$RANLIB" && RANLIB=: _LT_DECL([], [RANLIB], [1], [Commands used to install an old-style archive])@@ -1592,8 +1555,15 @@ old_postuninstall_cmds= if test -n "$RANLIB"; then+ case $host_os in+ bitrig* | openbsd*)+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"+ ;;+ *)+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"+ ;;+ esac old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"- old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" fi case $host_os in@@ -1725,14 +1695,14 @@ lt_cv_sys_max_cmd_len=12288; # 12K is about right ;; - gnu* | ironclad*)- # Under GNU Hurd and Ironclad, this test is not required because there- # is no limit to the length of command line arguments.+ gnu*)+ # Under GNU Hurd, this test is not required because there is+ # no limit to the length of command line arguments. # Libtool will interpret -1 as no limit whatsoever lt_cv_sys_max_cmd_len=-1; ;; - cygwin* | mingw* | windows* | cegcc*)+ cygwin* | mingw* | cegcc*) # On Win9x/ME, this test blows up -- it succeeds, but takes # about 5 minutes as the teststring grows exponentially. # Worse, since 9x/ME are not pre-emptively multitasking,@@ -1754,7 +1724,7 @@ lt_cv_sys_max_cmd_len=8192; ;; - darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)+ bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`@@ -1914,11 +1884,11 @@ /* When -fvisibility=hidden is used, assume the code has been annotated correspondingly for the symbols needed. */ #if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))-int fnord (void) __attribute__((visibility("default")));+int fnord () __attribute__((visibility("default"))); #endif -int fnord (void) { return 42; }-int main (void)+int fnord () { return 42; }+int main () { void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); int status = $lt_dlunknown;@@ -1975,7 +1945,7 @@ lt_cv_dlopen_self=yes ;; - mingw* | windows* | pw32* | cegcc*)+ mingw* | pw32* | cegcc*) lt_cv_dlopen=LoadLibrary lt_cv_dlopen_libs= ;;@@ -2343,7 +2313,7 @@ *) lt_awk_arg='/^libraries:/' ;; esac case $host_os in- mingw* | windows* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; *) lt_sed_strip_eq='s|=/|/|g' ;; esac lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`@@ -2401,7 +2371,7 @@ # AWK program above erroneously prepends '/' to C:/dos/paths # for these hosts. case $host_os in- mingw* | windows* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; esac sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`@@ -2476,7 +2446,7 @@ # Unfortunately, runtime linking may impact performance, so we do # not want this to be the default eventually. Also, we use the # versioned .so libs for executables only if there is the -brtl- # linker flag in LDFLAGS as well, or --enable-aix-soname=svr4 only.+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. # To allow for filename-based versioning support, we need to create # libNAME.so.V as an archive file, containing: # *) an Import File, referring to the versioned filename of the@@ -2570,7 +2540,7 @@ # libtool to hard-code these into programs ;; -cygwin* | mingw* | windows* | pw32* | cegcc*)+cygwin* | mingw* | pw32* | cegcc*) version_type=windows shrext_cmds=.dll need_version=no@@ -2581,29 +2551,15 @@ # gcc library_names_spec='$libname.dll.a' # DLL is installed to $(libdir)/../bin by postinstall_cmds- # If user builds GCC with multilib enabled,- # it should just install on $(libdir)- # not on $(libdir)/../bin or 32 bits dlls would override 64 bit ones.- if test xyes = x"$multilib"; then- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- $install_prog $dir/$dlname $destdir/$dlname~- chmod a+x $destdir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib $destdir/$dlname'\'' || exit \$?;- fi'- else- postinstall_cmds='base_file=`basename \$file`~- dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~- dldir=$destdir/`dirname \$dlpath`~- test -d \$dldir || mkdir -p \$dldir~- $install_prog $dir/$dlname \$dldir/$dlname~- chmod a+x \$dldir/$dlname~- if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then- eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;- fi'- fi+ postinstall_cmds='base_file=`basename \$file`~+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~+ dldir=$destdir/`dirname \$dlpath`~+ test -d \$dldir || mkdir -p \$dldir~+ $install_prog $dir/$dlname \$dldir/$dlname~+ chmod a+x \$dldir/$dlname~+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;+ fi' postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ dlpath=$dir/\$dldll~ $RM \$dlpath'@@ -2616,7 +2572,7 @@ m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;;- mingw* | windows* | cegcc*)+ mingw* | cegcc*) # MinGW DLLs use traditional 'lib' prefix soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;;@@ -2635,7 +2591,7 @@ library_names_spec='$libname.dll.lib' case $build_os in- mingw* | windows*)+ mingw*) sys_lib_search_path_spec= lt_save_ifs=$IFS IFS=';'@@ -2742,21 +2698,7 @@ need_version=yes ;; esac- case $host_cpu in- powerpc64)- # On FreeBSD bi-arch platforms, a different variable is used for 32-bit- # binaries. See <https://man.freebsd.org/cgi/man.cgi?query=ld.so>.- AC_COMPILE_IFELSE(- [AC_LANG_SOURCE(- [[int test_pointer_size[sizeof (void *) - 5];- ]])],- [shlibpath_var=LD_LIBRARY_PATH],- [shlibpath_var=LD_32_LIBRARY_PATH])- ;;- *)- shlibpath_var=LD_LIBRARY_PATH- ;;- esac+ shlibpath_var=LD_LIBRARY_PATH case $host_os in freebsd2.*) shlibpath_overrides_runpath=yes@@ -2786,9 +2728,8 @@ soname_spec='$libname$release$shared_ext$major' shlibpath_var=LIBRARY_PATH shlibpath_overrides_runpath=no- sys_lib_search_path_spec='/boot/system/non-packaged/develop/lib /boot/system/develop/lib'- sys_lib_dlsearch_path_spec='/boot/home/config/non-packaged/lib /boot/home/config/lib /boot/system/non-packaged/lib /boot/system/lib'- hardcode_into_libs=no+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'+ hardcode_into_libs=yes ;; hpux9* | hpux10* | hpux11*)@@ -2898,7 +2839,7 @@ version_type=none # Android doesn't support versioned libraries. need_lib_prefix=no need_version=no- library_names_spec='$libname$release$shared_ext $libname$shared_ext'+ library_names_spec='$libname$release$shared_ext' soname_spec='$libname$release$shared_ext' finish_cmds= shlibpath_var=LD_LIBRARY_PATH@@ -2910,9 +2851,8 @@ hardcode_into_libs=yes dynamic_linker='Android linker'- # -rpath works at least for libraries that are not overridden by- # libraries installed in system locations.- _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'+ # Don't embed -rpath directories since the linker doesn't support them.+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' ;; # This must be glibc/ELF.@@ -2946,10 +2886,7 @@ # before this can be enabled. hardcode_into_libs=yes - # Add ABI-specific directories to the system library path.- sys_lib_dlsearch_path_spec="/lib64 /usr/lib64 /lib /usr/lib"-- # Ideally, we could use ldconfig to report *all* directories which are+ # Ideally, we could use ldconfig to report *all* directores which are # searched for libraries, however this is still not possible. Aside from not # being certain /sbin/ldconfig is available, command # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,@@ -2957,7 +2894,7 @@ # appending ld.so.conf contents (and includes) to the search path. if test -f /etc/ld.so.conf; then lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`- sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec $lt_ld_extra"+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" fi # We used to test for /lib/ld.so.1 and disable shared libraries on@@ -2973,8 +2910,8 @@ version_type=linux need_lib_prefix=no need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'+ soname_spec='${libname}${release}${shared_ext}$major' shlibpath_var=LD_LIBRARY_PATH shlibpath_overrides_runpath=no hardcode_into_libs=yes@@ -2999,18 +2936,6 @@ hardcode_into_libs=yes ;; -*-mlibc)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- dynamic_linker='mlibc ld.so'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- hardcode_into_libs=yes- ;;- newsos6) version_type=linux # correct to gnu/linux during the next big refactor library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'@@ -3030,7 +2955,7 @@ dynamic_linker='ldqnx.so' ;; -openbsd*)+openbsd* | bitrig*) version_type=sunos sys_lib_dlsearch_path_spec=/usr/lib need_lib_prefix=no@@ -3090,17 +3015,6 @@ dynamic_linker=no ;; -serenity*)- version_type=linux # correct to gnu/linux during the next big refactor- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'- soname_spec='$libname$release$shared_ext$major'- shlibpath_var=LD_LIBRARY_PATH- shlibpath_overrides_runpath=no- dynamic_linker='SerenityOS LibELF'- ;;- solaris*) version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no@@ -3198,21 +3112,6 @@ shlibpath_var=LD_LIBRARY_PATH ;; -emscripten*)- version_type=none- need_lib_prefix=no- need_version=no- library_names_spec='$libname$release$shared_ext'- soname_spec='$libname$release$shared_ext'- finish_cmds=- dynamic_linker="Emscripten linker"- _LT_COMPILER_PIC($1)='-fPIC'- _LT_TAGVAR(archive_cmds, $1)='$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib'- _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -sSIDE_MODULE=2 -shared $libobjs $deplibs $compiler_flags -o $lib -s EXPORTED_FUNCTIONS=@$output_objdir/$soname.expsym'- _LT_TAGVAR(archive_cmds_need_lc, $1)=no- _LT_TAGVAR(no_undefined_flag, $1)=- ;;- *) dynamic_linker=no ;;@@ -3388,7 +3287,7 @@ # Check if gcc -print-prog-name=ld gives a path. AC_MSG_CHECKING([for ld used by $CC]) case $host in- *-*-mingw* | *-*-windows*)+ *-*-mingw*) # gcc leaves a trailing carriage return, which upsets mingw ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; *)@@ -3497,7 +3396,7 @@ esac reload_cmds='$LD$reload_flag -o $output$reload_objs' case $host_os in- cygwin* | mingw* | windows* | pw32* | cegcc*)+ cygwin* | mingw* | pw32* | cegcc*) if test yes != "$GCC"; then reload_cmds=false fi@@ -3569,6 +3468,7 @@ # 'none' -- dependencies not supported. # 'unknown' -- same as none, but documents that we really don't know. # 'pass_all' -- all dependencies passed with no checks.+# 'test_compile' -- check by making test program. # 'file_magic [[regex]]' -- check by looking for files in library path # that responds to the $file_magic_cmd with a given extended regex. # If you have 'file' or equivalent on your system and you're not sure@@ -3595,7 +3495,7 @@ lt_cv_file_magic_cmd='func_win32_libid' ;; -mingw* | windows* | pw32*)+mingw* | pw32*) # Base MSYS/MinGW do not provide the 'file' command needed by # func_win32_libid shell function, so use a weaker test based on 'objdump', # unless we find 'file', for example because we are cross-compiling.@@ -3604,7 +3504,7 @@ lt_cv_file_magic_cmd='func_win32_libid' else # Keep this pattern in sync with the one in func_win32_libid.- lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64|pe-aarch64)'+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' lt_cv_file_magic_cmd='$OBJDUMP -f' fi ;;@@ -3677,10 +3577,6 @@ lt_cv_deplibs_check_method=pass_all ;; -*-mlibc)- lt_cv_deplibs_check_method=pass_all- ;;- netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'@@ -3699,7 +3595,7 @@ lt_cv_deplibs_check_method=pass_all ;; -openbsd*)+openbsd* | bitrig*) if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' else@@ -3715,10 +3611,6 @@ lt_cv_deplibs_check_method=pass_all ;; -serenity*)- lt_cv_deplibs_check_method=pass_all- ;;- solaris*) lt_cv_deplibs_check_method=pass_all ;;@@ -3767,7 +3659,7 @@ want_nocaseglob=no if test "$build" = "$host"; then case $host_os in- mingw* | windows* | pw32*)+ mingw* | pw32*) if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then want_nocaseglob=yes else@@ -3819,7 +3711,7 @@ # Tru64's nm complains that /dev/null is an invalid object file # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty case $build_os in- mingw* | windows*) lt_bad_file=conftest.nm/nofile ;;+ mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in@@ -3910,7 +3802,7 @@ [lt_cv_sharedlib_from_linklib_cmd='unknown' case $host_os in-cygwin* | mingw* | windows* | pw32* | cegcc*)+cygwin* | mingw* | pw32* | cegcc*) # two different shell functions defined in ltmain.sh; # decide which one to use based on capabilities of $DLLTOOL case `$DLLTOOL --help 2>&1` in@@ -3942,16 +3834,16 @@ m4_defun([_LT_PATH_MANIFEST_TOOL], [AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_manifest_tool],- [lt_cv_path_manifest_tool=no+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],+ [lt_cv_path_mainfest_tool=no echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out cat conftest.err >&AS_MESSAGE_LOG_FD if $GREP 'Manifest Tool' conftest.out > /dev/null; then- lt_cv_path_manifest_tool=yes+ lt_cv_path_mainfest_tool=yes fi rm -f conftest*])-if test yes != "$lt_cv_path_manifest_tool"; then+if test yes != "$lt_cv_path_mainfest_tool"; then MANIFEST_TOOL=: fi _LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl@@ -3980,7 +3872,7 @@ [AC_REQUIRE([AC_CANONICAL_HOST])dnl LIBM= case $host in-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-mingw* | *-*-pw32* | *-*-darwin*)+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) # These system don't have libm, or don't need it ;; *-ncr-sysv4.3*)@@ -4055,7 +3947,7 @@ aix*) symcode='[[BCDT]]' ;;-cygwin* | mingw* | windows* | pw32* | cegcc*)+cygwin* | mingw* | pw32* | cegcc*) symcode='[[ABCDGISTW]]' ;; hpux*)@@ -4070,7 +3962,7 @@ symcode='[[BCDEGQRST]]' ;; solaris*)- symcode='[[BCDRT]]'+ symcode='[[BDRT]]' ;; sco3.2v5*) symcode='[[DT]]'@@ -4134,7 +4026,7 @@ # Handle CRLF in mingw tool chain opt_cr= case $build_os in-mingw* | windows*)+mingw*) opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp ;; esac@@ -4185,7 +4077,7 @@ #ifdef __cplusplus } #endif-int main(void){nm_test_var='a';nm_test_func();return(0);}+int main(){nm_test_var='a';nm_test_func();return(0);} _LT_EOF if AC_TRY_EVAL(ac_compile); then@@ -4362,7 +4254,7 @@ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) # PIC is the default for these OSes. ;;- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)+ mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style@@ -4438,7 +4330,7 @@ ;; esac ;;- mingw* | windows* | cygwin* | os2* | pw32* | cegcc*)+ mingw* | cygwin* | os2* | pw32* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [],@@ -4566,8 +4458,6 @@ ;; netbsd* | netbsdelf*-gnu) ;;- *-mlibc)- ;; *qnx* | *nto*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump.@@ -4596,8 +4486,6 @@ ;; psos*) ;;- serenity*)- ;; solaris*) case $cc_basename in CC* | sunCC*)@@ -4690,7 +4578,7 @@ # PIC is the default for these OSes. ;; - mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)+ mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). # Although the cygwin gcc ignores -fPIC, still need this for old-style@@ -4794,7 +4682,7 @@ esac ;; - mingw* | windows* | cygwin* | pw32* | os2* | cegcc*)+ mingw* | cygwin* | pw32* | os2* | cegcc*) # This hack is so that the source file can tell whether it is being # built for inclusion in a dll (and should export symbols for example). m4_if([$1], [GCJ], [],@@ -4836,8 +4724,8 @@ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' ;;- *flang* | ftn | f18* | f95*)- # Flang compiler.+ # flang / f18. f95 an alias for gfortran or flang on Debian+ flang* | f18* | f95*) _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'@@ -4924,12 +4812,6 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' ;; - *-mlibc)- _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'- _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'- _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'- ;;- *nto* | *qnx*) # QNX uses GNU C++, but need to define -shared option too, otherwise # it will coredump.@@ -4946,9 +4828,6 @@ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' ;; - serenity*)- ;;- solaris*) _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'@@ -5084,7 +4963,7 @@ pw32*) _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds ;;- cygwin* | mingw* | windows* | cegcc*)+ cygwin* | mingw* | cegcc*) case $cc_basename in cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'@@ -5095,6 +4974,9 @@ ;; esac ;;+ linux* | k*bsd*-gnu | gnu*)+ _LT_TAGVAR(link_all_deplibs, $1)=no+ ;; *) _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' ;;@@ -5142,7 +5024,7 @@ extract_expsyms_cmds= case $host_os in- cygwin* | mingw* | windows* | pw32* | cegcc*)+ cygwin* | mingw* | pw32* | cegcc*) # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler.@@ -5154,6 +5036,12 @@ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;;+ openbsd* | bitrig*)+ with_gnu_ld=no+ ;;+ linux* | k*bsd*-gnu | gnu*)+ _LT_TAGVAR(link_all_deplibs, $1)=no+ ;; esac _LT_TAGVAR(ld_shlibs, $1)=yes@@ -5254,7 +5142,7 @@ fi ;; - cygwin* | mingw* | windows* | pw32* | cegcc*)+ cygwin* | mingw* | pw32* | cegcc*) # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, # as there is no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'@@ -5264,7 +5152,6 @@ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']- _LT_TAGVAR(file_list_spec, $1)='@' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'@@ -5284,7 +5171,7 @@ haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- _LT_TAGVAR(link_all_deplibs, $1)=no+ _LT_TAGVAR(link_all_deplibs, $1)=yes ;; os2*)@@ -5311,7 +5198,7 @@ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def'- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;;@@ -5411,11 +5298,6 @@ fi ;; - *-mlibc)- _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'- ;;- netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'@@ -5718,7 +5600,7 @@ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic ;; - cygwin* | mingw* | windows* | pw32* | cegcc*)+ cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is@@ -5735,14 +5617,14 @@ # Tell ltmain to make .dll files, not .so files. shrext_cmds=.dll # FIXME: Setting linknames here is a bad hack.- _LT_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then cp "$export_symbols" "$output_objdir/$soname.def"; echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; else $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; fi~- $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ linknames=' # The linker will not automatically build a static lib if we build a DLL. # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'@@ -5937,6 +5819,7 @@ if test yes = "$lt_cv_irix_exported_symbol"; then _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' fi+ _LT_TAGVAR(link_all_deplibs, $1)=no else _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'@@ -5959,9 +5842,6 @@ esac ;; - *-mlibc)- ;;- netbsd* | netbsdelf*-gnu) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out@@ -5984,7 +5864,7 @@ *nto* | *qnx*) ;; - openbsd*)+ openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no@@ -6027,7 +5907,7 @@ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def'- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;;@@ -6063,9 +5943,6 @@ _LT_TAGVAR(hardcode_libdir_separator, $1)=: ;; - serenity*)- ;;- solaris*) _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' if test yes = "$GCC"; then@@ -6324,7 +6201,7 @@ _LT_TAGDECL([], [hardcode_direct_absolute], [0], [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes DIR into the resulting binary and the resulting library dependency is- "absolute", i.e. impossible to change by setting $shlibpath_var if the+ "absolute", i.e impossible to change by setting $shlibpath_var if the library is relocated]) _LT_TAGDECL([], [hardcode_minus_L], [0], [Set to "yes" if using the -LDIR flag during linking hardcodes DIR@@ -6382,7 +6259,7 @@ lt_simple_compile_test_code="int some_variable = 0;" # Code to be used in simple link tests-lt_simple_link_test_code='int main(void){return(0);}'+lt_simple_link_test_code='int main(){return(0);}' _LT_TAG_COMPILER # Save the default compiler, since it gets overwritten when the other@@ -6571,7 +6448,8 @@ wlarc='$wl' # ancient GNU ld didn't support --whole-archive et. al.- if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |+ $GREP 'no-whole-archive' > /dev/null; then _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' else _LT_TAGVAR(whole_archive_flag_spec, $1)=@@ -6591,7 +6469,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library.- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else GXX=no@@ -6800,7 +6678,7 @@ esac ;; - cygwin* | mingw* | windows* | pw32* | cegcc*)+ cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in ,cl* | no,cl* | ,icl* | no,icl*) # Native MSVC or ICC@@ -6853,7 +6731,6 @@ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=no _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes- _LT_TAGVAR(file_list_spec, $1)='@' if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'@@ -6900,7 +6777,7 @@ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ emximp -o $lib $output_objdir/$libname.def'- _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes _LT_TAGVAR(file_list_spec, $1)='@' ;;@@ -6941,7 +6818,7 @@ haiku*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'- _LT_TAGVAR(link_all_deplibs, $1)=no+ _LT_TAGVAR(link_all_deplibs, $1)=yes ;; hpux9*)@@ -6968,7 +6845,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies.- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "[[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then@@ -7033,7 +6910,7 @@ # explicitly linking system object files so we need to strip them # from the output so that they don't get included in the library # dependencies.- output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " [[-]]L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' ;; *) if test yes = "$GXX"; then@@ -7265,10 +7142,6 @@ esac ;; - *-mlibc)- _LT_TAGVAR(ld_shlibs, $1)=yes- ;;- netbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'@@ -7285,7 +7158,7 @@ _LT_TAGVAR(ld_shlibs, $1)=yes ;; - openbsd*)+ openbsd* | bitrig*) if test -f /usr/libexec/ld.so; then _LT_TAGVAR(hardcode_direct, $1)=yes _LT_TAGVAR(hardcode_shlibpath_var, $1)=no@@ -7376,7 +7249,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library.- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # FIXME: insert proper C++ library support@@ -7391,9 +7264,6 @@ _LT_TAGVAR(ld_shlibs, $1)=no ;; - serenity*)- ;;- sunos4*) case $cc_basename in CC*)@@ -7463,7 +7333,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library.- output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' else # g++ 2.7 appears to require '-G' NOT '-shared' on this # platform.@@ -7474,7 +7344,7 @@ # Commands to make compiler produce verbose output that lists # what "hidden" libraries, object files and flags are used when # linking a shared library.- output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " [[-]]L"'+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' fi _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'@@ -7712,11 +7582,10 @@ case $prev$p in -L* | -R* | -l*)- # Some compilers place space between "-{L,R,l}" and the path.+ # Some compilers place space between "-{L,R}" and the path. # Remove the space.- if test x-L = x"$p" ||- test x-R = x"$p" ||- test x-l = x"$p"; then+ if test x-L = "$p" ||+ test x-R = "$p"; then prev=$p continue fi@@ -8374,7 +8243,7 @@ # ---------------- # Check for a file(cmd) program that can be used to detect file type and magic m4_defun([_LT_DECL_FILECMD],-[AC_CHECK_PROG([FILECMD], [file], [file], [:])+[AC_CHECK_TOOL([FILECMD], [file], [:]) _LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) ])# _LD_DECL_FILECMD @@ -8390,6 +8259,73 @@ _LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], [Sed that helps us avoid accidentally triggering echo(1) options like -n]) ])# _LT_DECL_SED++m4_ifndef([AC_PROG_SED], [+############################################################+# NOTE: This macro has been submitted for inclusion into #+# GNU Autoconf as AC_PROG_SED. When it is available in #+# a released version of Autoconf we should remove this #+# macro and use it instead. #+############################################################++m4_defun([AC_PROG_SED],+[AC_MSG_CHECKING([for a sed that does not truncate output])+AC_CACHE_VAL(lt_cv_path_SED,+[# Loop through the user's path and test for sed and gsed.+# Then use that list of sed's as ones to test for truncation.+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for lt_ac_prog in sed gsed; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"+ fi+ done+ done+done+IFS=$as_save_IFS+lt_ac_max=0+lt_ac_count=0+# Add /usr/xpg4/bin/sed as it is typically found on Solaris+# along with /bin/sed that truncates output.+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do+ test ! -f "$lt_ac_sed" && continue+ cat /dev/null > conftest.in+ lt_ac_count=0+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in+ # Check for GNU sed and select it if it is found.+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then+ lt_cv_path_SED=$lt_ac_sed+ break+ fi+ while true; do+ cat conftest.in conftest.in >conftest.tmp+ mv conftest.tmp conftest.in+ cp conftest.in conftest.nl+ echo >>conftest.nl+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break+ cmp -s conftest.out conftest.nl || break+ # 10000 chars as input seems more than enough+ test 10 -lt "$lt_ac_count" && break+ lt_ac_count=`expr $lt_ac_count + 1`+ if test "$lt_ac_count" -gt "$lt_ac_max"; then+ lt_ac_max=$lt_ac_count+ lt_cv_path_SED=$lt_ac_sed+ fi+ done+done+])+SED=$lt_cv_path_SED+AC_SUBST([SED])+AC_MSG_RESULT([$SED])+])#AC_PROG_SED+])#m4_ifndef++# Old name:+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) dnl aclocal-1.4 backwards compatibility: dnl AC_DEFUN([LT_AC_PROG_SED], []) @@ -8436,7 +8372,7 @@ [case $host in *-*-mingw* ) case $build in- *-*-mingw* | *-*-windows* ) # actually msys+ *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 ;; *-*-cygwin* )@@ -8449,7 +8385,7 @@ ;; *-*-cygwin* ) case $build in- *-*-mingw* | *-*-windows* ) # actually msys+ *-*-mingw* ) # actually msys lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin ;; *-*-cygwin* )@@ -8475,9 +8411,9 @@ [#assume ordinary cross tools, or native build. lt_cv_to_tool_file_cmd=func_convert_file_noop case $host in- *-*-mingw* | *-*-windows* )+ *-*-mingw* ) case $build in- *-*-mingw* | *-*-windows* ) # actually msys+ *-*-mingw* ) # actually msys lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 ;; esac
m4/ltoptions.m4 view
@@ -1,6 +1,6 @@ # Helper functions for option handling. -*- Autoconf -*- #-# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2024 Free+# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free # Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 #@@ -8,7 +8,7 @@ # unlimited permission to copy and/or distribute it, with or without # modifications, as long as this notice is preserved. -# serial 10 ltoptions.m4+# serial 8 ltoptions.m4 # This is to help aclocal find these macros, as it can't see m4_define. AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])@@ -128,7 +128,7 @@ [enable_win32_dll=yes case $host in-*-*-cygwin* | *-*-mingw* | *-*-windows* | *-*-pw32* | *-*-cegcc*)+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) AC_CHECK_TOOL(AS, as, false) AC_CHECK_TOOL(DLLTOOL, dlltool, false) AC_CHECK_TOOL(OBJDUMP, objdump, false)@@ -323,39 +323,29 @@ # _LT_WITH_AIX_SONAME([DEFAULT]) # -----------------------------------# implement the --enable-aix-soname configure option, and support the-# `aix-soname=aix' and `aix-soname=both' and `aix-soname=svr4' LT_INIT options.-# DEFAULT is either `aix', `both', or `svr4'. If omitted, it defaults to `aix'.+# implement the --with-aix-soname flag, and support the `aix-soname=aix'+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. m4_define([_LT_WITH_AIX_SONAME], [m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl shared_archive_member_spec= case $host,$enable_shared in power*-*-aix[[5-9]]*,yes) AC_MSG_CHECKING([which variant of shared library versioning to provide])- AC_ARG_ENABLE([aix-soname],- [AS_HELP_STRING([--enable-aix-soname=aix|svr4|both],+ AC_ARG_WITH([aix-soname],+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],- [case $enableval in- aix|svr4|both)- ;;- *)- AC_MSG_ERROR([Unknown argument to --enable-aix-soname])- ;;- esac- lt_cv_with_aix_soname=$enable_aix_soname],- [_AC_ENABLE_IF([with], [aix-soname],- [case $withval in- aix|svr4|both)- ;;- *)- AC_MSG_ERROR([Unknown argument to --with-aix-soname])- ;;- esac- lt_cv_with_aix_soname=$with_aix_soname],- [AC_CACHE_VAL([lt_cv_with_aix_soname],- [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)])- enable_aix_soname=$lt_cv_with_aix_soname])- with_aix_soname=$enable_aix_soname+ [case $withval in+ aix|svr4|both)+ ;;+ *)+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])+ ;;+ esac+ lt_cv_with_aix_soname=$with_aix_soname],+ [AC_CACHE_VAL([lt_cv_with_aix_soname],+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)+ with_aix_soname=$lt_cv_with_aix_soname]) AC_MSG_RESULT([$with_aix_soname]) if test aix != "$with_aix_soname"; then # For the AIX way of multilib, we name the shared archive member@@ -386,50 +376,30 @@ # _LT_WITH_PIC([MODE]) # ---------------------# implement the --enable-pic flag, and support the 'pic-only' and 'no-pic'+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' # LT_INIT options. # MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. m4_define([_LT_WITH_PIC],-[AC_ARG_ENABLE([pic],- [AS_HELP_STRING([--enable-pic@<:@=PKGS@:>@],+[AC_ARG_WITH([pic],+ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], [lt_p=${PACKAGE-default}- case $enableval in- yes|no) pic_mode=$enableval ;;- *)- pic_mode=default- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for lt_pkg in $enableval; do- IFS=$lt_save_ifs- if test "X$lt_pkg" = "X$lt_p"; then- pic_mode=yes- fi- done- IFS=$lt_save_ifs- ;;- esac],- [dnl Continue to support --with-pic and --without-pic, for backward- dnl compatibility.- _AC_ENABLE_IF([with], [pic],- [lt_p=${PACKAGE-default}- case $withval in- yes|no) pic_mode=$withval ;;- *)- pic_mode=default- # Look at the argument we got. We use all the common list separators.- lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,- for lt_pkg in $withval; do- IFS=$lt_save_ifs- if test "X$lt_pkg" = "X$lt_p"; then- pic_mode=yes- fi- done- IFS=$lt_save_ifs- ;;- esac],- [pic_mode=m4_default([$1], [default])])]- )+ case $withval in+ yes|no) pic_mode=$withval ;;+ *)+ pic_mode=default+ # Look at the argument we got. We use all the common list separators.+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,+ for lt_pkg in $withval; do+ IFS=$lt_save_ifs+ if test "X$lt_pkg" = "X$lt_p"; then+ pic_mode=yes+ fi+ done+ IFS=$lt_save_ifs+ ;;+ esac],+ [pic_mode=m4_default([$1], [default])]) _LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl ])# _LT_WITH_PIC
m4/ltsugar.m4 view
@@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- #-# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2024 Free Software+# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 #
m4/ltversion.m4 view
@@ -1,6 +1,6 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- #-# Copyright (C) 2004, 2011-2019, 2021-2024 Free Software Foundation,+# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, # Inc. # Written by Scott James Remnant, 2004 #@@ -10,15 +10,15 @@ # @configure_input@ -# serial 4441 ltversion.m4+# serial 4245 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.5.4])-m4_define([LT_PACKAGE_REVISION], [2.5.4])+m4_define([LT_PACKAGE_VERSION], [2.4.7])+m4_define([LT_PACKAGE_REVISION], [2.4.7]) AC_DEFUN([LTVERSION_VERSION],-[macro_version='2.5.4'-macro_revision='2.5.4'+[macro_version='2.4.7'+macro_revision='2.4.7' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ])
m4/lt~obsolete.m4 view
@@ -1,6 +1,6 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- #-# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2024 Free+# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free # Software Foundation, Inc. # Written by Scott James Remnant, 2004. #
src/aarch64/ffi.c view
@@ -28,6 +28,7 @@ #include <ffi_common.h> #include "internal.h" #ifdef _WIN32+#define WIN32_LEAN_AND_MEAN #include <windows.h> /* FlushInstructionCache */ #endif #include <tramp.h>@@ -387,7 +388,7 @@ void *x0; #define BTI_J "hint #36"- asm volatile (+ __asm__ volatile ( "adr %0, 0f\n" " add %0, %0, %1\n" " br %0\n"@@ -467,18 +468,18 @@ *(float *)dest = *(float *)reg; break; case AARCH64_RET_S2:- asm ("ldp q16, q17, [%1]\n\t"+ __asm__ ("ldp q16, q17, [%1]\n\t" "st2 { v16.s, v17.s }[0], [%0]" : : "r"(dest), "r"(reg) : "memory", "v16", "v17"); break; case AARCH64_RET_S3:- asm ("ldp q16, q17, [%1]\n\t"+ __asm__ ("ldp q16, q17, [%1]\n\t" "ldr q18, [%1, #32]\n\t" "st3 { v16.s, v17.s, v18.s }[0], [%0]" : : "r"(dest), "r"(reg) : "memory", "v16", "v17", "v18"); break; case AARCH64_RET_S4:- asm ("ldp q16, q17, [%1]\n\t"+ __asm__ ("ldp q16, q17, [%1]\n\t" "ldp q18, q19, [%1, #32]\n\t" "st4 { v16.s, v17.s, v18.s, v19.s }[0], [%0]" : : "r"(dest), "r"(reg) : "memory", "v16", "v17", "v18", "v19");@@ -495,18 +496,18 @@ *(double *)dest = *(double *)reg; break; case AARCH64_RET_D2:- asm ("ldp q16, q17, [%1]\n\t"+ __asm__ ("ldp q16, q17, [%1]\n\t" "st2 { v16.d, v17.d }[0], [%0]" : : "r"(dest), "r"(reg) : "memory", "v16", "v17"); break; case AARCH64_RET_D3:- asm ("ldp q16, q17, [%1]\n\t"+ __asm__ ("ldp q16, q17, [%1]\n\t" "ldr q18, [%1, #32]\n\t" "st3 { v16.d, v17.d, v18.d }[0], [%0]" : : "r"(dest), "r"(reg) : "memory", "v16", "v17", "v18"); break; case AARCH64_RET_D4:- asm ("ldp q16, q17, [%1]\n\t"+ __asm__ ("ldp q16, q17, [%1]\n\t" "ldp q18, q19, [%1, #32]\n\t" "st4 { v16.d, v17.d, v18.d, v19.d }[0], [%0]" : : "r"(dest), "r"(reg) : "memory", "v16", "v17", "v18", "v19");@@ -537,6 +538,32 @@ return allocate_to_stack (state, stack, size, size); } +static void *+allocate_int128_to_reg_or_stack (struct call_context *context,+ struct arg_state *state, void *stack)+{+ unsigned ngrn = state->ngrn;+ void *ret;++ /* The normal AArch64 ABI requires even Xreg; Darwin does not. */+#ifndef __APPLE__+ ngrn += ngrn & 1;+#endif++ if (ngrn < N_X_ARG_REG)+ {+ ret = &context->x[ngrn];+ ngrn += 2;+ }+ else+ {+ ret = allocate_to_stack (state, stack, 16, 16);+ ngrn = N_X_ARG_REG;+ }+ state->ngrn = ngrn;+ return ret;+}+ ffi_status FFI_HIDDEN ffi_prep_cif_machdep (ffi_cif *cif) {@@ -576,6 +603,11 @@ flags = (sizeof(void *) == 4 ? AARCH64_RET_UINT32 : AARCH64_RET_INT64); break; + case FFI_TYPE_UINT128:+ case FFI_TYPE_SINT128:+ flags = AARCH64_RET_INT128;+ break;+ case FFI_TYPE_FLOAT: case FFI_TYPE_DOUBLE: case FFI_TYPE_LONGDOUBLE:@@ -741,6 +773,12 @@ } break; + case FFI_TYPE_UINT128:+ case FFI_TYPE_SINT128:+ dest = allocate_int128_to_reg_or_stack (context, &state, stack);+ memcpy (dest, a, 16);+ break;+ case FFI_TYPE_FLOAT: case FFI_TYPE_DOUBLE: case FFI_TYPE_LONGDOUBLE:@@ -1021,6 +1059,11 @@ case FFI_TYPE_SINT64: case FFI_TYPE_POINTER: avalue[i] = allocate_int_to_reg_or_stack (context, &state, stack, s);+ break;++ case FFI_TYPE_UINT128:+ case FFI_TYPE_SINT128:+ avalue[i] = allocate_int128_to_reg_or_stack (context, &state, stack); break; case FFI_TYPE_FLOAT:
src/aarch64/ffitarget.h view
@@ -94,4 +94,6 @@ #define FFI_TARGET_HAS_COMPLEX_TYPE #endif +#define FFI_TARGET_HAS_INT128 1+ #endif
src/aarch64/internal.h view
@@ -91,10 +91,10 @@ #define SIGN_LR_LINUX_ONLY #define BRANCH_TO_REG braaz #define PAC_CFI_WINDOW_SAVE- #define GNU_PROPERTY_AARCH64_POINTER_AUTH 0+ #define AARCH64_POINTER_AUTH 0 /* Linux PAC Support */ #elif defined(__ARM_FEATURE_PAC_DEFAULT)- #define GNU_PROPERTY_AARCH64_POINTER_AUTH (1 << 1)+ #define AARCH64_POINTER_AUTH (1 << 1) #define PAC_CFI_WINDOW_SAVE cfi_window_save #define TMP_REG x9 #define BRANCH_TO_REG br@@ -141,6 +141,6 @@ #define SIGN_LR_LINUX_ONLY #define BRANCH_TO_REG br #define PAC_CFI_WINDOW_SAVE- #define GNU_PROPERTY_AARCH64_POINTER_AUTH 0+ #define AARCH64_POINTER_AUTH 0 #endif /* HAVE_ARM64E_PTRAUTH */ #endif /* LIBFFI_ASM */
src/aarch64/sysv.S view
@@ -70,10 +70,16 @@ * The ELF Notes section needs to indicate if BTI is supported, as the first ELF loaded that doesn't * declare this support disables it for memory region containing the loaded library. */-# define GNU_PROPERTY_AARCH64_BTI (1 << 0) /* Has Branch Target Identification */+# define AARCH64_BTI (1 << 0) /* Has Branch Target Identification */ .text .align 4 +#if defined(__ARM_FEATURE_GCS_DEFAULT) && __ARM_FEATURE_GCS_DEFAULT == 1+#define AARCH64_GCS (1<<2)+#else+#define AARCH64_GCS 0 /* No GCS */+#endif+ /* ffi_call_SYSV extern void ffi_call_SYSV (void *stack, void *frame, void (*fn)(void), void *rvalue,@@ -681,19 +687,44 @@ #endif /* FFI_CLOSURES */ #endif /* __arm64__ */ +#define GNU_PROPERTY(value) \+ .pushsection .note.gnu.property, "a"; \+ .balign 8; \+ .long 4; \+ .long 0x10; \+ .long 0x5; \+ .asciz "GNU"; \+ .long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */ \+ .long 4; \+ .long value; \+ .long 0; \+ .popsection;++#ifdef __ARM_BUILDATTR64_FV+/* Add AArch64 feature bits build attributes. */+# define FEATURE_1_AND_MARK(value) \+ .aeabi_subsection aeabi_feature_and_bits, optional, ULEB128; \+ .if ((value) & AARCH64_BTI); \+ .aeabi_attribute Tag_Feature_BTI, 1; \+ .else; \+ .aeabi_attribute Tag_Feature_BTI, 0; \+ .endif; \+ .if ((value) & AARCH64_POINTER_AUTH); \+ .aeabi_attribute Tag_Feature_PAC, 1; \+ .else; \+ .aeabi_attribute Tag_Feature_PAC, 0; \+ .endif; \+ .if ((value) & AARCH64_GCS); \+ .aeabi_attribute Tag_Feature_GCS, 1; \+ .else; \+ .aeabi_attribute Tag_Feature_GCS, 0; \+ .endif;+#else+/* Add a NT_GNU_PROPERTY_TYPE_0 note. */+# define FEATURE_1_AND_MARK(value) GNU_PROPERTY (value)+#endif /* __ARM_BUILDATTR64_FV */+ #if defined __ELF__ && defined __linux__ .section .note.GNU-stack,"",%progbits-- .pushsection .note.gnu.property, "a";- .balign 8;- .long 4;- .long 0x10;- .long 0x5;- .asciz "GNU";- .long 0xc0000000; /* GNU_PROPERTY_AARCH64_FEATURE_1_AND */- .long 4;- .long GNU_PROPERTY_AARCH64_BTI | GNU_PROPERTY_AARCH64_POINTER_AUTH;- .long 0;- .popsection;+FEATURE_1_AND_MARK(AARCH64_BTI | AARCH64_POINTER_AUTH | AARCH64_GCS) #endif-
src/alpha/ffi.c view
@@ -52,14 +52,14 @@ static inline UINT64 lds(void *ptr) { UINT64 ret;- asm("lds %0,%1" : "=f"(ret) : "m"(*(UINT32 *)ptr));+ __asm__("lds %0,%1" : "=f"(ret) : "m"(*(UINT32 *)ptr)); return ret; } /* And the reverse. */ static inline void sts(void *ptr, UINT64 val) {- asm("sts %1,%0" : "=m"(*(UINT32 *)ptr) : "f"(val));+ __asm__("sts %1,%0" : "=m"(*(UINT32 *)ptr) : "f"(val)); } ffi_status FFI_HIDDEN@@ -95,6 +95,8 @@ bytes += 8; break; + case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128: case FFI_TYPE_VOID: case FFI_TYPE_STRUCT: /* Passed by value in N slots. */@@ -149,6 +151,8 @@ case FFI_TYPE_POINTER: flags = ALPHA_FLAGS(ALPHA_ST_INT, ALPHA_LD_INT64); break;+ case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128: case FFI_TYPE_LONGDOUBLE: case FFI_TYPE_STRUCT: /* Passed in memory, with a hidden pointer. */@@ -281,6 +285,8 @@ argp[argn++] = (unsigned long)valp; break; + case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128: case FFI_TYPE_VOID: case FFI_TYPE_STRUCT: size = ty->size;@@ -351,7 +357,7 @@ instead, since both Compaq as and gas can handle it. 0x86 is PAL_imb in Tru64 UNIX <alpha/pal.h>. */- asm volatile ("call_pal 0x86" : : : "memory");+ __asm__ volatile ("call_pal 0x86" : : : "memory"); return FFI_OK; }@@ -418,6 +424,8 @@ argn += 1; break; + case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128: case FFI_TYPE_VOID: case FFI_TYPE_STRUCT: size = ty->size;
src/alpha/ffitarget.h view
@@ -46,6 +46,7 @@ #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION #define FFI_TARGET_HAS_COMPLEX_TYPE+#define FFI_TARGET_HAS_INT128 /* ---- Definitions for closures ----------------------------------------- */
src/arm/sysv.S view
@@ -120,7 +120,7 @@ #endif -#ifndef __clang__+#ifdef __ELF__ /* We require interworking on LDM, which implies ARMv5T, which implies the existance of BLX. */ .arch armv5t
src/closures.c view
@@ -393,11 +393,9 @@ #define USE_LOCKS 1 #define USE_DL_PREFIX 1-#ifdef __GNUC__-#ifndef USE_BUILTIN_FFS-#define USE_BUILTIN_FFS 1-#endif-#endif+/* dlmalloc's bit-index macros use __builtin_clz/__builtin_ctz directly on any+ GNU-compatible compiler, so USE_BUILTIN_FFS (and pulling in <strings.h> for+ ffs()) is no longer needed (libffi #754). */ /* We need to use mmap, not sbrk. */ #define HAVE_MORECORE 0
src/dlmalloc.c view
@@ -1,5172 +1,6443 @@ /* This is a version (aka dlmalloc) of malloc/free/realloc written by Doug Lea and released to the public domain, as explained at- http://creativecommons.org/licenses/publicdomain. Send questions,- comments, complaints, performance data, etc to dl@cs.oswego.edu--* Version 2.8.3 Thu Sep 22 11:16:15 2005 Doug Lea (dl at gee)-- Note: There may be an updated version of this malloc obtainable at- ftp://gee.cs.oswego.edu/pub/misc/malloc.c- Check before installing!--* Quickstart-- This library is all in one file to simplify the most common usage:- ftp it, compile it (-O3), and link it into another program. All of- the compile-time options default to reasonable values for use on- most platforms. You might later want to step through various- compile-time and dynamic tuning options.-- For convenience, an include file for code using this malloc is at:- ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.3.h- You don't really need this .h file unless you call functions not- defined in your system include files. The .h file contains only the- excerpts from this file needed for using this malloc on ANSI C/C++- systems, so long as you haven't changed compile-time options about- naming and tuning parameters. If you do, then you can create your- own malloc.h that does include all settings by cutting at the point- indicated below. Note that you may already by default be using a C- library containing a malloc that is based on some version of this- malloc (for example in linux). You might still want to use the one- in this file to customize settings or to avoid overheads associated- with library versions.--* Vital statistics:-- Supported pointer/size_t representation: 4 or 8 bytes- size_t MUST be an unsigned type of the same width as- pointers. (If you are using an ancient system that declares- size_t as a signed type, or need it to be a different width- than pointers, you can use a previous release of this malloc- (e.g. 2.7.2) supporting these.)-- Alignment: 8 bytes (default)- This suffices for nearly all current machines and C compilers.- However, you can define MALLOC_ALIGNMENT to be wider than this- if necessary (up to 128bytes), at the expense of using more space.-- Minimum overhead per allocated chunk: 4 or 8 bytes (if 4byte sizes)- 8 or 16 bytes (if 8byte sizes)- Each malloced chunk has a hidden word of overhead holding size- and status information, and additional cross-check word- if FOOTERS is defined.-- Minimum allocated size: 4-byte ptrs: 16 bytes (including overhead)- 8-byte ptrs: 32 bytes (including overhead)-- Even a request for zero bytes (i.e., malloc(0)) returns a- pointer to something of the minimum allocatable size.- The maximum overhead wastage (i.e., number of extra bytes- allocated than were requested in malloc) is less than or equal- to the minimum size, except for requests >= mmap_threshold that- are serviced via mmap(), where the worst case wastage is about- 32 bytes plus the remainder from a system page (the minimal- mmap unit); typically 4096 or 8192 bytes.-- Security: static-safe; optionally more or less- The "security" of malloc refers to the ability of malicious- code to accentuate the effects of errors (for example, freeing- space that is not currently malloc'ed or overwriting past the- ends of chunks) in code that calls malloc. This malloc- guarantees not to modify any memory locations below the base of- heap, i.e., static variables, even in the presence of usage- errors. The routines additionally detect most improper frees- and reallocs. All this holds as long as the static bookkeeping- for malloc itself is not corrupted by some other means. This- is only one aspect of security -- these checks do not, and- cannot, detect all possible programming errors.-- If FOOTERS is defined nonzero, then each allocated chunk- carries an additional check word to verify that it was malloced- from its space. These check words are the same within each- execution of a program using malloc, but differ across- executions, so externally crafted fake chunks cannot be- freed. This improves security by rejecting frees/reallocs that- could corrupt heap memory, in addition to the checks preventing- writes to statics that are always on. This may further improve- security at the expense of time and space overhead. (Note that- FOOTERS may also be worth using with MSPACES.)-- By default detected errors cause the program to abort (calling- "abort()"). You can override this to instead proceed past- errors by defining PROCEED_ON_ERROR. In this case, a bad free- has no effect, and a malloc that encounters a bad address- caused by user overwrites will ignore the bad address by- dropping pointers and indices to all known memory. This may- be appropriate for programs that should continue if at all- possible in the face of programming errors, although they may- run out of memory because dropped memory is never reclaimed.-- If you don't like either of these options, you can define- CORRUPTION_ERROR_ACTION and USAGE_ERROR_ACTION to do anything- else. And if if you are sure that your program using malloc has- no errors or vulnerabilities, you can define INSECURE to 1,- which might (or might not) provide a small performance improvement.-- Thread-safety: NOT thread-safe unless USE_LOCKS defined- When USE_LOCKS is defined, each public call to malloc, free,- etc is surrounded with either a pthread mutex or a win32- spinlock (depending on WIN32). This is not especially fast, and- can be a major bottleneck. It is designed only to provide- minimal protection in concurrent environments, and to provide a- basis for extensions. If you are using malloc in a concurrent- program, consider instead using ptmalloc, which is derived from- a version of this malloc. (See http://www.malloc.de).-- System requirements: Any combination of MORECORE and/or MMAP/MUNMAP- This malloc can use unix sbrk or any emulation (invoked using- the CALL_MORECORE macro) and/or mmap/munmap or any emulation- (invoked using CALL_MMAP/CALL_MUNMAP) to get and release system- memory. On most unix systems, it tends to work best if both- MORECORE and MMAP are enabled. On Win32, it uses emulations- based on VirtualAlloc. It also uses common C library functions- like memset.-- Compliance: I believe it is compliant with the Single Unix Specification- (See http://www.unix.org). Also SVID/XPG, ANSI C, and probably- others as well.--* Overview of algorithms-- This is not the fastest, most space-conserving, most portable, or- most tunable malloc ever written. However it is among the fastest- while also being among the most space-conserving, portable and- tunable. Consistent balance across these factors results in a good- general-purpose allocator for malloc-intensive programs.-- In most ways, this malloc is a best-fit allocator. Generally, it- chooses the best-fitting existing chunk for a request, with ties- broken in approximately least-recently-used order. (This strategy- normally maintains low fragmentation.) However, for requests less- than 256bytes, it deviates from best-fit when there is not an- exactly fitting available chunk by preferring to use space adjacent- to that used for the previous small request, as well as by breaking- ties in approximately most-recently-used order. (These enhance- locality of series of small allocations.) And for very large requests- (>= 256Kb by default), it relies on system memory mapping- facilities, if supported. (This helps avoid carrying around and- possibly fragmenting memory used only for large chunks.)-- All operations (except malloc_stats and mallinfo) have execution- times that are bounded by a constant factor of the number of bits in- a size_t, not counting any clearing in calloc or copying in realloc,- or actions surrounding MORECORE and MMAP that have times- proportional to the number of non-contiguous regions returned by- system allocation routines, which is often just 1.-- The implementation is not very modular and seriously overuses- macros. Perhaps someday all C compilers will do as good a job- inlining modular code as can now be done by brute-force expansion,- but now, enough of them seem not to.-- Some compilers issue a lot of warnings about code that is- dead/unreachable only on some platforms, and also about intentional- uses of negation on unsigned types. All known cases of each can be- ignored.-- For a longer but out of date high-level description, see- http://gee.cs.oswego.edu/dl/html/malloc.html--* MSPACES- If MSPACES is defined, then in addition to malloc, free, etc.,- this file also defines mspace_malloc, mspace_free, etc. These- are versions of malloc routines that take an "mspace" argument- obtained using create_mspace, to control all internal bookkeeping.- If ONLY_MSPACES is defined, only these versions are compiled.- So if you would like to use this allocator for only some allocations,- and your system malloc for others, you can compile with- ONLY_MSPACES and then do something like...- static mspace mymspace = create_mspace(0,0); // for example- #define mymalloc(bytes) mspace_malloc(mymspace, bytes)-- (Note: If you only need one instance of an mspace, you can instead- use "USE_DL_PREFIX" to relabel the global malloc.)-- You can similarly create thread-local allocators by storing- mspaces as thread-locals. For example:- static __thread mspace tlms = 0;- void* tlmalloc(size_t bytes) {- if (tlms == 0) tlms = create_mspace(0, 0);- return mspace_malloc(tlms, bytes);- }- void tlfree(void* mem) { mspace_free(tlms, mem); }-- Unless FOOTERS is defined, each mspace is completely independent.- You cannot allocate from one and free to another (although- conformance is only weakly checked, so usage errors are not always- caught). If FOOTERS is defined, then each chunk carries around a tag- indicating its originating mspace, and frees are directed to their- originating spaces.-- ------------------------- Compile-time options -----------------------------Be careful in setting #define values for numerical constants of type-size_t. On some systems, literal values are not automatically extended-to size_t precision unless they are explicitly casted.--WIN32 default: defined if _WIN32 defined- Defining WIN32 sets up defaults for MS environment and compilers.- Otherwise defaults are for unix.--MALLOC_ALIGNMENT default: (size_t)8- Controls the minimum alignment for malloc'ed chunks. It must be a- power of two and at least 8, even on machines for which smaller- alignments would suffice. It may be defined as larger than this- though. Note however that code and data structures are optimized for- the case of 8-byte alignment.--MSPACES default: 0 (false)- If true, compile in support for independent allocation spaces.- This is only supported if HAVE_MMAP is true.--ONLY_MSPACES default: 0 (false)- If true, only compile in mspace versions, not regular versions.--USE_LOCKS default: 0 (false)- Causes each call to each public routine to be surrounded with- pthread or WIN32 mutex lock/unlock. (If set true, this can be- overridden on a per-mspace basis for mspace versions.)--FOOTERS default: 0- If true, provide extra checking and dispatching by placing- information in the footers of allocated chunks. This adds- space and time overhead.--INSECURE default: 0- If true, omit checks for usage errors and heap space overwrites.--USE_DL_PREFIX default: NOT defined- Causes compiler to prefix all public routines with the string 'dl'.- This can be useful when you only want to use this malloc in one part- of a program, using your regular system malloc elsewhere.--ABORT default: defined as abort()- Defines how to abort on failed checks. On most systems, a failed- check cannot die with an "assert" or even print an informative- message, because the underlying print routines in turn call malloc,- which will fail again. Generally, the best policy is to simply call- abort(). It's not very useful to do more than this because many- errors due to overwriting will show up as address faults (null, odd- addresses etc) rather than malloc-triggered checks, so will also- abort. Also, most compilers know that abort() does not return, so- can better optimize code conditionally calling it.--PROCEED_ON_ERROR default: defined as 0 (false)- Controls whether detected bad addresses cause them to bypassed- rather than aborting. If set, detected bad arguments to free and- realloc are ignored. And all bookkeeping information is zeroed out- upon a detected overwrite of freed heap space, thus losing the- ability to ever return it from malloc again, but enabling the- application to proceed. If PROCEED_ON_ERROR is defined, the- static variable malloc_corruption_error_count is compiled in- and can be examined to see if errors have occurred. This option- generates slower code than the default abort policy.--DEBUG default: NOT defined- The DEBUG setting is mainly intended for people trying to modify- this code or diagnose problems when porting to new platforms.- However, it may also be able to better isolate user errors than just- using runtime checks. The assertions in the check routines spell- out in more detail the assumptions and invariants underlying the- algorithms. The checking is fairly extensive, and will slow down- execution noticeably. Calling malloc_stats or mallinfo with DEBUG- set will attempt to check every non-mmapped allocated and free chunk- in the course of computing the summaries.--ABORT_ON_ASSERT_FAILURE default: defined as 1 (true)- Debugging assertion failures can be nearly impossible if your- version of the assert macro causes malloc to be called, which will- lead to a cascade of further failures, blowing the runtime stack.- ABORT_ON_ASSERT_FAILURE cause assertions failures to call abort(),- which will usually make debugging easier.--MALLOC_FAILURE_ACTION default: sets errno to ENOMEM, or no-op on win32- The action to take before "return 0" when malloc fails to be able to- return memory because there is none available.--HAVE_MORECORE default: 1 (true) unless win32 or ONLY_MSPACES- True if this system supports sbrk or an emulation of it.--MORECORE default: sbrk- The name of the sbrk-style system routine to call to obtain more- memory. See below for guidance on writing custom MORECORE- functions. The type of the argument to sbrk/MORECORE varies across- systems. It cannot be size_t, because it supports negative- arguments, so it is normally the signed type of the same width as- size_t (sometimes declared as "intptr_t"). It doesn't much matter- though. Internally, we only call it with arguments less than half- the max value of a size_t, which should work across all reasonable- possibilities, although sometimes generating compiler warnings. See- near the end of this file for guidelines for creating a custom- version of MORECORE.--MORECORE_CONTIGUOUS default: 1 (true)- If true, take advantage of fact that consecutive calls to MORECORE- with positive arguments always return contiguous increasing- addresses. This is true of unix sbrk. It does not hurt too much to- set it true anyway, since malloc copes with non-contiguities.- Setting it false when definitely non-contiguous saves time- and possibly wasted space it would take to discover this though.--MORECORE_CANNOT_TRIM default: NOT defined- True if MORECORE cannot release space back to the system when given- negative arguments. This is generally necessary only if you are- using a hand-crafted MORECORE function that cannot handle negative- arguments.--HAVE_MMAP default: 1 (true)- True if this system supports mmap or an emulation of it. If so, and- HAVE_MORECORE is not true, MMAP is used for all system- allocation. If set and HAVE_MORECORE is true as well, MMAP is- primarily used to directly allocate very large blocks. It is also- used as a backup strategy in cases where MORECORE fails to provide- space from system. Note: A single call to MUNMAP is assumed to be- able to unmap memory that may have be allocated using multiple calls- to MMAP, so long as they are adjacent.--HAVE_MREMAP default: 1 on linux, else 0- If true realloc() uses mremap() to re-allocate large blocks and- extend or shrink allocation spaces.--MMAP_CLEARS default: 1 on unix- True if mmap clears memory so calloc doesn't need to. This is true- for standard unix mmap using /dev/zero.--USE_BUILTIN_FFS default: 0 (i.e., not used)- Causes malloc to use the builtin ffs() function to compute indices.- Some compilers may recognize and intrinsify ffs to be faster than the- supplied C version. Also, the case of x86 using gcc is special-cased- to an asm instruction, so is already as fast as it can be, and so- this setting has no effect. (On most x86s, the asm version is only- slightly faster than the C version.)--malloc_getpagesize default: derive from system includes, or 4096.- The system page size. To the extent possible, this malloc manages- memory from the system in page-size units. This may be (and- usually is) a function rather than a constant. This is ignored- if WIN32, where page size is determined using getSystemInfo during- initialization.--USE_DEV_RANDOM default: 0 (i.e., not used)- Causes malloc to use /dev/random to initialize secure magic seed for- stamping footers. Otherwise, the current time is used.--NO_MALLINFO default: 0- If defined, don't compile "mallinfo". This can be a simple way- of dealing with mismatches between system declarations and- those in this file.--MALLINFO_FIELD_TYPE default: size_t- The type of the fields in the mallinfo struct. This was originally- defined as "int" in SVID etc, but is more usefully defined as- size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set--REALLOC_ZERO_BYTES_FREES default: not defined- This should be set if a call to realloc with zero bytes should - be the same as a call to free. Some people think it should. Otherwise, - since this malloc returns a unique pointer for malloc(0), so does - realloc(p, 0).--LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H-LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H-LACKS_STDLIB_H default: NOT defined unless on WIN32- Define these if your system does not have these header files.- You might need to manually insert some of the declarations they provide.--DEFAULT_GRANULARITY default: page size if MORECORE_CONTIGUOUS,- system_info.dwAllocationGranularity in WIN32,- otherwise 64K.- Also settable using mallopt(M_GRANULARITY, x)- The unit for allocating and deallocating memory from the system. On- most systems with contiguous MORECORE, there is no reason to- make this more than a page. However, systems with MMAP tend to- either require or encourage larger granularities. You can increase- this value to prevent system allocation functions to be called so- often, especially if they are slow. The value must be at least one- page and must be a power of two. Setting to 0 causes initialization- to either page size or win32 region size. (Note: In previous- versions of malloc, the equivalent of this option was called- "TOP_PAD")--DEFAULT_TRIM_THRESHOLD default: 2MB- Also settable using mallopt(M_TRIM_THRESHOLD, x)- The maximum amount of unused top-most memory to keep before- releasing via malloc_trim in free(). Automatic trimming is mainly- useful in long-lived programs using contiguous MORECORE. Because- trimming via sbrk can be slow on some systems, and can sometimes be- wasteful (in cases where programs immediately afterward allocate- more large chunks) the value should be high enough so that your- overall system performance would improve by releasing this much- memory. As a rough guide, you might set to a value close to the- average size of a process (program) running on your system.- Releasing this much memory would allow such a process to run in- memory. Generally, it is worth tuning trim thresholds when a- program undergoes phases where several large chunks are allocated- and released in ways that can reuse each other's storage, perhaps- mixed with phases where there are no such chunks at all. The trim- value must be greater than page size to have any useful effect. To- disable trimming completely, you can set to MAX_SIZE_T. Note that the trick- some people use of mallocing a huge space and then freeing it at- program startup, in an attempt to reserve system memory, doesn't- have the intended effect under automatic trimming, since that memory- will immediately be returned to the system.--DEFAULT_MMAP_THRESHOLD default: 256K- Also settable using mallopt(M_MMAP_THRESHOLD, x)- The request size threshold for using MMAP to directly service a- request. Requests of at least this size that cannot be allocated- using already-existing space will be serviced via mmap. (If enough- normal freed space already exists it is used instead.) Using mmap- segregates relatively large chunks of memory so that they can be- individually obtained and released from the host system. A request- serviced through mmap is never reused by any other request (at least- not directly; the system may just so happen to remap successive- requests to the same locations). Segregating space in this way has- the benefits that: Mmapped space can always be individually released- back to the system, which helps keep the system level memory demands- of a long-lived program low. Also, mapped memory doesn't become- `locked' between other chunks, as can happen with normally allocated- chunks, which means that even trimming via malloc_trim would not- release them. However, it has the disadvantage that the space- cannot be reclaimed, consolidated, and then used to service later- requests, as happens with normal chunks. The advantages of mmap- nearly always outweigh disadvantages for "large" chunks, but the- value of "large" may vary across systems. The default is an- empirically derived value that works well in most systems. You can- disable mmap by setting to MAX_SIZE_T.--*/--#if defined __linux__ && !defined _GNU_SOURCE-/* mremap() on Linux requires this via sys/mman.h */-#define _GNU_SOURCE 1-#endif--#ifndef WIN32-#ifdef _WIN32-#define WIN32 1-#endif /* _WIN32 */-#endif /* WIN32 */-#ifdef WIN32-#define WIN32_LEAN_AND_MEAN-#include <windows.h>-#define HAVE_MMAP 1-#define HAVE_MORECORE 0-#define LACKS_UNISTD_H-#define LACKS_SYS_PARAM_H-#define LACKS_SYS_MMAN_H-#define LACKS_STRING_H-#define LACKS_STRINGS_H-#define LACKS_SYS_TYPES_H-#define LACKS_ERRNO_H-#define MALLOC_FAILURE_ACTION-#define MMAP_CLEARS 0 /* WINCE and some others apparently don't clear */-#endif /* WIN32 */--#ifdef __OS2__-#define INCL_DOS-#include <os2.h>-#define HAVE_MMAP 1-#define HAVE_MORECORE 0-#define LACKS_SYS_MMAN_H-#endif /* __OS2__ */--#if defined(DARWIN) || defined(_DARWIN)-/* Mac OSX docs advise not to use sbrk; it seems better to use mmap */-#ifndef HAVE_MORECORE-#define HAVE_MORECORE 0-#define HAVE_MMAP 1-#endif /* HAVE_MORECORE */-#endif /* DARWIN */--#ifndef LACKS_SYS_TYPES_H-#include <sys/types.h> /* For size_t */-#endif /* LACKS_SYS_TYPES_H */--/* The maximum possible size_t value has all bits set */-#define MAX_SIZE_T (~(size_t)0)--#ifndef ONLY_MSPACES-#define ONLY_MSPACES 0-#endif /* ONLY_MSPACES */-#ifndef MSPACES-#if ONLY_MSPACES-#define MSPACES 1-#else /* ONLY_MSPACES */-#define MSPACES 0-#endif /* ONLY_MSPACES */-#endif /* MSPACES */-#ifndef MALLOC_ALIGNMENT-#define MALLOC_ALIGNMENT ((size_t)8U)-#endif /* MALLOC_ALIGNMENT */-#ifndef FOOTERS-#define FOOTERS 0-#endif /* FOOTERS */-#ifndef ABORT-#define ABORT abort()-#endif /* ABORT */-#ifndef ABORT_ON_ASSERT_FAILURE-#define ABORT_ON_ASSERT_FAILURE 1-#endif /* ABORT_ON_ASSERT_FAILURE */-#ifndef PROCEED_ON_ERROR-#define PROCEED_ON_ERROR 0-#endif /* PROCEED_ON_ERROR */-#ifndef USE_LOCKS-#define USE_LOCKS 0-#endif /* USE_LOCKS */-#ifndef INSECURE-#define INSECURE 0-#endif /* INSECURE */-#ifndef HAVE_MMAP-#define HAVE_MMAP 1-#endif /* HAVE_MMAP */-#ifndef MMAP_CLEARS-#define MMAP_CLEARS 1-#endif /* MMAP_CLEARS */-#ifndef HAVE_MREMAP-#ifdef linux-#define HAVE_MREMAP 1-#else /* linux */-#define HAVE_MREMAP 0-#endif /* linux */-#endif /* HAVE_MREMAP */-#ifndef MALLOC_FAILURE_ACTION-#define MALLOC_FAILURE_ACTION errno = ENOMEM;-#endif /* MALLOC_FAILURE_ACTION */-#ifndef HAVE_MORECORE-#if ONLY_MSPACES-#define HAVE_MORECORE 0-#else /* ONLY_MSPACES */-#define HAVE_MORECORE 1-#endif /* ONLY_MSPACES */-#endif /* HAVE_MORECORE */-#if !HAVE_MORECORE-#define MORECORE_CONTIGUOUS 0-#else /* !HAVE_MORECORE */-#ifndef MORECORE-#define MORECORE sbrk-#endif /* MORECORE */-#ifndef MORECORE_CONTIGUOUS-#define MORECORE_CONTIGUOUS 1-#endif /* MORECORE_CONTIGUOUS */-#endif /* HAVE_MORECORE */-#ifndef DEFAULT_GRANULARITY-#if MORECORE_CONTIGUOUS-#define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */-#else /* MORECORE_CONTIGUOUS */-#define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U)-#endif /* MORECORE_CONTIGUOUS */-#endif /* DEFAULT_GRANULARITY */-#ifndef DEFAULT_TRIM_THRESHOLD-#ifndef MORECORE_CANNOT_TRIM-#define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U)-#else /* MORECORE_CANNOT_TRIM */-#define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T-#endif /* MORECORE_CANNOT_TRIM */-#endif /* DEFAULT_TRIM_THRESHOLD */-#ifndef DEFAULT_MMAP_THRESHOLD-#if HAVE_MMAP-#define DEFAULT_MMAP_THRESHOLD ((size_t)256U * (size_t)1024U)-#else /* HAVE_MMAP */-#define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T-#endif /* HAVE_MMAP */-#endif /* DEFAULT_MMAP_THRESHOLD */-#ifndef USE_BUILTIN_FFS-#define USE_BUILTIN_FFS 0-#endif /* USE_BUILTIN_FFS */-#ifndef USE_DEV_RANDOM-#define USE_DEV_RANDOM 0-#endif /* USE_DEV_RANDOM */-#ifndef NO_MALLINFO-#define NO_MALLINFO 0-#endif /* NO_MALLINFO */-#ifndef MALLINFO_FIELD_TYPE-#define MALLINFO_FIELD_TYPE size_t-#endif /* MALLINFO_FIELD_TYPE */--/*- mallopt tuning options. SVID/XPG defines four standard parameter- numbers for mallopt, normally defined in malloc.h. None of these- are used in this malloc, so setting them has no effect. But this- malloc does support the following options.-*/--/* The system's malloc.h may have conflicting defines. */-#undef M_TRIM_THRESHOLD-#undef M_GRANULARITY-#undef M_MMAP_THRESHOLD--#define M_TRIM_THRESHOLD (-1)-#define M_GRANULARITY (-2)-#define M_MMAP_THRESHOLD (-3)--/* ------------------------ Mallinfo declarations ------------------------ */--#if !NO_MALLINFO-/*- This version of malloc supports the standard SVID/XPG mallinfo- routine that returns a struct containing usage properties and- statistics. It should work on any system that has a- /usr/include/malloc.h defining struct mallinfo. The main- declaration needed is the mallinfo struct that is returned (by-copy)- by mallinfo(). The malloinfo struct contains a bunch of fields that- are not even meaningful in this version of malloc. These fields are- are instead filled by mallinfo() with other numbers that might be of- interest.-- HAVE_USR_INCLUDE_MALLOC_H should be set if you have a- /usr/include/malloc.h file that includes a declaration of struct- mallinfo. If so, it is included; else a compliant version is- declared below. These must be precisely the same for mallinfo() to- work. The original SVID version of this struct, defined on most- systems with mallinfo, declares all fields as ints. But some others- define as unsigned long. If your system defines the fields using a- type of different width than listed here, you MUST #include your- system version and #define HAVE_USR_INCLUDE_MALLOC_H.-*/--/* #define HAVE_USR_INCLUDE_MALLOC_H */--#ifdef HAVE_USR_INCLUDE_MALLOC_H-#include "/usr/include/malloc.h"-#else /* HAVE_USR_INCLUDE_MALLOC_H */--/* HP-UX's stdlib.h redefines mallinfo unless _STRUCT_MALLINFO is defined */-#define _STRUCT_MALLINFO--struct mallinfo {- MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */- MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */- MALLINFO_FIELD_TYPE smblks; /* always 0 */- MALLINFO_FIELD_TYPE hblks; /* always 0 */- MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */- MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */- MALLINFO_FIELD_TYPE fsmblks; /* always 0 */- MALLINFO_FIELD_TYPE uordblks; /* total allocated space */- MALLINFO_FIELD_TYPE fordblks; /* total free space */- MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */-};--#endif /* HAVE_USR_INCLUDE_MALLOC_H */-#endif /* NO_MALLINFO */--#ifdef __cplusplus-extern "C" {-#endif /* __cplusplus */--#if !ONLY_MSPACES--/* ------------------- Declarations of public routines ------------------- */--#ifndef USE_DL_PREFIX-#define dlcalloc calloc-#define dlfree free-#define dlmalloc malloc-#define dlmemalign memalign-#define dlrealloc realloc-#define dlvalloc valloc-#define dlpvalloc pvalloc-#define dlmallinfo mallinfo-#define dlmallopt mallopt-#define dlmalloc_trim malloc_trim-#define dlmalloc_stats malloc_stats-#define dlmalloc_usable_size malloc_usable_size-#define dlmalloc_footprint malloc_footprint-#define dlmalloc_max_footprint malloc_max_footprint-#define dlindependent_calloc independent_calloc-#define dlindependent_comalloc independent_comalloc-#endif /* USE_DL_PREFIX */---/*- malloc(size_t n)- Returns a pointer to a newly allocated chunk of at least n bytes, or- null if no space is available, in which case errno is set to ENOMEM- on ANSI C systems.-- If n is zero, malloc returns a minimum-sized chunk. (The minimum- size is 16 bytes on most 32bit systems, and 32 bytes on 64bit- systems.) Note that size_t is an unsigned type, so calls with- arguments that would be negative if signed are interpreted as- requests for huge amounts of space, which will often fail. The- maximum supported value of n differs across systems, but is in all- cases less than the maximum representable value of a size_t.-*/-void* dlmalloc(size_t);--/*- free(void* p)- Releases the chunk of memory pointed to by p, that had been previously- allocated using malloc or a related routine such as realloc.- It has no effect if p is null. If p was not malloced or already- freed, free(p) will by default cause the current program to abort.-*/-void dlfree(void*);--/*- calloc(size_t n_elements, size_t element_size);- Returns a pointer to n_elements * element_size bytes, with all locations- set to zero.-*/-void* dlcalloc(size_t, size_t);--/*- realloc(void* p, size_t n)- Returns a pointer to a chunk of size n that contains the same data- as does chunk p up to the minimum of (n, p's size) bytes, or null- if no space is available.-- The returned pointer may or may not be the same as p. The algorithm- prefers extending p in most cases when possible, otherwise it- employs the equivalent of a malloc-copy-free sequence.-- If p is null, realloc is equivalent to malloc.-- If space is not available, realloc returns null, errno is set (if on- ANSI) and p is NOT freed.-- if n is for fewer bytes than already held by p, the newly unused- space is lopped off and freed if possible. realloc with a size- argument of zero (re)allocates a minimum-sized chunk.-- The old unix realloc convention of allowing the last-free'd chunk- to be used as an argument to realloc is not supported.-*/--void* dlrealloc(void*, size_t);--/*- memalign(size_t alignment, size_t n);- Returns a pointer to a newly allocated chunk of n bytes, aligned- in accord with the alignment argument.-- The alignment argument should be a power of two. If the argument is- not a power of two, the nearest greater power is used.- 8-byte alignment is guaranteed by normal malloc calls, so don't- bother calling memalign with an argument of 8 or less.-- Overreliance on memalign is a sure way to fragment space.-*/-void* dlmemalign(size_t, size_t);--/*- valloc(size_t n);- Equivalent to memalign(pagesize, n), where pagesize is the page- size of the system. If the pagesize is unknown, 4096 is used.-*/-void* dlvalloc(size_t);--/*- mallopt(int parameter_number, int parameter_value)- Sets tunable parameters The format is to provide a- (parameter-number, parameter-value) pair. mallopt then sets the- corresponding parameter to the argument value if it can (i.e., so- long as the value is meaningful), and returns 1 if successful else- 0. SVID/XPG/ANSI defines four standard param numbers for mallopt,- normally defined in malloc.h. None of these are use in this malloc,- so setting them has no effect. But this malloc also supports other- options in mallopt. See below for details. Briefly, supported- parameters are as follows (listed defaults are for "typical"- configurations).-- Symbol param # default allowed param values- M_TRIM_THRESHOLD -1 2*1024*1024 any (MAX_SIZE_T disables)- M_GRANULARITY -2 page size any power of 2 >= page size- M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support)-*/-int dlmallopt(int, int);--/*- malloc_footprint();- Returns the number of bytes obtained from the system. The total- number of bytes allocated by malloc, realloc etc., is less than this- value. Unlike mallinfo, this function returns only a precomputed- result, so can be called frequently to monitor memory consumption.- Even if locks are otherwise defined, this function does not use them,- so results might not be up to date.-*/-size_t dlmalloc_footprint(void);--/*- malloc_max_footprint();- Returns the maximum number of bytes obtained from the system. This- value will be greater than current footprint if deallocated space- has been reclaimed by the system. The peak number of bytes allocated- by malloc, realloc etc., is less than this value. Unlike mallinfo,- this function returns only a precomputed result, so can be called- frequently to monitor memory consumption. Even if locks are- otherwise defined, this function does not use them, so results might- not be up to date.-*/-size_t dlmalloc_max_footprint(void);--#if !NO_MALLINFO-/*- mallinfo()- Returns (by copy) a struct containing various summary statistics:-- arena: current total non-mmapped bytes allocated from system- ordblks: the number of free chunks- smblks: always zero.- hblks: current number of mmapped regions- hblkhd: total bytes held in mmapped regions- usmblks: the maximum total allocated space. This will be greater- than current total if trimming has occurred.- fsmblks: always zero- uordblks: current total allocated space (normal or mmapped)- fordblks: total free space- keepcost: the maximum number of bytes that could ideally be released- back to system via malloc_trim. ("ideally" means that- it ignores page restrictions etc.)-- Because these fields are ints, but internal bookkeeping may- be kept as longs, the reported values may wrap around zero and- thus be inaccurate.-*/-struct mallinfo dlmallinfo(void);-#endif /* NO_MALLINFO */--/*- independent_calloc(size_t n_elements, size_t element_size, void* chunks[]);-- independent_calloc is similar to calloc, but instead of returning a- single cleared space, it returns an array of pointers to n_elements- independent elements that can hold contents of size elem_size, each- of which starts out cleared, and can be independently freed,- realloc'ed etc. The elements are guaranteed to be adjacently- allocated (this is not guaranteed to occur with multiple callocs or- mallocs), which may also improve cache locality in some- applications.-- The "chunks" argument is optional (i.e., may be null, which is- probably the most typical usage). If it is null, the returned array- is itself dynamically allocated and should also be freed when it is- no longer needed. Otherwise, the chunks array must be of at least- n_elements in length. It is filled in with the pointers to the- chunks.-- In either case, independent_calloc returns this pointer array, or- null if the allocation failed. If n_elements is zero and "chunks"- is null, it returns a chunk representing an array with zero elements- (which should be freed if not wanted).-- Each element must be individually freed when it is no longer- needed. If you'd like to instead be able to free all at once, you- should instead use regular calloc and assign pointers into this- space to represent elements. (In this case though, you cannot- independently free elements.)-- independent_calloc simplifies and speeds up implementations of many- kinds of pools. It may also be useful when constructing large data- structures that initially have a fixed number of fixed-sized nodes,- but the number is not known at compile time, and some of the nodes- may later need to be freed. For example:-- struct Node { int item; struct Node* next; };-- struct Node* build_list() {- struct Node** pool;- int n = read_number_of_nodes_needed();- if (n <= 0) return 0;- pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0);- if (pool == 0) die();- // organize into a linked list...- struct Node* first = pool[0];- for (i = 0; i < n-1; ++i)- pool[i]->next = pool[i+1];- free(pool); // Can now free the array (or not, if it is needed later)- return first;- }-*/-void** dlindependent_calloc(size_t, size_t, void**);--/*- independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]);-- independent_comalloc allocates, all at once, a set of n_elements- chunks with sizes indicated in the "sizes" array. It returns- an array of pointers to these elements, each of which can be- independently freed, realloc'ed etc. The elements are guaranteed to- be adjacently allocated (this is not guaranteed to occur with- multiple callocs or mallocs), which may also improve cache locality- in some applications.-- The "chunks" argument is optional (i.e., may be null). If it is null- the returned array is itself dynamically allocated and should also- be freed when it is no longer needed. Otherwise, the chunks array- must be of at least n_elements in length. It is filled in with the- pointers to the chunks.-- In either case, independent_comalloc returns this pointer array, or- null if the allocation failed. If n_elements is zero and chunks is- null, it returns a chunk representing an array with zero elements- (which should be freed if not wanted).-- Each element must be individually freed when it is no longer- needed. If you'd like to instead be able to free all at once, you- should instead use a single regular malloc, and assign pointers at- particular offsets in the aggregate space. (In this case though, you- cannot independently free elements.)-- independent_comallac differs from independent_calloc in that each- element may have a different size, and also that it does not- automatically clear elements.-- independent_comalloc can be used to speed up allocation in cases- where several structs or objects must always be allocated at the- same time. For example:-- struct Head { ... }- struct Foot { ... }-- void send_message(char* msg) {- int msglen = strlen(msg);- size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) };- void* chunks[3];- if (independent_comalloc(3, sizes, chunks) == 0)- die();- struct Head* head = (struct Head*)(chunks[0]);- char* body = (char*)(chunks[1]);- struct Foot* foot = (struct Foot*)(chunks[2]);- // ...- }-- In general though, independent_comalloc is worth using only for- larger values of n_elements. For small values, you probably won't- detect enough difference from series of malloc calls to bother.-- Overuse of independent_comalloc can increase overall memory usage,- since it cannot reuse existing noncontiguous small chunks that- might be available for some of the elements.-*/-void** dlindependent_comalloc(size_t, size_t*, void**);---/*- pvalloc(size_t n);- Equivalent to valloc(minimum-page-that-holds(n)), that is,- round up n to nearest pagesize.- */-void* dlpvalloc(size_t);--/*- malloc_trim(size_t pad);-- If possible, gives memory back to the system (via negative arguments- to sbrk) if there is unused memory at the `high' end of the malloc- pool or in unused MMAP segments. You can call this after freeing- large blocks of memory to potentially reduce the system-level memory- requirements of a program. However, it cannot guarantee to reduce- memory. Under some allocation patterns, some large free blocks of- memory will be locked between two used chunks, so they cannot be- given back to the system.-- The `pad' argument to malloc_trim represents the amount of free- trailing space to leave untrimmed. If this argument is zero, only- the minimum amount of memory to maintain internal data structures- will be left. Non-zero arguments can be supplied to maintain enough- trailing space to service future expected allocations without having- to re-obtain memory from the system.-- Malloc_trim returns 1 if it actually released any memory, else 0.-*/-int dlmalloc_trim(size_t);--/*- malloc_usable_size(void* p);-- Returns the number of bytes you can actually use in- an allocated chunk, which may be more than you requested (although- often not) due to alignment and minimum size constraints.- You can use this many bytes without worrying about- overwriting other allocated objects. This is not a particularly great- programming practice. malloc_usable_size can be more useful in- debugging and assertions, for example:-- p = malloc(n);- assert(malloc_usable_size(p) >= 256);-*/-size_t dlmalloc_usable_size(void*);--/*- malloc_stats();- Prints on stderr the amount of space obtained from the system (both- via sbrk and mmap), the maximum amount (which may be more than- current if malloc_trim and/or munmap got called), and the current- number of bytes allocated via malloc (or realloc, etc) but not yet- freed. Note that this is the number of bytes allocated, not the- number requested. It will be larger than the number requested- because of alignment and bookkeeping overhead. Because it includes- alignment wastage as being in use, this figure may be greater than- zero even when no user-level chunks are allocated.-- The reported current and maximum system memory can be inaccurate if- a program makes other calls to system memory allocation functions- (normally sbrk) outside of malloc.-- malloc_stats prints only the most commonly interesting statistics.- More information can be obtained by calling mallinfo.-*/-void dlmalloc_stats(void);--#endif /* ONLY_MSPACES */--#if MSPACES--/*- mspace is an opaque type representing an independent- region of space that supports mspace_malloc, etc.-*/-typedef void* mspace;--/*- create_mspace creates and returns a new independent space with the- given initial capacity, or, if 0, the default granularity size. It- returns null if there is no system memory available to create the- space. If argument locked is non-zero, the space uses a separate- lock to control access. The capacity of the space will grow- dynamically as needed to service mspace_malloc requests. You can- control the sizes of incremental increases of this space by- compiling with a different DEFAULT_GRANULARITY or dynamically- setting with mallopt(M_GRANULARITY, value).-*/-mspace create_mspace(size_t capacity, int locked);--/*- destroy_mspace destroys the given space, and attempts to return all- of its memory back to the system, returning the total number of- bytes freed. After destruction, the results of access to all memory- used by the space become undefined.-*/-size_t destroy_mspace(mspace msp);--/*- create_mspace_with_base uses the memory supplied as the initial base- of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this- space is used for bookkeeping, so the capacity must be at least this- large. (Otherwise 0 is returned.) When this initial space is- exhausted, additional memory will be obtained from the system.- Destroying this space will deallocate all additionally allocated- space (if possible) but not the initial base.-*/-mspace create_mspace_with_base(void* base, size_t capacity, int locked);--/*- mspace_malloc behaves as malloc, but operates within- the given space.-*/-void* mspace_malloc(mspace msp, size_t bytes);--/*- mspace_free behaves as free, but operates within- the given space.-- If compiled with FOOTERS==1, mspace_free is not actually needed.- free may be called instead of mspace_free because freed chunks from- any space are handled by their originating spaces.-*/-void mspace_free(mspace msp, void* mem);--/*- mspace_realloc behaves as realloc, but operates within- the given space.-- If compiled with FOOTERS==1, mspace_realloc is not actually- needed. realloc may be called instead of mspace_realloc because- realloced chunks from any space are handled by their originating- spaces.-*/-void* mspace_realloc(mspace msp, void* mem, size_t newsize);--/*- mspace_calloc behaves as calloc, but operates within- the given space.-*/-void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size);--/*- mspace_memalign behaves as memalign, but operates within- the given space.-*/-void* mspace_memalign(mspace msp, size_t alignment, size_t bytes);--/*- mspace_independent_calloc behaves as independent_calloc, but- operates within the given space.-*/-void** mspace_independent_calloc(mspace msp, size_t n_elements,- size_t elem_size, void* chunks[]);--/*- mspace_independent_comalloc behaves as independent_comalloc, but- operates within the given space.-*/-void** mspace_independent_comalloc(mspace msp, size_t n_elements,- size_t sizes[], void* chunks[]);--/*- mspace_footprint() returns the number of bytes obtained from the- system for this space.-*/-size_t mspace_footprint(mspace msp);--/*- mspace_max_footprint() returns the peak number of bytes obtained from the- system for this space.-*/-size_t mspace_max_footprint(mspace msp);---#if !NO_MALLINFO-/*- mspace_mallinfo behaves as mallinfo, but reports properties of- the given space.-*/-struct mallinfo mspace_mallinfo(mspace msp);-#endif /* NO_MALLINFO */--/*- mspace_malloc_stats behaves as malloc_stats, but reports- properties of the given space.-*/-void mspace_malloc_stats(mspace msp);--/*- mspace_trim behaves as malloc_trim, but- operates within the given space.-*/-int mspace_trim(mspace msp, size_t pad);--/*- An alias for mallopt.-*/-int mspace_mallopt(int, int);--#endif /* MSPACES */--#ifdef __cplusplus-}; /* end of extern "C" */-#endif /* __cplusplus */--/*- ========================================================================- To make a fully customizable malloc.h header file, cut everything- above this line, put into file malloc.h, edit to suit, and #include it- on the next line, as well as in programs that use this malloc.- ========================================================================-*/--/* #include "malloc.h" */--/*------------------------------ internal #includes ---------------------- */--#ifdef _MSC_VER-#pragma warning( disable : 4146 ) /* no "unsigned" warnings */-#endif /* _MSC_VER */--#include <stdio.h> /* for printing in malloc_stats */--#ifndef LACKS_ERRNO_H-#include <errno.h> /* for MALLOC_FAILURE_ACTION */-#endif /* LACKS_ERRNO_H */-#if FOOTERS-#include <time.h> /* for magic initialization */-#endif /* FOOTERS */-#ifndef LACKS_STDLIB_H-#include <stdlib.h> /* for abort() */-#endif /* LACKS_STDLIB_H */-#ifdef DEBUG-#if ABORT_ON_ASSERT_FAILURE-#define assert(x) if(!(x)) ABORT-#else /* ABORT_ON_ASSERT_FAILURE */-#include <assert.h>-#endif /* ABORT_ON_ASSERT_FAILURE */-#else /* DEBUG */-#define assert(x)-#endif /* DEBUG */-#ifndef LACKS_STRING_H-#include <string.h> /* for memset etc */-#endif /* LACKS_STRING_H */-#if USE_BUILTIN_FFS-#ifndef LACKS_STRINGS_H-#include <strings.h> /* for ffs */-#endif /* LACKS_STRINGS_H */-#endif /* USE_BUILTIN_FFS */-#if HAVE_MMAP-#ifndef LACKS_SYS_MMAN_H-#include <sys/mman.h> /* for mmap */-#endif /* LACKS_SYS_MMAN_H */-#ifndef LACKS_FCNTL_H-#include <fcntl.h>-#endif /* LACKS_FCNTL_H */-#endif /* HAVE_MMAP */-#if HAVE_MORECORE-#ifndef LACKS_UNISTD_H-#include <unistd.h> /* for sbrk */-#else /* LACKS_UNISTD_H */-#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)-extern void* sbrk(ptrdiff_t);-#endif /* FreeBSD etc */-#endif /* LACKS_UNISTD_H */-#endif /* HAVE_MMAP */--#ifndef WIN32-#ifndef malloc_getpagesize-# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */-# ifndef _SC_PAGE_SIZE-# define _SC_PAGE_SIZE _SC_PAGESIZE-# endif-# endif-# ifdef _SC_PAGE_SIZE-# define malloc_getpagesize sysconf(_SC_PAGE_SIZE)-# else-# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE)- extern size_t getpagesize();-# define malloc_getpagesize getpagesize()-# else-# ifdef WIN32 /* use supplied emulation of getpagesize */-# define malloc_getpagesize getpagesize()-# else-# ifndef LACKS_SYS_PARAM_H-# include <sys/param.h>-# endif-# ifdef EXEC_PAGESIZE-# define malloc_getpagesize EXEC_PAGESIZE-# else-# ifdef NBPG-# ifndef CLSIZE-# define malloc_getpagesize NBPG-# else-# define malloc_getpagesize (NBPG * CLSIZE)-# endif-# else-# ifdef NBPC-# define malloc_getpagesize NBPC-# else-# ifdef PAGESIZE-# define malloc_getpagesize PAGESIZE-# else /* just guess */-# define malloc_getpagesize ((size_t)4096U)-# endif-# endif-# endif-# endif-# endif-# endif-# endif-#endif-#endif--/* ------------------- size_t and alignment properties -------------------- */--/* The byte and bit size of a size_t */-#define SIZE_T_SIZE (sizeof(size_t))-#define SIZE_T_BITSIZE (sizeof(size_t) << 3)--/* Some constants coerced to size_t */-/* Annoying but necessary to avoid errors on some platforms */-#define SIZE_T_ZERO ((size_t)0)-#define SIZE_T_ONE ((size_t)1)-#define SIZE_T_TWO ((size_t)2)-#define TWO_SIZE_T_SIZES (SIZE_T_SIZE<<1)-#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE<<2)-#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES+TWO_SIZE_T_SIZES)-#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U)--/* The bit mask value corresponding to MALLOC_ALIGNMENT */-#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE)--/* True if address a has acceptable alignment */-#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0)--/* the number of bytes to offset an address to align it */-#define align_offset(A)\- ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\- ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK))--/* -------------------------- MMAP preliminaries ------------------------- */--/*- If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and- checks to fail so compiler optimizer can delete code rather than- using so many "#if"s.-*/---/* MORECORE and MMAP must return MFAIL on failure */-#define MFAIL ((void*)(MAX_SIZE_T))-#define CMFAIL ((char*)(MFAIL)) /* defined for convenience */--#if !HAVE_MMAP-#define IS_MMAPPED_BIT (SIZE_T_ZERO)-#define USE_MMAP_BIT (SIZE_T_ZERO)-#define CALL_MMAP(s) MFAIL-#define CALL_MUNMAP(a, s) (-1)-#define DIRECT_MMAP(s) MFAIL--#else /* HAVE_MMAP */-#define IS_MMAPPED_BIT (SIZE_T_ONE)-#define USE_MMAP_BIT (SIZE_T_ONE)--#if !defined(WIN32) && !defined (__OS2__)-#define CALL_MUNMAP(a, s) munmap((a), (s))-#define MMAP_PROT (PROT_READ|PROT_WRITE)-#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)-#define MAP_ANONYMOUS MAP_ANON-#endif /* MAP_ANON */-#ifdef MAP_ANONYMOUS-#define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS)-#define CALL_MMAP(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0)-#else /* MAP_ANONYMOUS */-/*- Nearly all versions of mmap support MAP_ANONYMOUS, so the following- is unlikely to be needed, but is supplied just in case.-*/-#define MMAP_FLAGS (MAP_PRIVATE)-static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */-#define CALL_MMAP(s) ((dev_zero_fd < 0) ? \- (dev_zero_fd = open("/dev/zero", O_RDWR), \- mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \- mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0))-#endif /* MAP_ANONYMOUS */--#define DIRECT_MMAP(s) CALL_MMAP(s)--#elif defined(__OS2__)--/* OS/2 MMAP via DosAllocMem */-static void* os2mmap(size_t size) {- void* ptr;- if (DosAllocMem(&ptr, size, OBJ_ANY|PAG_COMMIT|PAG_READ|PAG_WRITE) &&- DosAllocMem(&ptr, size, PAG_COMMIT|PAG_READ|PAG_WRITE))- return MFAIL;- return ptr;-}--#define os2direct_mmap(n) os2mmap(n)--/* This function supports releasing coalesed segments */-static int os2munmap(void* ptr, size_t size) {- while (size) {- ULONG ulSize = size;- ULONG ulFlags = 0;- if (DosQueryMem(ptr, &ulSize, &ulFlags) != 0)- return -1;- if ((ulFlags & PAG_BASE) == 0 ||(ulFlags & PAG_COMMIT) == 0 ||- ulSize > size)- return -1;- if (DosFreeMem(ptr) != 0)- return -1;- ptr = ( void * ) ( ( char * ) ptr + ulSize );- size -= ulSize;- }- return 0;-}--#define CALL_MMAP(s) os2mmap(s)-#define CALL_MUNMAP(a, s) os2munmap((a), (s))-#define DIRECT_MMAP(s) os2direct_mmap(s)--#else /* WIN32 */--/* Win32 MMAP via VirtualAlloc */-static void* win32mmap(size_t size) {- void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE);- return (ptr != 0)? ptr: MFAIL;-}--/* For direct MMAP, use MEM_TOP_DOWN to minimize interference */-static void* win32direct_mmap(size_t size) {- void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN,- PAGE_EXECUTE_READWRITE);- return (ptr != 0)? ptr: MFAIL;-}--/* This function supports releasing coalesed segments */-static int win32munmap(void* ptr, size_t size) {- MEMORY_BASIC_INFORMATION minfo;- char* cptr = ptr;- while (size) {- if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0)- return -1;- if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr ||- minfo.State != MEM_COMMIT || minfo.RegionSize > size)- return -1;- if (VirtualFree(cptr, 0, MEM_RELEASE) == 0)- return -1;- cptr += minfo.RegionSize;- size -= minfo.RegionSize;- }- return 0;-}--#define CALL_MMAP(s) win32mmap(s)-#define CALL_MUNMAP(a, s) win32munmap((a), (s))-#define DIRECT_MMAP(s) win32direct_mmap(s)-#endif /* WIN32 */-#endif /* HAVE_MMAP */--#if HAVE_MMAP && HAVE_MREMAP-#define CALL_MREMAP(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv))-#else /* HAVE_MMAP && HAVE_MREMAP */-#define CALL_MREMAP(addr, osz, nsz, mv) MFAIL-#endif /* HAVE_MMAP && HAVE_MREMAP */--#if HAVE_MORECORE-#define CALL_MORECORE(S) MORECORE(S)-#else /* HAVE_MORECORE */-#define CALL_MORECORE(S) MFAIL-#endif /* HAVE_MORECORE */--/* mstate bit set if contiguous morecore disabled or failed */-#define USE_NONCONTIGUOUS_BIT (4U)--/* segment bit set in create_mspace_with_base */-#define EXTERN_BIT (8U)---/* --------------------------- Lock preliminaries ------------------------ */--#if USE_LOCKS--/*- When locks are defined, there are up to two global locks:-- * If HAVE_MORECORE, morecore_mutex protects sequences of calls to- MORECORE. In many cases sys_alloc requires two calls, that should- not be interleaved with calls by other threads. This does not- protect against direct calls to MORECORE by other threads not- using this lock, so there is still code to cope the best we can on- interference.-- * magic_init_mutex ensures that mparams.magic and other- unique mparams values are initialized only once.-*/--#if !defined(WIN32) && !defined(__OS2__)-/* By default use posix locks */-#include <pthread.h>-#define MLOCK_T pthread_mutex_t-#define INITIAL_LOCK(l) pthread_mutex_init(l, NULL)-#define ACQUIRE_LOCK(l) pthread_mutex_lock(l)-#define RELEASE_LOCK(l) pthread_mutex_unlock(l)--#if HAVE_MORECORE-static MLOCK_T morecore_mutex = PTHREAD_MUTEX_INITIALIZER;-#endif /* HAVE_MORECORE */--static MLOCK_T magic_init_mutex = PTHREAD_MUTEX_INITIALIZER;--#elif defined(__OS2__)-#define MLOCK_T HMTX-#define INITIAL_LOCK(l) DosCreateMutexSem(0, l, 0, FALSE)-#define ACQUIRE_LOCK(l) DosRequestMutexSem(*l, SEM_INDEFINITE_WAIT)-#define RELEASE_LOCK(l) DosReleaseMutexSem(*l)-#if HAVE_MORECORE-static MLOCK_T morecore_mutex;-#endif /* HAVE_MORECORE */-static MLOCK_T magic_init_mutex;--#else /* WIN32 */-/*- Because lock-protected regions have bounded times, and there- are no recursive lock calls, we can use simple spinlocks.-*/--#define MLOCK_T long-static int win32_acquire_lock (MLOCK_T *sl) {- for (;;) {-#ifdef InterlockedCompareExchangePointer- if (!InterlockedCompareExchange(sl, 1, 0))- return 0;-#else /* Use older void* version */- if (!InterlockedCompareExchange((void**)sl, (void*)1, (void*)0))- return 0;-#endif /* InterlockedCompareExchangePointer */- Sleep (0);- }-}--static void win32_release_lock (MLOCK_T *sl) {- InterlockedExchange (sl, 0);-}--#define INITIAL_LOCK(l) *(l)=0-#define ACQUIRE_LOCK(l) win32_acquire_lock(l)-#define RELEASE_LOCK(l) win32_release_lock(l)-#if HAVE_MORECORE-static MLOCK_T morecore_mutex;-#endif /* HAVE_MORECORE */-static MLOCK_T magic_init_mutex;-#endif /* WIN32 */--#define USE_LOCK_BIT (2U)-#else /* USE_LOCKS */-#define USE_LOCK_BIT (0U)-#define INITIAL_LOCK(l)-#endif /* USE_LOCKS */--#if USE_LOCKS && HAVE_MORECORE-#define ACQUIRE_MORECORE_LOCK() ACQUIRE_LOCK(&morecore_mutex);-#define RELEASE_MORECORE_LOCK() RELEASE_LOCK(&morecore_mutex);-#else /* USE_LOCKS && HAVE_MORECORE */-#define ACQUIRE_MORECORE_LOCK()-#define RELEASE_MORECORE_LOCK()-#endif /* USE_LOCKS && HAVE_MORECORE */--#if USE_LOCKS-#define ACQUIRE_MAGIC_INIT_LOCK() ACQUIRE_LOCK(&magic_init_mutex);-#define RELEASE_MAGIC_INIT_LOCK() RELEASE_LOCK(&magic_init_mutex);-#else /* USE_LOCKS */-#define ACQUIRE_MAGIC_INIT_LOCK()-#define RELEASE_MAGIC_INIT_LOCK()-#endif /* USE_LOCKS */---/* ----------------------- Chunk representations ------------------------ */--/*- (The following includes lightly edited explanations by Colin Plumb.)-- The malloc_chunk declaration below is misleading (but accurate and- necessary). It declares a "view" into memory allowing access to- necessary fields at known offsets from a given base.-- Chunks of memory are maintained using a `boundary tag' method as- originally described by Knuth. (See the paper by Paul Wilson- ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a survey of such- techniques.) Sizes of free chunks are stored both in the front of- each chunk and at the end. This makes consolidating fragmented- chunks into bigger chunks fast. The head fields also hold bits- representing whether chunks are free or in use.-- Here are some pictures to make it clearer. They are "exploded" to- show that the state of a chunk can be thought of as extending from- the high 31 bits of the head field of its header through the- prev_foot and PINUSE_BIT bit of the following chunk header.-- A chunk that's in use looks like:-- chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Size of previous chunk (if P = 1) |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|- | Size of this chunk 1| +-+- mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | |- +- -+- | |- +- -+- | :- +- size - sizeof(size_t) available payload bytes -+- : |- chunk-> +- -+- | |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|- | Size of next chunk (may or may not be in use) | +-+- mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- And if it's free, it looks like this:-- chunk-> +- -+- | User payload (must be in use, or we would have merged!) |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|- | Size of this chunk 0| +-+- mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Next pointer |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Prev pointer |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | :- +- size - sizeof(struct chunk) unused bytes -+- : |- chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Size of this chunk |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|- | Size of next chunk (must be in use, or we would have merged)| +-+- mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | :- +- User payload -+- : |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- |0|- +-+- Note that since we always merge adjacent free chunks, the chunks- adjacent to a free chunk must be in use.-- Given a pointer to a chunk (which can be derived trivially from the- payload pointer) we can, in O(1) time, find out whether the adjacent- chunks are free, and if so, unlink them from the lists that they- are on and merge them with the current chunk.-- Chunks always begin on even word boundaries, so the mem portion- (which is returned to the user) is also on an even word boundary, and- thus at least double-word aligned.-- The P (PINUSE_BIT) bit, stored in the unused low-order bit of the- chunk size (which is always a multiple of two words), is an in-use- bit for the *previous* chunk. If that bit is *clear*, then the- word before the current chunk size contains the previous chunk- size, and can be used to find the front of the previous chunk.- The very first chunk allocated always has this bit set, preventing- access to non-existent (or non-owned) memory. If pinuse is set for- any given chunk, then you CANNOT determine the size of the- previous chunk, and might even get a memory addressing fault when- trying to do so.-- The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of- the chunk size redundantly records whether the current chunk is- inuse. This redundancy enables usage checks within free and realloc,- and reduces indirection when freeing and consolidating chunks.-- Each freshly allocated chunk must have both cinuse and pinuse set.- That is, each allocated chunk borders either a previously allocated- and still in-use chunk, or the base of its memory arena. This is- ensured by making all allocations from the the `lowest' part of any- found chunk. Further, no free chunk physically borders another one,- so each free chunk is known to be preceded and followed by either- inuse chunks or the ends of memory.-- Note that the `foot' of the current chunk is actually represented- as the prev_foot of the NEXT chunk. This makes it easier to- deal with alignments etc but can be very confusing when trying- to extend or adapt this code.-- The exceptions to all this are-- 1. The special chunk `top' is the top-most available chunk (i.e.,- the one bordering the end of available memory). It is treated- specially. Top is never included in any bin, is used only if- no other chunk is available, and is released back to the- system if it is very large (see M_TRIM_THRESHOLD). In effect,- the top chunk is treated as larger (and thus less well- fitting) than any other available chunk. The top chunk- doesn't update its trailing size field since there is no next- contiguous chunk that would have to index off it. However,- space is still allocated for it (TOP_FOOT_SIZE) to enable- separation or merging when space is extended.-- 3. Chunks allocated via mmap, which have the lowest-order bit- (IS_MMAPPED_BIT) set in their prev_foot fields, and do not set- PINUSE_BIT in their head fields. Because they are allocated- one-by-one, each must carry its own prev_foot field, which is- also used to hold the offset this chunk has within its mmapped- region, which is needed to preserve alignment. Each mmapped- chunk is trailed by the first two fields of a fake next-chunk- for sake of usage checks.--*/--struct malloc_chunk {- size_t prev_foot; /* Size of previous chunk (if free). */- size_t head; /* Size and inuse bits. */- struct malloc_chunk* fd; /* double links -- used only if free. */- struct malloc_chunk* bk;-};--typedef struct malloc_chunk mchunk;-typedef struct malloc_chunk* mchunkptr;-typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */-typedef size_t bindex_t; /* Described below */-typedef unsigned int binmap_t; /* Described below */-typedef unsigned int flag_t; /* The type of various bit flag sets */--/* ------------------- Chunks sizes and alignments ----------------------- */--#define MCHUNK_SIZE (sizeof(mchunk))--#if FOOTERS-#define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES)-#else /* FOOTERS */-#define CHUNK_OVERHEAD (SIZE_T_SIZE)-#endif /* FOOTERS */--/* MMapped chunks need a second word of overhead ... */-#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES)-/* ... and additional padding for fake next-chunk at foot */-#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES)--/* The smallest size we can malloc is an aligned minimal chunk */-#define MIN_CHUNK_SIZE\- ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)--/* conversion from malloc headers to user pointers, and back */-#define chunk2mem(p) ((void*)((char*)(p) + TWO_SIZE_T_SIZES))-#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - TWO_SIZE_T_SIZES))-/* chunk associated with aligned address A */-#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A)))--/* Bounds on request (not chunk) sizes. */-#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2)-#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE)--/* pad request bytes into a usable size */-#define pad_request(req) \- (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)--/* pad request, checking for minimum (but not maximum) */-#define request2size(req) \- (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req))---/* ------------------ Operations on head and foot fields ----------------- */--/*- The head field of a chunk is or'ed with PINUSE_BIT when previous- adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in- use. If the chunk was obtained with mmap, the prev_foot field has- IS_MMAPPED_BIT set, otherwise holding the offset of the base of the- mmapped region to the base of the chunk.-*/--#define PINUSE_BIT (SIZE_T_ONE)-#define CINUSE_BIT (SIZE_T_TWO)-#define INUSE_BITS (PINUSE_BIT|CINUSE_BIT)--/* Head value for fenceposts */-#define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE)--/* extraction of fields from head words */-#define cinuse(p) ((p)->head & CINUSE_BIT)-#define pinuse(p) ((p)->head & PINUSE_BIT)-#define chunksize(p) ((p)->head & ~(INUSE_BITS))--#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT)-#define clear_cinuse(p) ((p)->head &= ~CINUSE_BIT)--/* Treat space at ptr +/- offset as a chunk */-#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s)))-#define chunk_minus_offset(p, s) ((mchunkptr)(((char*)(p)) - (s)))--/* Ptr to next or previous physical malloc_chunk. */-#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->head & ~INUSE_BITS)))-#define prev_chunk(p) ((mchunkptr)( ((char*)(p)) - ((p)->prev_foot) ))--/* extract next chunk's pinuse bit */-#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT)--/* Get/set size at footer */-#define get_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot)-#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot = (s))--/* Set size, pinuse bit, and foot */-#define set_size_and_pinuse_of_free_chunk(p, s)\- ((p)->head = (s|PINUSE_BIT), set_foot(p, s))--/* Set size, pinuse bit, foot, and clear next pinuse */-#define set_free_with_pinuse(p, s, n)\- (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s))--#define is_mmapped(p)\- (!((p)->head & PINUSE_BIT) && ((p)->prev_foot & IS_MMAPPED_BIT))--/* Get the internal overhead associated with chunk p */-#define overhead_for(p)\- (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD)--/* Return true if malloced space is not necessarily cleared */-#if MMAP_CLEARS-#define calloc_must_clear(p) (!is_mmapped(p))-#else /* MMAP_CLEARS */-#define calloc_must_clear(p) (1)-#endif /* MMAP_CLEARS */--/* ---------------------- Overlaid data structures ----------------------- */--/*- When chunks are not in use, they are treated as nodes of either- lists or trees.-- "Small" chunks are stored in circular doubly-linked lists, and look- like this:-- chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Size of previous chunk |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- `head:' | Size of chunk, in bytes |P|- mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Forward pointer to next chunk in list |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Back pointer to previous chunk in list |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Unused space (may be 0 bytes long) .- . .- . |-nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- `foot:' | Size of chunk, in bytes |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- Larger chunks are kept in a form of bitwise digital trees (aka- tries) keyed on chunksizes. Because malloc_tree_chunks are only for- free chunks greater than 256 bytes, their size doesn't impose any- constraints on user chunk sizes. Each node looks like:-- chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Size of previous chunk |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- `head:' | Size of chunk, in bytes |P|- mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Forward pointer to next chunk of same size |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Back pointer to previous chunk of same size |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Pointer to left child (child[0]) |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Pointer to right child (child[1]) |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Pointer to parent |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | bin index of this chunk |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | Unused space .- . |-nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- `foot:' | Size of chunk, in bytes |- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-- Each tree holding treenodes is a tree of unique chunk sizes. Chunks- of the same size are arranged in a circularly-linked list, with only- the oldest chunk (the next to be used, in our FIFO ordering)- actually in the tree. (Tree members are distinguished by a non-null- parent pointer.) If a chunk with the same size an an existing node- is inserted, it is linked off the existing node using pointers that- work in the same way as fd/bk pointers of small chunks.-- Each tree contains a power of 2 sized range of chunk sizes (the- smallest is 0x100 <= x < 0x180), which is is divided in half at each- tree level, with the chunks in the smaller half of the range (0x100- <= x < 0x140 for the top nose) in the left subtree and the larger- half (0x140 <= x < 0x180) in the right subtree. This is, of course,- done by inspecting individual bits.-- Using these rules, each node's left subtree contains all smaller- sizes than its right subtree. However, the node at the root of each- subtree has no particular ordering relationship to either. (The- dividing line between the subtree sizes is based on trie relation.)- If we remove the last chunk of a given size from the interior of the- tree, we need to replace it with a leaf node. The tree ordering- rules permit a node to be replaced by any leaf below it.-- The smallest chunk in a tree (a common operation in a best-fit- allocator) can be found by walking a path to the leftmost leaf in- the tree. Unlike a usual binary tree, where we follow left child- pointers until we reach a null, here we follow the right child- pointer any time the left one is null, until we reach a leaf with- both child pointers null. The smallest chunk in the tree will be- somewhere along that path.-- The worst case number of steps to add, find, or remove a node is- bounded by the number of bits differentiating chunks within- bins. Under current bin calculations, this ranges from 6 up to 21- (for 32 bit sizes) or up to 53 (for 64 bit sizes). The typical case- is of course much better.-*/--struct malloc_tree_chunk {- /* The first four fields must be compatible with malloc_chunk */- size_t prev_foot;- size_t head;- struct malloc_tree_chunk* fd;- struct malloc_tree_chunk* bk;-- struct malloc_tree_chunk* child[2];- struct malloc_tree_chunk* parent;- bindex_t index;-};--typedef struct malloc_tree_chunk tchunk;-typedef struct malloc_tree_chunk* tchunkptr;-typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */--/* A little helper macro for trees */-#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1])--/* ----------------------------- Segments -------------------------------- */--/*- Each malloc space may include non-contiguous segments, held in a- list headed by an embedded malloc_segment record representing the- top-most space. Segments also include flags holding properties of- the space. Large chunks that are directly allocated by mmap are not- included in this list. They are instead independently created and- destroyed without otherwise keeping track of them.-- Segment management mainly comes into play for spaces allocated by- MMAP. Any call to MMAP might or might not return memory that is- adjacent to an existing segment. MORECORE normally contiguously- extends the current space, so this space is almost always adjacent,- which is simpler and faster to deal with. (This is why MORECORE is- used preferentially to MMAP when both are available -- see- sys_alloc.) When allocating using MMAP, we don't use any of the- hinting mechanisms (inconsistently) supported in various- implementations of unix mmap, or distinguish reserving from- committing memory. Instead, we just ask for space, and exploit- contiguity when we get it. It is probably possible to do- better than this on some systems, but no general scheme seems- to be significantly better.-- Management entails a simpler variant of the consolidation scheme- used for chunks to reduce fragmentation -- new adjacent memory is- normally prepended or appended to an existing segment. However,- there are limitations compared to chunk consolidation that mostly- reflect the fact that segment processing is relatively infrequent- (occurring only when getting memory from system) and that we- don't expect to have huge numbers of segments:-- * Segments are not indexed, so traversal requires linear scans. (It- would be possible to index these, but is not worth the extra- overhead and complexity for most programs on most platforms.)- * New segments are only appended to old ones when holding top-most- memory; if they cannot be prepended to others, they are held in- different segments.-- Except for the top-most segment of an mstate, each segment record- is kept at the tail of its segment. Segments are added by pushing- segment records onto the list headed by &mstate.seg for the- containing mstate.-- Segment flags control allocation/merge/deallocation policies:- * If EXTERN_BIT set, then we did not allocate this segment,- and so should not try to deallocate or merge with others.- (This currently holds only for the initial segment passed- into create_mspace_with_base.)- * If IS_MMAPPED_BIT set, the segment may be merged with- other surrounding mmapped segments and trimmed/de-allocated- using munmap.- * If neither bit is set, then the segment was obtained using- MORECORE so can be merged with surrounding MORECORE'd segments- and deallocated/trimmed using MORECORE with negative arguments.-*/--struct malloc_segment {- char* base; /* base address */- size_t size; /* allocated size */- struct malloc_segment* next; /* ptr to next segment */-#if FFI_MMAP_EXEC_WRIT- /* The mmap magic is supposed to store the address of the executable- segment at the very end of the requested block. */--# define mmap_exec_offset(b,s) (*(ptrdiff_t*)((b)+(s)-sizeof(ptrdiff_t)))-- /* We can only merge segments if their corresponding executable- segments are at identical offsets. */-# define check_segment_merge(S,b,s) \- (mmap_exec_offset((b),(s)) == (S)->exec_offset)--# define add_segment_exec_offset(p,S) ((char*)(p) + (S)->exec_offset)-# define sub_segment_exec_offset(p,S) ((char*)(p) - (S)->exec_offset)-- /* The removal of sflags only works with HAVE_MORECORE == 0. */--# define get_segment_flags(S) (IS_MMAPPED_BIT)-# define set_segment_flags(S,v) \- (((v) != IS_MMAPPED_BIT) ? (ABORT, (v)) : \- (((S)->exec_offset = \- mmap_exec_offset((S)->base, (S)->size)), \- (mmap_exec_offset((S)->base + (S)->exec_offset, (S)->size) != \- (S)->exec_offset) ? (ABORT, (v)) : \- (mmap_exec_offset((S)->base, (S)->size) = 0), (v)))-- /* We use an offset here, instead of a pointer, because then, when- base changes, we don't have to modify this. On architectures- with segmented addresses, this might not work. */- ptrdiff_t exec_offset;-#else--# define get_segment_flags(S) ((S)->sflags)-# define set_segment_flags(S,v) ((S)->sflags = (v))-# define check_segment_merge(S,b,s) (1)-- flag_t sflags; /* mmap and extern flag */-#endif-};--#define is_mmapped_segment(S) (get_segment_flags(S) & IS_MMAPPED_BIT)-#define is_extern_segment(S) (get_segment_flags(S) & EXTERN_BIT)--typedef struct malloc_segment msegment;-typedef struct malloc_segment* msegmentptr;--/* ---------------------------- malloc_state ----------------------------- */--/*- A malloc_state holds all of the bookkeeping for a space.- The main fields are:-- Top- The topmost chunk of the currently active segment. Its size is- cached in topsize. The actual size of topmost space is- topsize+TOP_FOOT_SIZE, which includes space reserved for adding- fenceposts and segment records if necessary when getting more- space from the system. The size at which to autotrim top is- cached from mparams in trim_check, except that it is disabled if- an autotrim fails.-- Designated victim (dv)- This is the preferred chunk for servicing small requests that- don't have exact fits. It is normally the chunk split off most- recently to service another small request. Its size is cached in- dvsize. The link fields of this chunk are not maintained since it- is not kept in a bin.-- SmallBins- An array of bin headers for free chunks. These bins hold chunks- with sizes less than MIN_LARGE_SIZE bytes. Each bin contains- chunks of all the same size, spaced 8 bytes apart. To simplify- use in double-linked lists, each bin header acts as a malloc_chunk- pointing to the real first node, if it exists (else pointing to- itself). This avoids special-casing for headers. But to avoid- waste, we allocate only the fd/bk pointers of bins, and then use- repositioning tricks to treat these as the fields of a chunk.-- TreeBins- Treebins are pointers to the roots of trees holding a range of- sizes. There are 2 equally spaced treebins for each power of two- from TREE_SHIFT to TREE_SHIFT+16. The last bin holds anything- larger.-- Bin maps- There is one bit map for small bins ("smallmap") and one for- treebins ("treemap). Each bin sets its bit when non-empty, and- clears the bit when empty. Bit operations are then used to avoid- bin-by-bin searching -- nearly all "search" is done without ever- looking at bins that won't be selected. The bit maps- conservatively use 32 bits per map word, even if on 64bit system.- For a good description of some of the bit-based techniques used- here, see Henry S. Warren Jr's book "Hacker's Delight" (and- supplement at http://hackersdelight.org/). Many of these are- intended to reduce the branchiness of paths through malloc etc, as- well as to reduce the number of memory locations read or written.-- Segments- A list of segments headed by an embedded malloc_segment record- representing the initial space.-- Address check support- The least_addr field is the least address ever obtained from- MORECORE or MMAP. Attempted frees and reallocs of any address less- than this are trapped (unless INSECURE is defined).-- Magic tag- A cross-check field that should always hold same value as mparams.magic.-- Flags- Bits recording whether to use MMAP, locks, or contiguous MORECORE-- Statistics- Each space keeps track of current and maximum system memory- obtained via MORECORE or MMAP.-- Locking- If USE_LOCKS is defined, the "mutex" lock is acquired and released- around every public call using this mspace.-*/--/* Bin types, widths and sizes */-#define NSMALLBINS (32U)-#define NTREEBINS (32U)-#define SMALLBIN_SHIFT (3U)-#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT)-#define TREEBIN_SHIFT (8U)-#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT)-#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE)-#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD)--struct malloc_state {- binmap_t smallmap;- binmap_t treemap;- size_t dvsize;- size_t topsize;- char* least_addr;- mchunkptr dv;- mchunkptr top;- size_t trim_check;- size_t magic;- mchunkptr smallbins[(NSMALLBINS+1)*2];- tbinptr treebins[NTREEBINS];- size_t footprint;- size_t max_footprint;- flag_t mflags;-#if USE_LOCKS- MLOCK_T mutex; /* locate lock among fields that rarely change */-#endif /* USE_LOCKS */- msegment seg;-};--typedef struct malloc_state* mstate;--/* ------------- Global malloc_state and malloc_params ------------------- */--/*- malloc_params holds global properties, including those that can be- dynamically set using mallopt. There is a single instance, mparams,- initialized in init_mparams.-*/--struct malloc_params {- size_t magic;- size_t page_size;- size_t granularity;- size_t mmap_threshold;- size_t trim_threshold;- flag_t default_mflags;-};--static struct malloc_params mparams;--/* The global malloc_state used for all non-"mspace" calls */-static struct malloc_state _gm_;-#define gm (&_gm_)-#define is_global(M) ((M) == &_gm_)-#define is_initialized(M) ((M)->top != 0)--/* -------------------------- system alloc setup ------------------------- */--/* Operations on mflags */--#define use_lock(M) ((M)->mflags & USE_LOCK_BIT)-#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT)-#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT)--#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT)-#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT)-#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT)--#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT)-#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT)--#define set_lock(M,L)\- ((M)->mflags = (L)?\- ((M)->mflags | USE_LOCK_BIT) :\- ((M)->mflags & ~USE_LOCK_BIT))--/* page-align a size */-#define page_align(S)\- (((S) + (mparams.page_size)) & ~(mparams.page_size - SIZE_T_ONE))--/* granularity-align a size */-#define granularity_align(S)\- (((S) + (mparams.granularity)) & ~(mparams.granularity - SIZE_T_ONE))--#define is_page_aligned(S)\- (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0)-#define is_granularity_aligned(S)\- (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0)--/* True if segment S holds address A */-#define segment_holds(S, A)\- ((char*)(A) >= S->base && (char*)(A) < S->base + S->size)--/* Return segment holding given address */-static msegmentptr segment_holding(mstate m, char* addr) {- msegmentptr sp = &m->seg;- for (;;) {- if (addr >= sp->base && addr < sp->base + sp->size)- return sp;- if ((sp = sp->next) == 0)- return 0;- }-}--/* Return true if segment contains a segment link */-static int has_segment_link(mstate m, msegmentptr ss) {- msegmentptr sp = &m->seg;- for (;;) {- if ((char*)sp >= ss->base && (char*)sp < ss->base + ss->size)- return 1;- if ((sp = sp->next) == 0)- return 0;- }-}--#ifndef MORECORE_CANNOT_TRIM-#define should_trim(M,s) ((s) > (M)->trim_check)-#else /* MORECORE_CANNOT_TRIM */-#define should_trim(M,s) (0)-#endif /* MORECORE_CANNOT_TRIM */--/*- TOP_FOOT_SIZE is padding at the end of a segment, including space- that may be needed to place segment records and fenceposts when new- noncontiguous segments are added.-*/-#define TOP_FOOT_SIZE\- (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE)---/* ------------------------------- Hooks -------------------------------- */--/*- PREACTION should be defined to return 0 on success, and nonzero on- failure. If you are not using locking, you can redefine these to do- anything you like.-*/--#if USE_LOCKS--/* Ensure locks are initialized */-#define GLOBALLY_INITIALIZE() (mparams.page_size == 0 && init_mparams())--#define PREACTION(M) ((GLOBALLY_INITIALIZE() || use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0)-#define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); }-#else /* USE_LOCKS */--#ifndef PREACTION-#define PREACTION(M) (0)-#endif /* PREACTION */--#ifndef POSTACTION-#define POSTACTION(M)-#endif /* POSTACTION */--#endif /* USE_LOCKS */--/*- CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses.- USAGE_ERROR_ACTION is triggered on detected bad frees and- reallocs. The argument p is an address that might have triggered the- fault. It is ignored by the two predefined actions, but might be- useful in custom actions that try to help diagnose errors.-*/--#if PROCEED_ON_ERROR--/* A count of the number of corruption errors causing resets */-int malloc_corruption_error_count;--/* default corruption action */-static void reset_on_error(mstate m);--#define CORRUPTION_ERROR_ACTION(m) reset_on_error(m)-#define USAGE_ERROR_ACTION(m, p)--#else /* PROCEED_ON_ERROR */--#ifndef CORRUPTION_ERROR_ACTION-#define CORRUPTION_ERROR_ACTION(m) ABORT-#endif /* CORRUPTION_ERROR_ACTION */--#ifndef USAGE_ERROR_ACTION-#define USAGE_ERROR_ACTION(m,p) ABORT-#endif /* USAGE_ERROR_ACTION */--#endif /* PROCEED_ON_ERROR */--/* -------------------------- Debugging setup ---------------------------- */--#if ! DEBUG--#define check_free_chunk(M,P)-#define check_inuse_chunk(M,P)-#define check_malloced_chunk(M,P,N)-#define check_mmapped_chunk(M,P)-#define check_malloc_state(M)-#define check_top_chunk(M,P)--#else /* DEBUG */-#define check_free_chunk(M,P) do_check_free_chunk(M,P)-#define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P)-#define check_top_chunk(M,P) do_check_top_chunk(M,P)-#define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N)-#define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P)-#define check_malloc_state(M) do_check_malloc_state(M)--static void do_check_any_chunk(mstate m, mchunkptr p);-static void do_check_top_chunk(mstate m, mchunkptr p);-static void do_check_mmapped_chunk(mstate m, mchunkptr p);-static void do_check_inuse_chunk(mstate m, mchunkptr p);-static void do_check_free_chunk(mstate m, mchunkptr p);-static void do_check_malloced_chunk(mstate m, void* mem, size_t s);-static void do_check_tree(mstate m, tchunkptr t);-static void do_check_treebin(mstate m, bindex_t i);-static void do_check_smallbin(mstate m, bindex_t i);-static void do_check_malloc_state(mstate m);-static int bin_find(mstate m, mchunkptr x);-static size_t traverse_and_check(mstate m);-#endif /* DEBUG */--/* ---------------------------- Indexing Bins ---------------------------- */--#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS)-#define small_index(s) ((s) >> SMALLBIN_SHIFT)-#define small_index2size(i) ((i) << SMALLBIN_SHIFT)-#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE))--/* addressing by index. See above about smallbin repositioning */-#define smallbin_at(M, i) ((sbinptr)((char*)&((M)->smallbins[(i)<<1])))-#define treebin_at(M,i) (&((M)->treebins[i]))--/* assign tree index for size S to variable I */-#if defined(__GNUC__) && defined(__i386__)-#define compute_tree_index(S, I)\-{\- size_t X = S >> TREEBIN_SHIFT;\- if (X == 0)\- I = 0;\- else if (X > 0xFFFF)\- I = NTREEBINS-1;\- else {\- unsigned int K;\- __asm__("bsrl %1,%0\n\t" : "=r" (K) : "rm" (X));\- I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\- }\-}-#else /* GNUC */-#define compute_tree_index(S, I)\-{\- size_t X = S >> TREEBIN_SHIFT;\- if (X == 0)\- I = 0;\- else if (X > 0xFFFF)\- I = NTREEBINS-1;\- else {\- unsigned int Y = (unsigned int)X;\- unsigned int N = ((Y - 0x100) >> 16) & 8;\- unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4;\- N += K;\- N += K = (((Y <<= K) - 0x4000) >> 16) & 2;\- K = 14 - N + ((Y <<= K) >> 15);\- I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1));\- }\-}-#endif /* GNUC */--/* Bit representing maximum resolved size in a treebin at i */-#define bit_for_tree_index(i) \- (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2)--/* Shift placing maximum resolved bit in a treebin at i as sign bit */-#define leftshift_for_tree_index(i) \- ((i == NTREEBINS-1)? 0 : \- ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2)))--/* The size of the smallest chunk held in bin with index i */-#define minsize_for_tree_index(i) \- ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | \- (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1)))---/* ------------------------ Operations on bin maps ----------------------- */--/* bit corresponding to given index */-#define idx2bit(i) ((binmap_t)(1) << (i))--/* Mark/Clear bits with given index */-#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i))-#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i))-#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i))--#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i))-#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i))-#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i))--/* index corresponding to given bit */--#if defined(__GNUC__) && defined(__i386__)-#define compute_bit2idx(X, I)\-{\- unsigned int J;\- __asm__("bsfl %1,%0\n\t" : "=r" (J) : "rm" (X));\- I = (bindex_t)J;\-}--#else /* GNUC */-#if USE_BUILTIN_FFS-#define compute_bit2idx(X, I) I = __builtin_ffs(X)-1--#else /* USE_BUILTIN_FFS */-#define compute_bit2idx(X, I)\-{\- unsigned int Y = X - 1;\- unsigned int K = Y >> (16-4) & 16;\- unsigned int N = K; Y >>= K;\- N += K = Y >> (8-3) & 8; Y >>= K;\- N += K = Y >> (4-2) & 4; Y >>= K;\- N += K = Y >> (2-1) & 2; Y >>= K;\- N += K = Y >> (1-0) & 1; Y >>= K;\- I = (bindex_t)(N + Y);\-}-#endif /* USE_BUILTIN_FFS */-#endif /* GNUC */--/* isolate the least set bit of a bitmap */-#define least_bit(x) ((x) & -(x))--/* mask with all bits to left of least bit of x on */-#define left_bits(x) ((x<<1) | -(x<<1))--/* mask with all bits to left of or equal to least bit of x on */-#define same_or_left_bits(x) ((x) | -(x))---/* ----------------------- Runtime Check Support ------------------------- */--/*- For security, the main invariant is that malloc/free/etc never- writes to a static address other than malloc_state, unless static- malloc_state itself has been corrupted, which cannot occur via- malloc (because of these checks). In essence this means that we- believe all pointers, sizes, maps etc held in malloc_state, but- check all of those linked or offsetted from other embedded data- structures. These checks are interspersed with main code in a way- that tends to minimize their run-time cost.-- When FOOTERS is defined, in addition to range checking, we also- verify footer fields of inuse chunks, which can be used guarantee- that the mstate controlling malloc/free is intact. This is a- streamlined version of the approach described by William Robertson- et al in "Run-time Detection of Heap-based Overflows" LISA'03- http://www.usenix.org/events/lisa03/tech/robertson.html The footer- of an inuse chunk holds the xor of its mstate and a random seed,- that is checked upon calls to free() and realloc(). This is- (probablistically) unguessable from outside the program, but can be- computed by any code successfully malloc'ing any chunk, so does not- itself provide protection against code that has already broken- security through some other means. Unlike Robertson et al, we- always dynamically check addresses of all offset chunks (previous,- next, etc). This turns out to be cheaper than relying on hashes.-*/--#if !INSECURE-/* Check if address a is at least as high as any from MORECORE or MMAP */-#define ok_address(M, a) ((char*)(a) >= (M)->least_addr)-/* Check if address of next chunk n is higher than base chunk p */-#define ok_next(p, n) ((char*)(p) < (char*)(n))-/* Check if p has its cinuse bit on */-#define ok_cinuse(p) cinuse(p)-/* Check if p has its pinuse bit on */-#define ok_pinuse(p) pinuse(p)--#else /* !INSECURE */-#define ok_address(M, a) (1)-#define ok_next(b, n) (1)-#define ok_cinuse(p) (1)-#define ok_pinuse(p) (1)-#endif /* !INSECURE */--#if (FOOTERS && !INSECURE)-/* Check if (alleged) mstate m has expected magic field */-#define ok_magic(M) ((M)->magic == mparams.magic)-#else /* (FOOTERS && !INSECURE) */-#define ok_magic(M) (1)-#endif /* (FOOTERS && !INSECURE) */---/* In gcc, use __builtin_expect to minimize impact of checks */-#if !INSECURE-#if defined(__GNUC__) && __GNUC__ >= 3-#define RTCHECK(e) __builtin_expect(e, 1)-#else /* GNUC */-#define RTCHECK(e) (e)-#endif /* GNUC */-#else /* !INSECURE */-#define RTCHECK(e) (1)-#endif /* !INSECURE */--/* macros to set up inuse chunks with or without footers */--#if !FOOTERS--#define mark_inuse_foot(M,p,s)--/* Set cinuse bit and pinuse bit of next chunk */-#define set_inuse(M,p,s)\- ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\- ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT)--/* Set cinuse and pinuse of this chunk and pinuse of next chunk */-#define set_inuse_and_pinuse(M,p,s)\- ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\- ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT)--/* Set size, cinuse and pinuse bit of this chunk */-#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\- ((p)->head = (s|PINUSE_BIT|CINUSE_BIT))--#else /* FOOTERS */--/* Set foot of inuse chunk to be xor of mstate and seed */-#define mark_inuse_foot(M,p,s)\- (((mchunkptr)((char*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic))--#define get_mstate_for(p)\- ((mstate)(((mchunkptr)((char*)(p) +\- (chunksize(p))))->prev_foot ^ mparams.magic))--#define set_inuse(M,p,s)\- ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\- (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT), \- mark_inuse_foot(M,p,s))--#define set_inuse_and_pinuse(M,p,s)\- ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\- (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT),\- mark_inuse_foot(M,p,s))--#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\- ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\- mark_inuse_foot(M, p, s))--#endif /* !FOOTERS */--/* ---------------------------- setting mparams -------------------------- */--/* Initialize mparams */-static int init_mparams(void) {- if (mparams.page_size == 0) {- size_t s;-- mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD;- mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD;-#if MORECORE_CONTIGUOUS- mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT;-#else /* MORECORE_CONTIGUOUS */- mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT;-#endif /* MORECORE_CONTIGUOUS */--#if (FOOTERS && !INSECURE)- {-#if USE_DEV_RANDOM- int fd;- unsigned char buf[sizeof(size_t)];- /* Try to use /dev/urandom, else fall back on using time */- if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 &&- read(fd, buf, sizeof(buf)) == sizeof(buf)) {- s = *((size_t *) buf);- close(fd);- }- else-#endif /* USE_DEV_RANDOM */- s = (size_t)(time(0) ^ (size_t)0x55555555U);-- s |= (size_t)8U; /* ensure nonzero */- s &= ~(size_t)7U; /* improve chances of fault for bad values */-- }-#else /* (FOOTERS && !INSECURE) */- s = (size_t)0x58585858U;-#endif /* (FOOTERS && !INSECURE) */- ACQUIRE_MAGIC_INIT_LOCK();- if (mparams.magic == 0) {- mparams.magic = s;- /* Set up lock for main malloc area */- INITIAL_LOCK(&gm->mutex);- gm->mflags = mparams.default_mflags;- }- RELEASE_MAGIC_INIT_LOCK();--#if !defined(WIN32) && !defined(__OS2__)- mparams.page_size = malloc_getpagesize;- mparams.granularity = ((DEFAULT_GRANULARITY != 0)?- DEFAULT_GRANULARITY : mparams.page_size);-#elif defined (__OS2__)- /* if low-memory is used, os2munmap() would break- if it were anything other than 64k */- mparams.page_size = 4096u;- mparams.granularity = 65536u;-#else /* WIN32 */- {- SYSTEM_INFO system_info;- GetSystemInfo(&system_info);- mparams.page_size = system_info.dwPageSize;- mparams.granularity = system_info.dwAllocationGranularity;- }-#endif /* WIN32 */-- /* Sanity-check configuration:- size_t must be unsigned and as wide as pointer type.- ints must be at least 4 bytes.- alignment must be at least 8.- Alignment, min chunk size, and page size must all be powers of 2.- */- if ((sizeof(size_t) != sizeof(char*)) ||- (MAX_SIZE_T < MIN_CHUNK_SIZE) ||- (sizeof(int) < 4) ||- (MALLOC_ALIGNMENT < (size_t)8U) ||- ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) ||- ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) ||- ((mparams.granularity & (mparams.granularity-SIZE_T_ONE)) != 0) ||- ((mparams.page_size & (mparams.page_size-SIZE_T_ONE)) != 0))- ABORT;- }- return 0;-}--/* support for mallopt */-static int change_mparam(int param_number, int value) {- size_t val = (size_t)value;- init_mparams();- switch(param_number) {- case M_TRIM_THRESHOLD:- mparams.trim_threshold = val;- return 1;- case M_GRANULARITY:- if (val >= mparams.page_size && ((val & (val-1)) == 0)) {- mparams.granularity = val;- return 1;- }- else- return 0;- case M_MMAP_THRESHOLD:- mparams.mmap_threshold = val;- return 1;- default:- return 0;- }-}--#if DEBUG-/* ------------------------- Debugging Support --------------------------- */--/* Check properties of any chunk, whether free, inuse, mmapped etc */-static void do_check_any_chunk(mstate m, mchunkptr p) {- assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));- assert(ok_address(m, p));-}--/* Check properties of top chunk */-static void do_check_top_chunk(mstate m, mchunkptr p) {- msegmentptr sp = segment_holding(m, (char*)p);- size_t sz = chunksize(p);- assert(sp != 0);- assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));- assert(ok_address(m, p));- assert(sz == m->topsize);- assert(sz > 0);- assert(sz == ((sp->base + sp->size) - (char*)p) - TOP_FOOT_SIZE);- assert(pinuse(p));- assert(!next_pinuse(p));-}--/* Check properties of (inuse) mmapped chunks */-static void do_check_mmapped_chunk(mstate m, mchunkptr p) {- size_t sz = chunksize(p);- size_t len = (sz + (p->prev_foot & ~IS_MMAPPED_BIT) + MMAP_FOOT_PAD);- assert(is_mmapped(p));- assert(use_mmap(m));- assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));- assert(ok_address(m, p));- assert(!is_small(sz));- assert((len & (mparams.page_size-SIZE_T_ONE)) == 0);- assert(chunk_plus_offset(p, sz)->head == FENCEPOST_HEAD);- assert(chunk_plus_offset(p, sz+SIZE_T_SIZE)->head == 0);-}--/* Check properties of inuse chunks */-static void do_check_inuse_chunk(mstate m, mchunkptr p) {- do_check_any_chunk(m, p);- assert(cinuse(p));- assert(next_pinuse(p));- /* If not pinuse and not mmapped, previous chunk has OK offset */- assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p);- if (is_mmapped(p))- do_check_mmapped_chunk(m, p);-}--/* Check properties of free chunks */-static void do_check_free_chunk(mstate m, mchunkptr p) {- size_t sz = p->head & ~(PINUSE_BIT|CINUSE_BIT);- mchunkptr next = chunk_plus_offset(p, sz);- do_check_any_chunk(m, p);- assert(!cinuse(p));- assert(!next_pinuse(p));- assert (!is_mmapped(p));- if (p != m->dv && p != m->top) {- if (sz >= MIN_CHUNK_SIZE) {- assert((sz & CHUNK_ALIGN_MASK) == 0);- assert(is_aligned(chunk2mem(p)));- assert(next->prev_foot == sz);- assert(pinuse(p));- assert (next == m->top || cinuse(next));- assert(p->fd->bk == p);- assert(p->bk->fd == p);- }- else /* markers are always of size SIZE_T_SIZE */- assert(sz == SIZE_T_SIZE);- }-}--/* Check properties of malloced chunks at the point they are malloced */-static void do_check_malloced_chunk(mstate m, void* mem, size_t s) {- if (mem != 0) {- mchunkptr p = mem2chunk(mem);- size_t sz = p->head & ~(PINUSE_BIT|CINUSE_BIT);- do_check_inuse_chunk(m, p);- assert((sz & CHUNK_ALIGN_MASK) == 0);- assert(sz >= MIN_CHUNK_SIZE);- assert(sz >= s);- /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */- assert(is_mmapped(p) || sz < (s + MIN_CHUNK_SIZE));- }-}--/* Check a tree and its subtrees. */-static void do_check_tree(mstate m, tchunkptr t) {- tchunkptr head = 0;- tchunkptr u = t;- bindex_t tindex = t->index;- size_t tsize = chunksize(t);- bindex_t idx;- compute_tree_index(tsize, idx);- assert(tindex == idx);- assert(tsize >= MIN_LARGE_SIZE);- assert(tsize >= minsize_for_tree_index(idx));- assert((idx == NTREEBINS-1) || (tsize < minsize_for_tree_index((idx+1))));-- do { /* traverse through chain of same-sized nodes */- do_check_any_chunk(m, ((mchunkptr)u));- assert(u->index == tindex);- assert(chunksize(u) == tsize);- assert(!cinuse(u));- assert(!next_pinuse(u));- assert(u->fd->bk == u);- assert(u->bk->fd == u);- if (u->parent == 0) {- assert(u->child[0] == 0);- assert(u->child[1] == 0);- }- else {- assert(head == 0); /* only one node on chain has parent */- head = u;- assert(u->parent != u);- assert (u->parent->child[0] == u ||- u->parent->child[1] == u ||- *((tbinptr*)(u->parent)) == u);- if (u->child[0] != 0) {- assert(u->child[0]->parent == u);- assert(u->child[0] != u);- do_check_tree(m, u->child[0]);- }- if (u->child[1] != 0) {- assert(u->child[1]->parent == u);- assert(u->child[1] != u);- do_check_tree(m, u->child[1]);- }- if (u->child[0] != 0 && u->child[1] != 0) {- assert(chunksize(u->child[0]) < chunksize(u->child[1]));- }- }- u = u->fd;- } while (u != t);- assert(head != 0);-}--/* Check all the chunks in a treebin. */-static void do_check_treebin(mstate m, bindex_t i) {- tbinptr* tb = treebin_at(m, i);- tchunkptr t = *tb;- int empty = (m->treemap & (1U << i)) == 0;- if (t == 0)- assert(empty);- if (!empty)- do_check_tree(m, t);-}--/* Check all the chunks in a smallbin. */-static void do_check_smallbin(mstate m, bindex_t i) {- sbinptr b = smallbin_at(m, i);- mchunkptr p = b->bk;- unsigned int empty = (m->smallmap & (1U << i)) == 0;- if (p == b)- assert(empty);- if (!empty) {- for (; p != b; p = p->bk) {- size_t size = chunksize(p);- mchunkptr q;- /* each chunk claims to be free */- do_check_free_chunk(m, p);- /* chunk belongs in bin */- assert(small_index(size) == i);- assert(p->bk == b || chunksize(p->bk) == chunksize(p));- /* chunk is followed by an inuse chunk */- q = next_chunk(p);- if (q->head != FENCEPOST_HEAD)- do_check_inuse_chunk(m, q);- }- }-}--/* Find x in a bin. Used in other check functions. */-static int bin_find(mstate m, mchunkptr x) {- size_t size = chunksize(x);- if (is_small(size)) {- bindex_t sidx = small_index(size);- sbinptr b = smallbin_at(m, sidx);- if (smallmap_is_marked(m, sidx)) {- mchunkptr p = b;- do {- if (p == x)- return 1;- } while ((p = p->fd) != b);- }- }- else {- bindex_t tidx;- compute_tree_index(size, tidx);- if (treemap_is_marked(m, tidx)) {- tchunkptr t = *treebin_at(m, tidx);- size_t sizebits = size << leftshift_for_tree_index(tidx);- while (t != 0 && chunksize(t) != size) {- t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1];- sizebits <<= 1;- }- if (t != 0) {- tchunkptr u = t;- do {- if (u == (tchunkptr)x)- return 1;- } while ((u = u->fd) != t);- }- }- }- return 0;-}--/* Traverse each chunk and check it; return total */-static size_t traverse_and_check(mstate m) {- size_t sum = 0;- if (is_initialized(m)) {- msegmentptr s = &m->seg;- sum += m->topsize + TOP_FOOT_SIZE;- while (s != 0) {- mchunkptr q = align_as_chunk(s->base);- mchunkptr lastq = 0;- assert(pinuse(q));- while (segment_holds(s, q) &&- q != m->top && q->head != FENCEPOST_HEAD) {- sum += chunksize(q);- if (cinuse(q)) {- assert(!bin_find(m, q));- do_check_inuse_chunk(m, q);- }- else {- assert(q == m->dv || bin_find(m, q));- assert(lastq == 0 || cinuse(lastq)); /* Not 2 consecutive free */- do_check_free_chunk(m, q);- }- lastq = q;- q = next_chunk(q);- }- s = s->next;- }- }- return sum;-}--/* Check all properties of malloc_state. */-static void do_check_malloc_state(mstate m) {- bindex_t i;- size_t total;- /* check bins */- for (i = 0; i < NSMALLBINS; ++i)- do_check_smallbin(m, i);- for (i = 0; i < NTREEBINS; ++i)- do_check_treebin(m, i);-- if (m->dvsize != 0) { /* check dv chunk */- do_check_any_chunk(m, m->dv);- assert(m->dvsize == chunksize(m->dv));- assert(m->dvsize >= MIN_CHUNK_SIZE);- assert(bin_find(m, m->dv) == 0);- }-- if (m->top != 0) { /* check top chunk */- do_check_top_chunk(m, m->top);- assert(m->topsize == chunksize(m->top));- assert(m->topsize > 0);- assert(bin_find(m, m->top) == 0);- }-- total = traverse_and_check(m);- assert(total <= m->footprint);- assert(m->footprint <= m->max_footprint);-}-#endif /* DEBUG */--/* ----------------------------- statistics ------------------------------ */--#if !NO_MALLINFO-static struct mallinfo internal_mallinfo(mstate m) {- struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };- if (!PREACTION(m)) {- check_malloc_state(m);- if (is_initialized(m)) {- size_t nfree = SIZE_T_ONE; /* top always free */- size_t mfree = m->topsize + TOP_FOOT_SIZE;- size_t sum = mfree;- msegmentptr s = &m->seg;- while (s != 0) {- mchunkptr q = align_as_chunk(s->base);- while (segment_holds(s, q) &&- q != m->top && q->head != FENCEPOST_HEAD) {- size_t sz = chunksize(q);- sum += sz;- if (!cinuse(q)) {- mfree += sz;- ++nfree;- }- q = next_chunk(q);- }- s = s->next;- }-- nm.arena = sum;- nm.ordblks = nfree;- nm.hblkhd = m->footprint - sum;- nm.usmblks = m->max_footprint;- nm.uordblks = m->footprint - mfree;- nm.fordblks = mfree;- nm.keepcost = m->topsize;- }-- POSTACTION(m);- }- return nm;-}-#endif /* !NO_MALLINFO */--static void internal_malloc_stats(mstate m) {- if (!PREACTION(m)) {- size_t maxfp = 0;- size_t fp = 0;- size_t used = 0;- check_malloc_state(m);- if (is_initialized(m)) {- msegmentptr s = &m->seg;- maxfp = m->max_footprint;- fp = m->footprint;- used = fp - (m->topsize + TOP_FOOT_SIZE);-- while (s != 0) {- mchunkptr q = align_as_chunk(s->base);- while (segment_holds(s, q) &&- q != m->top && q->head != FENCEPOST_HEAD) {- if (!cinuse(q))- used -= chunksize(q);- q = next_chunk(q);- }- s = s->next;- }- }-- fprintf(stderr, "max system bytes = %10lu\n", (unsigned long)(maxfp));- fprintf(stderr, "system bytes = %10lu\n", (unsigned long)(fp));- fprintf(stderr, "in use bytes = %10lu\n", (unsigned long)(used));-- POSTACTION(m);- }-}--/* ----------------------- Operations on smallbins ----------------------- */--/*- Various forms of linking and unlinking are defined as macros. Even- the ones for trees, which are very long but have very short typical- paths. This is ugly but reduces reliance on inlining support of- compilers.-*/--/* Link a free chunk into a smallbin */-#define insert_small_chunk(M, P, S) {\- bindex_t I = small_index(S);\- mchunkptr B = smallbin_at(M, I);\- mchunkptr F = B;\- assert(S >= MIN_CHUNK_SIZE);\- if (!smallmap_is_marked(M, I))\- mark_smallmap(M, I);\- else if (RTCHECK(ok_address(M, B->fd)))\- F = B->fd;\- else {\- CORRUPTION_ERROR_ACTION(M);\- }\- B->fd = P;\- F->bk = P;\- P->fd = F;\- P->bk = B;\-}--/* Unlink a chunk from a smallbin */-#define unlink_small_chunk(M, P, S) {\- mchunkptr F = P->fd;\- mchunkptr B = P->bk;\- bindex_t I = small_index(S);\- assert(P != B);\- assert(P != F);\- assert(chunksize(P) == small_index2size(I));\- if (F == B)\- clear_smallmap(M, I);\- else if (RTCHECK((F == smallbin_at(M,I) || ok_address(M, F)) &&\- (B == smallbin_at(M,I) || ok_address(M, B)))) {\- F->bk = B;\- B->fd = F;\- }\- else {\- CORRUPTION_ERROR_ACTION(M);\- }\-}--/* Unlink the first chunk from a smallbin */-#define unlink_first_small_chunk(M, B, P, I) {\- mchunkptr F = P->fd;\- assert(P != B);\- assert(P != F);\- assert(chunksize(P) == small_index2size(I));\- if (B == F)\- clear_smallmap(M, I);\- else if (RTCHECK(ok_address(M, F))) {\- B->fd = F;\- F->bk = B;\- }\- else {\- CORRUPTION_ERROR_ACTION(M);\- }\-}--/* Replace dv node, binning the old one */-/* Used only when dvsize known to be small */-#define replace_dv(M, P, S) {\- size_t DVS = M->dvsize;\- if (DVS != 0) {\- mchunkptr DV = M->dv;\- assert(is_small(DVS));\- insert_small_chunk(M, DV, DVS);\- }\- M->dvsize = S;\- M->dv = P;\-}--/* ------------------------- Operations on trees ------------------------- */--/* Insert chunk into tree */-#define insert_large_chunk(M, X, S) {\- tbinptr* H;\- bindex_t I;\- compute_tree_index(S, I);\- H = treebin_at(M, I);\- X->index = I;\- X->child[0] = X->child[1] = 0;\- if (!treemap_is_marked(M, I)) {\- mark_treemap(M, I);\- *H = X;\- X->parent = (tchunkptr)H;\- X->fd = X->bk = X;\- }\- else {\- tchunkptr T = *H;\- size_t K = S << leftshift_for_tree_index(I);\- for (;;) {\- if (chunksize(T) != S) {\- tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]);\- K <<= 1;\- if (*C != 0)\- T = *C;\- else if (RTCHECK(ok_address(M, C))) {\- *C = X;\- X->parent = T;\- X->fd = X->bk = X;\- break;\- }\- else {\- CORRUPTION_ERROR_ACTION(M);\- break;\- }\- }\- else {\- tchunkptr F = T->fd;\- if (RTCHECK(ok_address(M, T) && ok_address(M, F))) {\- T->fd = F->bk = X;\- X->fd = F;\- X->bk = T;\- X->parent = 0;\- break;\- }\- else {\- CORRUPTION_ERROR_ACTION(M);\- break;\- }\- }\- }\- }\-}--/*- Unlink steps:-- 1. If x is a chained node, unlink it from its same-sized fd/bk links- and choose its bk node as its replacement.- 2. If x was the last node of its size, but not a leaf node, it must- be replaced with a leaf node (not merely one with an open left or- right), to make sure that lefts and rights of descendants- correspond properly to bit masks. We use the rightmost descendant- of x. We could use any other leaf, but this is easy to locate and- tends to counteract removal of leftmosts elsewhere, and so keeps- paths shorter than minimally guaranteed. This doesn't loop much- because on average a node in a tree is near the bottom.- 3. If x is the base of a chain (i.e., has parent links) relink- x's parent and children to x's replacement (or null if none).-*/--#define unlink_large_chunk(M, X) {\- tchunkptr XP = X->parent;\- tchunkptr R;\- if (X->bk != X) {\- tchunkptr F = X->fd;\- R = X->bk;\- if (RTCHECK(ok_address(M, F))) {\- F->bk = R;\- R->fd = F;\- }\- else {\- CORRUPTION_ERROR_ACTION(M);\- }\- }\- else {\- tchunkptr* RP;\- if (((R = *(RP = &(X->child[1]))) != 0) ||\- ((R = *(RP = &(X->child[0]))) != 0)) {\- tchunkptr* CP;\- while ((*(CP = &(R->child[1])) != 0) ||\- (*(CP = &(R->child[0])) != 0)) {\- R = *(RP = CP);\- }\- if (RTCHECK(ok_address(M, RP)))\- *RP = 0;\- else {\- CORRUPTION_ERROR_ACTION(M);\- }\- }\- }\- if (XP != 0) {\- tbinptr* H = treebin_at(M, X->index);\- if (X == *H) {\- if ((*H = R) == 0) \- clear_treemap(M, X->index);\- }\- else if (RTCHECK(ok_address(M, XP))) {\- if (XP->child[0] == X) \- XP->child[0] = R;\- else \- XP->child[1] = R;\- }\- else\- CORRUPTION_ERROR_ACTION(M);\- if (R != 0) {\- if (RTCHECK(ok_address(M, R))) {\- tchunkptr C0, C1;\- R->parent = XP;\- if ((C0 = X->child[0]) != 0) {\- if (RTCHECK(ok_address(M, C0))) {\- R->child[0] = C0;\- C0->parent = R;\- }\- else\- CORRUPTION_ERROR_ACTION(M);\- }\- if ((C1 = X->child[1]) != 0) {\- if (RTCHECK(ok_address(M, C1))) {\- R->child[1] = C1;\- C1->parent = R;\- }\- else\- CORRUPTION_ERROR_ACTION(M);\- }\- }\- else\- CORRUPTION_ERROR_ACTION(M);\- }\- }\-}--/* Relays to large vs small bin operations */--#define insert_chunk(M, P, S)\- if (is_small(S)) insert_small_chunk(M, P, S)\- else { tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); }--#define unlink_chunk(M, P, S)\- if (is_small(S)) unlink_small_chunk(M, P, S)\- else { tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); }---/* Relays to internal calls to malloc/free from realloc, memalign etc */--#if ONLY_MSPACES-#define internal_malloc(m, b) mspace_malloc(m, b)-#define internal_free(m, mem) mspace_free(m,mem);-#else /* ONLY_MSPACES */-#if MSPACES-#define internal_malloc(m, b)\- (m == gm)? dlmalloc(b) : mspace_malloc(m, b)-#define internal_free(m, mem)\- if (m == gm) dlfree(mem); else mspace_free(m,mem);-#else /* MSPACES */-#define internal_malloc(m, b) dlmalloc(b)-#define internal_free(m, mem) dlfree(mem)-#endif /* MSPACES */-#endif /* ONLY_MSPACES */--/* ----------------------- Direct-mmapping chunks ----------------------- */--/*- Directly mmapped chunks are set up with an offset to the start of- the mmapped region stored in the prev_foot field of the chunk. This- allows reconstruction of the required argument to MUNMAP when freed,- and also allows adjustment of the returned chunk to meet alignment- requirements (especially in memalign). There is also enough space- allocated to hold a fake next chunk of size SIZE_T_SIZE to maintain- the PINUSE bit so frees can be checked.-*/--/* Malloc using mmap */-static void* mmap_alloc(mstate m, size_t nb) {- size_t mmsize = granularity_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK);- if (mmsize > nb) { /* Check for wrap around 0 */- char* mm = (char*)(DIRECT_MMAP(mmsize));- if (mm != CMFAIL) {- size_t offset = align_offset(chunk2mem(mm));- size_t psize = mmsize - offset - MMAP_FOOT_PAD;- mchunkptr p = (mchunkptr)(mm + offset);- p->prev_foot = offset | IS_MMAPPED_BIT;- (p)->head = (psize|CINUSE_BIT);- mark_inuse_foot(m, p, psize);- chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD;- chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0;-- if (mm < m->least_addr)- m->least_addr = mm;- if ((m->footprint += mmsize) > m->max_footprint)- m->max_footprint = m->footprint;- assert(is_aligned(chunk2mem(p)));- check_mmapped_chunk(m, p);- return chunk2mem(p);- }- }- return 0;-}--/* Realloc using mmap */-static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb) {- size_t oldsize = chunksize(oldp);- if (is_small(nb)) /* Can't shrink mmap regions below small size */- return 0;- /* Keep old chunk if big enough but not too big */- if (oldsize >= nb + SIZE_T_SIZE &&- (oldsize - nb) <= (mparams.granularity << 1))- return oldp;- else {- size_t offset = oldp->prev_foot & ~IS_MMAPPED_BIT;- size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD;- size_t newmmsize = granularity_align(nb + SIX_SIZE_T_SIZES +- CHUNK_ALIGN_MASK);- char* cp = (char*)CALL_MREMAP((char*)oldp - offset,- oldmmsize, newmmsize, 1);- if (cp != CMFAIL) {- mchunkptr newp = (mchunkptr)(cp + offset);- size_t psize = newmmsize - offset - MMAP_FOOT_PAD;- newp->head = (psize|CINUSE_BIT);- mark_inuse_foot(m, newp, psize);- chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD;- chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0;-- if (cp < m->least_addr)- m->least_addr = cp;- if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint)- m->max_footprint = m->footprint;- check_mmapped_chunk(m, newp);- return newp;- }- }- return 0;-}--/* -------------------------- mspace management -------------------------- */--/* Initialize top chunk and its size */-static void init_top(mstate m, mchunkptr p, size_t psize) {- /* Ensure alignment */- size_t offset = align_offset(chunk2mem(p));- p = (mchunkptr)((char*)p + offset);- psize -= offset;-- m->top = p;- m->topsize = psize;- p->head = psize | PINUSE_BIT;- /* set size of fake trailing chunk holding overhead space only once */- chunk_plus_offset(p, psize)->head = TOP_FOOT_SIZE;- m->trim_check = mparams.trim_threshold; /* reset on each update */-}--/* Initialize bins for a new mstate that is otherwise zeroed out */-static void init_bins(mstate m) {- /* Establish circular links for smallbins */- bindex_t i;- for (i = 0; i < NSMALLBINS; ++i) {- sbinptr bin = smallbin_at(m,i);- bin->fd = bin->bk = bin;- }-}--#if PROCEED_ON_ERROR--/* default corruption action */-static void reset_on_error(mstate m) {- int i;- ++malloc_corruption_error_count;- /* Reinitialize fields to forget about all memory */- m->smallbins = m->treebins = 0;- m->dvsize = m->topsize = 0;- m->seg.base = 0;- m->seg.size = 0;- m->seg.next = 0;- m->top = m->dv = 0;- for (i = 0; i < NTREEBINS; ++i)- *treebin_at(m, i) = 0;- init_bins(m);-}-#endif /* PROCEED_ON_ERROR */--/* Allocate chunk and prepend remainder with chunk in successor base. */-static void* prepend_alloc(mstate m, char* newbase, char* oldbase,- size_t nb) {- mchunkptr p = align_as_chunk(newbase);- mchunkptr oldfirst = align_as_chunk(oldbase);- size_t psize = (char*)oldfirst - (char*)p;- mchunkptr q = chunk_plus_offset(p, nb);- size_t qsize = psize - nb;- set_size_and_pinuse_of_inuse_chunk(m, p, nb);-- assert((char*)oldfirst > (char*)q);- assert(pinuse(oldfirst));- assert(qsize >= MIN_CHUNK_SIZE);-- /* consolidate remainder with first chunk of old base */- if (oldfirst == m->top) {- size_t tsize = m->topsize += qsize;- m->top = q;- q->head = tsize | PINUSE_BIT;- check_top_chunk(m, q);- }- else if (oldfirst == m->dv) {- size_t dsize = m->dvsize += qsize;- m->dv = q;- set_size_and_pinuse_of_free_chunk(q, dsize);- }- else {- if (!cinuse(oldfirst)) {- size_t nsize = chunksize(oldfirst);- unlink_chunk(m, oldfirst, nsize);- oldfirst = chunk_plus_offset(oldfirst, nsize);- qsize += nsize;- }- set_free_with_pinuse(q, qsize, oldfirst);- insert_chunk(m, q, qsize);- check_free_chunk(m, q);- }-- check_malloced_chunk(m, chunk2mem(p), nb);- return chunk2mem(p);-}---/* Add a segment to hold a new noncontiguous region */-static void add_segment(mstate m, char* tbase, size_t tsize, flag_t mmapped) {- /* Determine locations and sizes of segment, fenceposts, old top */- char* old_top = (char*)m->top;- msegmentptr oldsp = segment_holding(m, old_top);- char* old_end = oldsp->base + oldsp->size;- size_t ssize = pad_request(sizeof(struct malloc_segment));- char* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK);- size_t offset = align_offset(chunk2mem(rawsp));- char* asp = rawsp + offset;- char* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp;- mchunkptr sp = (mchunkptr)csp;- msegmentptr ss = (msegmentptr)(chunk2mem(sp));- mchunkptr tnext = chunk_plus_offset(sp, ssize);- mchunkptr p = tnext;- int nfences = 0;- (void)nfences; // Suppress unused variable warning-- /* reset top to new space */- init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE);-- /* Set up segment record */- assert(is_aligned(ss));- set_size_and_pinuse_of_inuse_chunk(m, sp, ssize);- *ss = m->seg; /* Push current record */- m->seg.base = tbase;- m->seg.size = tsize;- (void)set_segment_flags(&m->seg, mmapped);- m->seg.next = ss;-- /* Insert trailing fenceposts */- for (;;) {- mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE);- p->head = FENCEPOST_HEAD;- ++nfences;- if ((char*)(&(nextp->head)) < old_end)- p = nextp;- else- break;- }- assert(nfences >= 2);-- /* Insert the rest of old top into a bin as an ordinary free chunk */- if (csp != old_top) {- mchunkptr q = (mchunkptr)old_top;- size_t psize = csp - old_top;- mchunkptr tn = chunk_plus_offset(q, psize);- set_free_with_pinuse(q, psize, tn);- insert_chunk(m, q, psize);- }-- check_top_chunk(m, m->top);-}--/* -------------------------- System allocation -------------------------- */--/* Get memory from system using MORECORE or MMAP */-static void* sys_alloc(mstate m, size_t nb) {- char* tbase = CMFAIL;- size_t tsize = 0;- flag_t mmap_flag = 0;-- init_mparams();-- /* Directly map large chunks */- if (use_mmap(m) && nb >= mparams.mmap_threshold) {- void* mem = mmap_alloc(m, nb);- if (mem != 0)- return mem;- }-- /*- Try getting memory in any of three ways (in most-preferred to- least-preferred order):- 1. A call to MORECORE that can normally contiguously extend memory.- (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or- or main space is mmapped or a previous contiguous call failed)- 2. A call to MMAP new space (disabled if not HAVE_MMAP).- Note that under the default settings, if MORECORE is unable to- fulfill a request, and HAVE_MMAP is true, then mmap is- used as a noncontiguous system allocator. This is a useful backup- strategy for systems with holes in address spaces -- in this case- sbrk cannot contiguously expand the heap, but mmap may be able to- find space.- 3. A call to MORECORE that cannot usually contiguously extend memory.- (disabled if not HAVE_MORECORE)- */-- if (MORECORE_CONTIGUOUS && !use_noncontiguous(m)) {- char* br = CMFAIL;- msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (char*)m->top);- size_t asize = 0;- ACQUIRE_MORECORE_LOCK();-- if (ss == 0) { /* First time through or recovery */- char* base = (char*)CALL_MORECORE(0);- if (base != CMFAIL) {- asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE);- /* Adjust to end on a page boundary */- if (!is_page_aligned(base))- asize += (page_align((size_t)base) - (size_t)base);- /* Can't call MORECORE if size is negative when treated as signed */- if (asize < HALF_MAX_SIZE_T &&- (br = (char*)(CALL_MORECORE(asize))) == base) {- tbase = base;- tsize = asize;- }- }- }- else {- /* Subtract out existing available top space from MORECORE request. */- asize = granularity_align(nb - m->topsize + TOP_FOOT_SIZE + SIZE_T_ONE);- /* Use mem here only if it did continuously extend old space */- if (asize < HALF_MAX_SIZE_T &&- (br = (char*)(CALL_MORECORE(asize))) == ss->base+ss->size) {- tbase = br;- tsize = asize;- }- }-- if (tbase == CMFAIL) { /* Cope with partial failure */- if (br != CMFAIL) { /* Try to use/extend the space we did get */- if (asize < HALF_MAX_SIZE_T &&- asize < nb + TOP_FOOT_SIZE + SIZE_T_ONE) {- size_t esize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE - asize);- if (esize < HALF_MAX_SIZE_T) {- char* end = (char*)CALL_MORECORE(esize);- if (end != CMFAIL)- asize += esize;- else { /* Can't use; try to release */- (void)CALL_MORECORE(-asize);- br = CMFAIL;- }- }- }- }- if (br != CMFAIL) { /* Use the space we did get */- tbase = br;- tsize = asize;- }- else- disable_contiguous(m); /* Don't try contiguous path in the future */- }-- RELEASE_MORECORE_LOCK();- }-- if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */- size_t req = nb + TOP_FOOT_SIZE + SIZE_T_ONE;- size_t rsize = granularity_align(req);- if (rsize > nb) { /* Fail if wraps around zero */- char* mp = (char*)(CALL_MMAP(rsize));- if (mp != CMFAIL) {- tbase = mp;- tsize = rsize;- mmap_flag = IS_MMAPPED_BIT;- }- }- }-- if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */- size_t asize = granularity_align(nb + TOP_FOOT_SIZE + SIZE_T_ONE);- if (asize < HALF_MAX_SIZE_T) {- char* br = CMFAIL;- char* end = CMFAIL;- ACQUIRE_MORECORE_LOCK();- br = (char*)(CALL_MORECORE(asize));- end = (char*)(CALL_MORECORE(0));- RELEASE_MORECORE_LOCK();- if (br != CMFAIL && end != CMFAIL && br < end) {- size_t ssize = end - br;- if (ssize > nb + TOP_FOOT_SIZE) {- tbase = br;- tsize = ssize;- }- }- }- }-- if (tbase != CMFAIL) {-- if ((m->footprint += tsize) > m->max_footprint)- m->max_footprint = m->footprint;-- if (!is_initialized(m)) { /* first-time initialization */- m->seg.base = m->least_addr = tbase;- m->seg.size = tsize;- (void)set_segment_flags(&m->seg, mmap_flag);- m->magic = mparams.magic;- init_bins(m);- if (is_global(m)) - init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE);- else {- /* Offset top by embedded malloc_state */- mchunkptr mn = next_chunk(mem2chunk(m));- init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) -TOP_FOOT_SIZE);- }- }-- else {- /* Try to merge with an existing segment */- msegmentptr sp = &m->seg;- while (sp != 0 && tbase != sp->base + sp->size)- sp = sp->next;- if (sp != 0 &&- !is_extern_segment(sp) &&- check_segment_merge(sp, tbase, tsize) &&- (get_segment_flags(sp) & IS_MMAPPED_BIT) == mmap_flag &&- segment_holds(sp, m->top)) { /* append */- sp->size += tsize;- init_top(m, m->top, m->topsize + tsize);- }- else {- if (tbase < m->least_addr)- m->least_addr = tbase;- sp = &m->seg;- while (sp != 0 && sp->base != tbase + tsize)- sp = sp->next;- if (sp != 0 &&- !is_extern_segment(sp) &&- check_segment_merge(sp, tbase, tsize) &&- (get_segment_flags(sp) & IS_MMAPPED_BIT) == mmap_flag) {- char* oldbase = sp->base;- sp->base = tbase;- sp->size += tsize;- return prepend_alloc(m, tbase, oldbase, nb);- }- else- add_segment(m, tbase, tsize, mmap_flag);- }- }-- if (nb < m->topsize) { /* Allocate from new or extended top space */- size_t rsize = m->topsize -= nb;- mchunkptr p = m->top;- mchunkptr r = m->top = chunk_plus_offset(p, nb);- r->head = rsize | PINUSE_BIT;- set_size_and_pinuse_of_inuse_chunk(m, p, nb);- check_top_chunk(m, m->top);- check_malloced_chunk(m, chunk2mem(p), nb);- return chunk2mem(p);- }- }-- MALLOC_FAILURE_ACTION;- return 0;-}--/* ----------------------- system deallocation -------------------------- */--/* Unmap and unlink any mmapped segments that don't contain used chunks */-static size_t release_unused_segments(mstate m) {- size_t released = 0;- msegmentptr pred = &m->seg;- msegmentptr sp = pred->next;- while (sp != 0) {- char* base = sp->base;- size_t size = sp->size;- msegmentptr next = sp->next;- if (is_mmapped_segment(sp) && !is_extern_segment(sp)) {- mchunkptr p = align_as_chunk(base);- size_t psize = chunksize(p);- /* Can unmap if first chunk holds entire segment and not pinned */- if (!cinuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) {- tchunkptr tp = (tchunkptr)p;- assert(segment_holds(sp, (char*)sp));- if (p == m->dv) {- m->dv = 0;- m->dvsize = 0;- }- else {- unlink_large_chunk(m, tp);- }- if (CALL_MUNMAP(base, size) == 0) {- released += size;- m->footprint -= size;- /* unlink obsoleted record */- sp = pred;- sp->next = next;- }- else { /* back out if cannot unmap */- insert_large_chunk(m, tp, psize);- }- }- }- pred = sp;- sp = next;- }- return released;-}--static int sys_trim(mstate m, size_t pad) {- size_t released = 0;- if (pad < MAX_REQUEST && is_initialized(m)) {- pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */-- if (m->topsize > pad) {- /* Shrink top space in granularity-size units, keeping at least one */- size_t unit = mparams.granularity;- size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit -- SIZE_T_ONE) * unit;- msegmentptr sp = segment_holding(m, (char*)m->top);-- if (!is_extern_segment(sp)) {- if (is_mmapped_segment(sp)) {- if (HAVE_MMAP &&- sp->size >= extra &&- !has_segment_link(m, sp)) { /* can't shrink if pinned */- size_t newsize = sp->size - extra;- /* Prefer mremap, fall back to munmap */- if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) ||- (CALL_MUNMAP(sp->base + newsize, extra) == 0)) {- released = extra;- }- }- }- else if (HAVE_MORECORE) {- if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */- extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit;- ACQUIRE_MORECORE_LOCK();- {- /* Make sure end of memory is where we last set it. */- char* old_br = (char*)(CALL_MORECORE(0));- if (old_br == sp->base + sp->size) {- char* rel_br = (char*)(CALL_MORECORE(-extra));- char* new_br = (char*)(CALL_MORECORE(0));- if (rel_br != CMFAIL && new_br < old_br)- released = old_br - new_br;- }- }- RELEASE_MORECORE_LOCK();- }- }-- if (released != 0) {- sp->size -= released;- m->footprint -= released;- init_top(m, m->top, m->topsize - released);- check_top_chunk(m, m->top);- }- }-- /* Unmap any unused mmapped segments */- if (HAVE_MMAP) - released += release_unused_segments(m);-- /* On failure, disable autotrim to avoid repeated failed future calls */- if (released == 0)- m->trim_check = MAX_SIZE_T;- }-- return (released != 0)? 1 : 0;-}--/* ---------------------------- malloc support --------------------------- */--/* allocate a large request from the best fitting chunk in a treebin */-static void* tmalloc_large(mstate m, size_t nb) {- tchunkptr v = 0;- size_t rsize = -nb; /* Unsigned negation */- tchunkptr t;- bindex_t idx;- compute_tree_index(nb, idx);-- if ((t = *treebin_at(m, idx)) != 0) {- /* Traverse tree for this bin looking for node with size == nb */- size_t sizebits = nb << leftshift_for_tree_index(idx);- tchunkptr rst = 0; /* The deepest untaken right subtree */- for (;;) {- tchunkptr rt;- size_t trem = chunksize(t) - nb;- if (trem < rsize) {- v = t;- if ((rsize = trem) == 0)- break;- }- rt = t->child[1];- t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1];- if (rt != 0 && rt != t)- rst = rt;- if (t == 0) {- t = rst; /* set t to least subtree holding sizes > nb */- break;- }- sizebits <<= 1;- }- }-- if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */- binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap;- if (leftbits != 0) {- bindex_t i;- binmap_t leastbit = least_bit(leftbits);- compute_bit2idx(leastbit, i);- t = *treebin_at(m, i);- }- }-- while (t != 0) { /* find smallest of tree or subtree */- size_t trem = chunksize(t) - nb;- if (trem < rsize) {- rsize = trem;- v = t;- }- t = leftmost_child(t);- }-- /* If dv is a better fit, return 0 so malloc will use it */- if (v != 0 && rsize < (size_t)(m->dvsize - nb)) {- if (RTCHECK(ok_address(m, v))) { /* split */- mchunkptr r = chunk_plus_offset(v, nb);- assert(chunksize(v) == rsize + nb);- if (RTCHECK(ok_next(v, r))) {- unlink_large_chunk(m, v);- if (rsize < MIN_CHUNK_SIZE)- set_inuse_and_pinuse(m, v, (rsize + nb));- else {- set_size_and_pinuse_of_inuse_chunk(m, v, nb);- set_size_and_pinuse_of_free_chunk(r, rsize);- insert_chunk(m, r, rsize);- }- return chunk2mem(v);- }- }- CORRUPTION_ERROR_ACTION(m);- }- return 0;-}--/* allocate a small request from the best fitting chunk in a treebin */-static void* tmalloc_small(mstate m, size_t nb) {- tchunkptr t, v;- size_t rsize;- bindex_t i;- binmap_t leastbit = least_bit(m->treemap);- compute_bit2idx(leastbit, i);-- v = t = *treebin_at(m, i);- rsize = chunksize(t) - nb;-- while ((t = leftmost_child(t)) != 0) {- size_t trem = chunksize(t) - nb;- if (trem < rsize) {- rsize = trem;- v = t;- }- }-- if (RTCHECK(ok_address(m, v))) {- mchunkptr r = chunk_plus_offset(v, nb);- assert(chunksize(v) == rsize + nb);- if (RTCHECK(ok_next(v, r))) {- unlink_large_chunk(m, v);- if (rsize < MIN_CHUNK_SIZE)- set_inuse_and_pinuse(m, v, (rsize + nb));- else {- set_size_and_pinuse_of_inuse_chunk(m, v, nb);- set_size_and_pinuse_of_free_chunk(r, rsize);- replace_dv(m, r, rsize);- }- return chunk2mem(v);- }- }-- CORRUPTION_ERROR_ACTION(m);- return 0;-}--/* --------------------------- realloc support --------------------------- */--static void* internal_realloc(mstate m, void* oldmem, size_t bytes) {- if (bytes >= MAX_REQUEST) {- MALLOC_FAILURE_ACTION;- return 0;- }- if (!PREACTION(m)) {- mchunkptr oldp = mem2chunk(oldmem);- size_t oldsize = chunksize(oldp);- mchunkptr next = chunk_plus_offset(oldp, oldsize);- mchunkptr newp = 0;- void* extra = 0;-- /* Try to either shrink or extend into top. Else malloc-copy-free */-- if (RTCHECK(ok_address(m, oldp) && ok_cinuse(oldp) &&- ok_next(oldp, next) && ok_pinuse(next))) {- size_t nb = request2size(bytes);- if (is_mmapped(oldp))- newp = mmap_resize(m, oldp, nb);- else if (oldsize >= nb) { /* already big enough */- size_t rsize = oldsize - nb;- newp = oldp;- if (rsize >= MIN_CHUNK_SIZE) {- mchunkptr remainder = chunk_plus_offset(newp, nb);- set_inuse(m, newp, nb);- set_inuse(m, remainder, rsize);- extra = chunk2mem(remainder);- }- }- else if (next == m->top && oldsize + m->topsize > nb) {- /* Expand into top */- size_t newsize = oldsize + m->topsize;- size_t newtopsize = newsize - nb;- mchunkptr newtop = chunk_plus_offset(oldp, nb);- set_inuse(m, oldp, nb);- newtop->head = newtopsize |PINUSE_BIT;- m->top = newtop;- m->topsize = newtopsize;- newp = oldp;- }- }- else {- USAGE_ERROR_ACTION(m, oldmem);- POSTACTION(m);- return 0;- }-- POSTACTION(m);-- if (newp != 0) {- if (extra != 0) {- internal_free(m, extra);- }- check_inuse_chunk(m, newp);- return chunk2mem(newp);- }- else {- void* newmem = internal_malloc(m, bytes);- if (newmem != 0) {- size_t oc = oldsize - overhead_for(oldp);- memcpy(newmem, oldmem, (oc < bytes)? oc : bytes);- internal_free(m, oldmem);- }- return newmem;- }- }- return 0;-}--/* --------------------------- memalign support -------------------------- */--static void* internal_memalign(mstate m, size_t alignment, size_t bytes) {- if (alignment <= MALLOC_ALIGNMENT) /* Can just use malloc */- return internal_malloc(m, bytes);- if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */- alignment = MIN_CHUNK_SIZE;- if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */- size_t a = MALLOC_ALIGNMENT << 1;- while (a < alignment) a <<= 1;- alignment = a;- }- - if (bytes >= MAX_REQUEST - alignment) {- if (m != 0) { /* Test isn't needed but avoids compiler warning */- MALLOC_FAILURE_ACTION;- }- }- else {- size_t nb = request2size(bytes);- size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD;- char* mem = (char*)internal_malloc(m, req);- if (mem != 0) {- void* leader = 0;- void* trailer = 0;- mchunkptr p = mem2chunk(mem);-- if (PREACTION(m)) return 0;- if ((((size_t)(mem)) % alignment) != 0) { /* misaligned */- /*- Find an aligned spot inside chunk. Since we need to give- back leading space in a chunk of at least MIN_CHUNK_SIZE, if- the first calculation places us at a spot with less than- MIN_CHUNK_SIZE leader, we can move to the next aligned spot.- We've allocated enough total room so that this is always- possible.- */- char* br = (char*)mem2chunk((size_t)(((size_t)(mem +- alignment -- SIZE_T_ONE)) &- -alignment));- char* pos = ((size_t)(br - (char*)(p)) >= MIN_CHUNK_SIZE)?- br : br+alignment;- mchunkptr newp = (mchunkptr)pos;- size_t leadsize = pos - (char*)(p);- size_t newsize = chunksize(p) - leadsize;-- if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */- newp->prev_foot = p->prev_foot + leadsize;- newp->head = (newsize|CINUSE_BIT);- }- else { /* Otherwise, give back leader, use the rest */- set_inuse(m, newp, newsize);- set_inuse(m, p, leadsize);- leader = chunk2mem(p);- }- p = newp;- }-- /* Give back spare room at the end */- if (!is_mmapped(p)) {- size_t size = chunksize(p);- if (size > nb + MIN_CHUNK_SIZE) {- size_t remainder_size = size - nb;- mchunkptr remainder = chunk_plus_offset(p, nb);- set_inuse(m, p, nb);- set_inuse(m, remainder, remainder_size);- trailer = chunk2mem(remainder);- }- }-- assert (chunksize(p) >= nb);- assert((((size_t)(chunk2mem(p))) % alignment) == 0);- check_inuse_chunk(m, p);- POSTACTION(m);- if (leader != 0) {- internal_free(m, leader);- }- if (trailer != 0) {- internal_free(m, trailer);- }- return chunk2mem(p);- }- }- return 0;-}--/* ------------------------ comalloc/coalloc support --------------------- */--static void** ialloc(mstate m,- size_t n_elements,- size_t* sizes,- int opts,- void* chunks[]) {- /*- This provides common support for independent_X routines, handling- all of the combinations that can result.-- The opts arg has:- bit 0 set if all elements are same size (using sizes[0])- bit 1 set if elements should be zeroed- */-- size_t element_size; /* chunksize of each element, if all same */- size_t contents_size; /* total size of elements */- size_t array_size; /* request size of pointer array */- void* mem; /* malloced aggregate space */- mchunkptr p; /* corresponding chunk */- size_t remainder_size; /* remaining bytes while splitting */- void** marray; /* either "chunks" or malloced ptr array */- mchunkptr array_chunk; /* chunk for malloced ptr array */- flag_t was_enabled; /* to disable mmap */- size_t size;- size_t i;-- /* compute array length, if needed */- if (chunks != 0) {- if (n_elements == 0)- return chunks; /* nothing to do */- marray = chunks;- array_size = 0;- }- else {- /* if empty req, must still return chunk representing empty array */- if (n_elements == 0)- return (void**)internal_malloc(m, 0);- marray = 0;- array_size = request2size(n_elements * (sizeof(void*)));- }-- /* compute total element size */- if (opts & 0x1) { /* all-same-size */- element_size = request2size(*sizes);- contents_size = n_elements * element_size;- }- else { /* add up all the sizes */- element_size = 0;- contents_size = 0;- for (i = 0; i != n_elements; ++i)- contents_size += request2size(sizes[i]);- }-- size = contents_size + array_size;-- /*- Allocate the aggregate chunk. First disable direct-mmapping so- malloc won't use it, since we would not be able to later- free/realloc space internal to a segregated mmap region.- */- was_enabled = use_mmap(m);- disable_mmap(m);- mem = internal_malloc(m, size - CHUNK_OVERHEAD);- if (was_enabled)- enable_mmap(m);- if (mem == 0)- return 0;-- if (PREACTION(m)) return 0;- p = mem2chunk(mem);- remainder_size = chunksize(p);-- assert(!is_mmapped(p));-- if (opts & 0x2) { /* optionally clear the elements */- memset((size_t*)mem, 0, remainder_size - SIZE_T_SIZE - array_size);- }-- /* If not provided, allocate the pointer array as final part of chunk */- if (marray == 0) {- size_t array_chunk_size;- array_chunk = chunk_plus_offset(p, contents_size);- array_chunk_size = remainder_size - contents_size;- marray = (void**) (chunk2mem(array_chunk));- set_size_and_pinuse_of_inuse_chunk(m, array_chunk, array_chunk_size);- remainder_size = contents_size;- }-- /* split out elements */- for (i = 0; ; ++i) {- marray[i] = chunk2mem(p);- if (i != n_elements-1) {- if (element_size != 0)- size = element_size;- else- size = request2size(sizes[i]);- remainder_size -= size;- set_size_and_pinuse_of_inuse_chunk(m, p, size);- p = chunk_plus_offset(p, size);- }- else { /* the final element absorbs any overallocation slop */- set_size_and_pinuse_of_inuse_chunk(m, p, remainder_size);- break;- }- }--#if DEBUG- if (marray != chunks) {- /* final element must have exactly exhausted chunk */- if (element_size != 0) {- assert(remainder_size == element_size);- }- else {- assert(remainder_size == request2size(sizes[i]));- }- check_inuse_chunk(m, mem2chunk(marray));- }- for (i = 0; i != n_elements; ++i)- check_inuse_chunk(m, mem2chunk(marray[i]));--#endif /* DEBUG */-- POSTACTION(m);- return marray;-}---/* -------------------------- public routines ---------------------------- */--#if !ONLY_MSPACES--void* dlmalloc(size_t bytes) {- /*- Basic algorithm:- If a small request (< 256 bytes minus per-chunk overhead):- 1. If one exists, use a remainderless chunk in associated smallbin.- (Remainderless means that there are too few excess bytes to- represent as a chunk.)- 2. If it is big enough, use the dv chunk, which is normally the- chunk adjacent to the one used for the most recent small request.- 3. If one exists, split the smallest available chunk in a bin,- saving remainder in dv.- 4. If it is big enough, use the top chunk.- 5. If available, get memory from system and use it- Otherwise, for a large request:- 1. Find the smallest available binned chunk that fits, and use it- if it is better fitting than dv chunk, splitting if necessary.- 2. If better fitting than any binned chunk, use the dv chunk.- 3. If it is big enough, use the top chunk.- 4. If request size >= mmap threshold, try to directly mmap this chunk.- 5. If available, get memory from system and use it-- The ugly goto's here ensure that postaction occurs along all paths.- */-- if (!PREACTION(gm)) {- void* mem;- size_t nb;- if (bytes <= MAX_SMALL_REQUEST) {- bindex_t idx;- binmap_t smallbits;- nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes);- idx = small_index(nb);- smallbits = gm->smallmap >> idx;-- if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */- mchunkptr b, p;- idx += ~smallbits & 1; /* Uses next bin if idx empty */- b = smallbin_at(gm, idx);- p = b->fd;- assert(chunksize(p) == small_index2size(idx));- unlink_first_small_chunk(gm, b, p, idx);- set_inuse_and_pinuse(gm, p, small_index2size(idx));- mem = chunk2mem(p);- check_malloced_chunk(gm, mem, nb);- goto postaction;- }-- else if (nb > gm->dvsize) {- if (smallbits != 0) { /* Use chunk in next nonempty smallbin */- mchunkptr b, p, r;- size_t rsize;- bindex_t i;- binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx));- binmap_t leastbit = least_bit(leftbits);- compute_bit2idx(leastbit, i);- b = smallbin_at(gm, i);- p = b->fd;- assert(chunksize(p) == small_index2size(i));- unlink_first_small_chunk(gm, b, p, i);- rsize = small_index2size(i) - nb;- /* Fit here cannot be remainderless if 4byte sizes */- if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE)- set_inuse_and_pinuse(gm, p, small_index2size(i));- else {- set_size_and_pinuse_of_inuse_chunk(gm, p, nb);- r = chunk_plus_offset(p, nb);- set_size_and_pinuse_of_free_chunk(r, rsize);- replace_dv(gm, r, rsize);- }- mem = chunk2mem(p);- check_malloced_chunk(gm, mem, nb);- goto postaction;- }-- else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) {- check_malloced_chunk(gm, mem, nb);- goto postaction;- }- }- }- else if (bytes >= MAX_REQUEST)- nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */- else {- nb = pad_request(bytes);- if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) {- check_malloced_chunk(gm, mem, nb);- goto postaction;- }- }-- if (nb <= gm->dvsize) {- size_t rsize = gm->dvsize - nb;- mchunkptr p = gm->dv;- if (rsize >= MIN_CHUNK_SIZE) { /* split dv */- mchunkptr r = gm->dv = chunk_plus_offset(p, nb);- gm->dvsize = rsize;- set_size_and_pinuse_of_free_chunk(r, rsize);- set_size_and_pinuse_of_inuse_chunk(gm, p, nb);- }- else { /* exhaust dv */- size_t dvs = gm->dvsize;- gm->dvsize = 0;- gm->dv = 0;- set_inuse_and_pinuse(gm, p, dvs);- }- mem = chunk2mem(p);- check_malloced_chunk(gm, mem, nb);- goto postaction;- }-- else if (nb < gm->topsize) { /* Split top */- size_t rsize = gm->topsize -= nb;- mchunkptr p = gm->top;- mchunkptr r = gm->top = chunk_plus_offset(p, nb);- r->head = rsize | PINUSE_BIT;- set_size_and_pinuse_of_inuse_chunk(gm, p, nb);- mem = chunk2mem(p);- check_top_chunk(gm, gm->top);- check_malloced_chunk(gm, mem, nb);- goto postaction;- }-- mem = sys_alloc(gm, nb);-- postaction:- POSTACTION(gm);- return mem;- }-- return 0;-}--void dlfree(void* mem) {- /*- Consolidate freed chunks with preceding or succeeding bordering- free chunks, if they exist, and then place in a bin. Intermixed- with special cases for top, dv, mmapped chunks, and usage errors.- */-- if (mem != 0) {- mchunkptr p = mem2chunk(mem);-#if FOOTERS- mstate fm = get_mstate_for(p);- if (!ok_magic(fm)) {- USAGE_ERROR_ACTION(fm, p);- return;- }-#else /* FOOTERS */-#define fm gm-#endif /* FOOTERS */- if (!PREACTION(fm)) {- check_inuse_chunk(fm, p);- if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) {- size_t psize = chunksize(p);- mchunkptr next = chunk_plus_offset(p, psize);- if (!pinuse(p)) {- size_t prevsize = p->prev_foot;- if ((prevsize & IS_MMAPPED_BIT) != 0) {- prevsize &= ~IS_MMAPPED_BIT;- psize += prevsize + MMAP_FOOT_PAD;- if (CALL_MUNMAP((char*)p - prevsize, psize) == 0)- fm->footprint -= psize;- goto postaction;- }- else {- mchunkptr prev = chunk_minus_offset(p, prevsize);- psize += prevsize;- p = prev;- if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */- if (p != fm->dv) {- unlink_chunk(fm, p, prevsize);- }- else if ((next->head & INUSE_BITS) == INUSE_BITS) {- fm->dvsize = psize;- set_free_with_pinuse(p, psize, next);- goto postaction;- }- }- else- goto erroraction;- }- }-- if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) {- if (!cinuse(next)) { /* consolidate forward */- if (next == fm->top) {- size_t tsize = fm->topsize += psize;- fm->top = p;- p->head = tsize | PINUSE_BIT;- if (p == fm->dv) {- fm->dv = 0;- fm->dvsize = 0;- }- if (should_trim(fm, tsize))- sys_trim(fm, 0);- goto postaction;- }- else if (next == fm->dv) {- size_t dsize = fm->dvsize += psize;- fm->dv = p;- set_size_and_pinuse_of_free_chunk(p, dsize);- goto postaction;- }- else {- size_t nsize = chunksize(next);- psize += nsize;- unlink_chunk(fm, next, nsize);- set_size_and_pinuse_of_free_chunk(p, psize);- if (p == fm->dv) {- fm->dvsize = psize;- goto postaction;- }- }- }- else- set_free_with_pinuse(p, psize, next);- insert_chunk(fm, p, psize);- check_free_chunk(fm, p);- goto postaction;- }- }- erroraction:- USAGE_ERROR_ACTION(fm, p);- postaction:- POSTACTION(fm);- }- }-#if !FOOTERS-#undef fm-#endif /* FOOTERS */-}--void* dlcalloc(size_t n_elements, size_t elem_size) {- void* mem;- size_t req = 0;- if (n_elements != 0) {- req = n_elements * elem_size;- if (((n_elements | elem_size) & ~(size_t)0xffff) &&- (req / n_elements != elem_size))- req = MAX_SIZE_T; /* force downstream failure on overflow */- }- mem = dlmalloc(req);- if (mem != 0 && calloc_must_clear(mem2chunk(mem)))- memset(mem, 0, req);- return mem;-}--void* dlrealloc(void* oldmem, size_t bytes) {- if (oldmem == 0)- return dlmalloc(bytes);-#ifdef REALLOC_ZERO_BYTES_FREES- if (bytes == 0) {- dlfree(oldmem);- return 0;- }-#endif /* REALLOC_ZERO_BYTES_FREES */- else {-#if ! FOOTERS- mstate m = gm;-#else /* FOOTERS */- mstate m = get_mstate_for(mem2chunk(oldmem));- if (!ok_magic(m)) {- USAGE_ERROR_ACTION(m, oldmem);- return 0;- }-#endif /* FOOTERS */- return internal_realloc(m, oldmem, bytes);- }-}--void* dlmemalign(size_t alignment, size_t bytes) {- return internal_memalign(gm, alignment, bytes);-}--void** dlindependent_calloc(size_t n_elements, size_t elem_size,- void* chunks[]) {- size_t sz = elem_size; /* serves as 1-element array */- return ialloc(gm, n_elements, &sz, 3, chunks);-}--void** dlindependent_comalloc(size_t n_elements, size_t sizes[],- void* chunks[]) {- return ialloc(gm, n_elements, sizes, 0, chunks);-}--void* dlvalloc(size_t bytes) {- size_t pagesz;- init_mparams();- pagesz = mparams.page_size;- return dlmemalign(pagesz, bytes);-}--void* dlpvalloc(size_t bytes) {- size_t pagesz;- init_mparams();- pagesz = mparams.page_size;- return dlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE));-}--int dlmalloc_trim(size_t pad) {- int result = 0;- if (!PREACTION(gm)) {- result = sys_trim(gm, pad);- POSTACTION(gm);- }- return result;-}--size_t dlmalloc_footprint(void) {- return gm->footprint;-}--size_t dlmalloc_max_footprint(void) {- return gm->max_footprint;-}--#if !NO_MALLINFO-struct mallinfo dlmallinfo(void) {- return internal_mallinfo(gm);-}-#endif /* NO_MALLINFO */--void dlmalloc_stats(void) {- internal_malloc_stats(gm);-}--size_t dlmalloc_usable_size(void* mem) {- if (mem != 0) {- mchunkptr p = mem2chunk(mem);- if (cinuse(p))- return chunksize(p) - overhead_for(p);- }- return 0;-}--int dlmallopt(int param_number, int value) {- return change_mparam(param_number, value);-}--#endif /* !ONLY_MSPACES */--/* ----------------------------- user mspaces ---------------------------- */--#if MSPACES--static mstate init_user_mstate(char* tbase, size_t tsize) {- size_t msize = pad_request(sizeof(struct malloc_state));- mchunkptr mn;- mchunkptr msp = align_as_chunk(tbase);- mstate m = (mstate)(chunk2mem(msp));- memset(m, 0, msize);- INITIAL_LOCK(&m->mutex);- msp->head = (msize|PINUSE_BIT|CINUSE_BIT);- m->seg.base = m->least_addr = tbase;- m->seg.size = m->footprint = m->max_footprint = tsize;- m->magic = mparams.magic;- m->mflags = mparams.default_mflags;- disable_contiguous(m);- init_bins(m);- mn = next_chunk(mem2chunk(m));- init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) - TOP_FOOT_SIZE);- check_top_chunk(m, m->top);- return m;-}--mspace create_mspace(size_t capacity, int locked) {- mstate m = 0;- size_t msize = pad_request(sizeof(struct malloc_state));- init_mparams(); /* Ensure pagesize etc initialized */-- if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) {- size_t rs = ((capacity == 0)? mparams.granularity :- (capacity + TOP_FOOT_SIZE + msize));- size_t tsize = granularity_align(rs);- char* tbase = (char*)(CALL_MMAP(tsize));- if (tbase != CMFAIL) {- m = init_user_mstate(tbase, tsize);- set_segment_flags(&m->seg, IS_MMAPPED_BIT);- set_lock(m, locked);- }- }- return (mspace)m;-}--mspace create_mspace_with_base(void* base, size_t capacity, int locked) {- mstate m = 0;- size_t msize = pad_request(sizeof(struct malloc_state));- init_mparams(); /* Ensure pagesize etc initialized */-- if (capacity > msize + TOP_FOOT_SIZE &&- capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) {- m = init_user_mstate((char*)base, capacity);- set_segment_flags(&m->seg, EXTERN_BIT);- set_lock(m, locked);- }- return (mspace)m;-}--size_t destroy_mspace(mspace msp) {- size_t freed = 0;- mstate ms = (mstate)msp;- if (ok_magic(ms)) {- msegmentptr sp = &ms->seg;- while (sp != 0) {- char* base = sp->base;- size_t size = sp->size;- flag_t flag = get_segment_flags(sp);- sp = sp->next;- if ((flag & IS_MMAPPED_BIT) && !(flag & EXTERN_BIT) &&- CALL_MUNMAP(base, size) == 0)- freed += size;- }- }- else {- USAGE_ERROR_ACTION(ms,ms);- }- return freed;-}--/*- mspace versions of routines are near-clones of the global- versions. This is not so nice but better than the alternatives.-*/---void* mspace_malloc(mspace msp, size_t bytes) {- mstate ms = (mstate)msp;- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- return 0;- }- if (!PREACTION(ms)) {- void* mem;- size_t nb;- if (bytes <= MAX_SMALL_REQUEST) {- bindex_t idx;- binmap_t smallbits;- nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes);- idx = small_index(nb);- smallbits = ms->smallmap >> idx;-- if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */- mchunkptr b, p;- idx += ~smallbits & 1; /* Uses next bin if idx empty */- b = smallbin_at(ms, idx);- p = b->fd;- assert(chunksize(p) == small_index2size(idx));- unlink_first_small_chunk(ms, b, p, idx);- set_inuse_and_pinuse(ms, p, small_index2size(idx));- mem = chunk2mem(p);- check_malloced_chunk(ms, mem, nb);- goto postaction;- }-- else if (nb > ms->dvsize) {- if (smallbits != 0) { /* Use chunk in next nonempty smallbin */- mchunkptr b, p, r;- size_t rsize;- bindex_t i;- binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx));- binmap_t leastbit = least_bit(leftbits);- compute_bit2idx(leastbit, i);- b = smallbin_at(ms, i);- p = b->fd;- assert(chunksize(p) == small_index2size(i));- unlink_first_small_chunk(ms, b, p, i);- rsize = small_index2size(i) - nb;- /* Fit here cannot be remainderless if 4byte sizes */- if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE)- set_inuse_and_pinuse(ms, p, small_index2size(i));- else {- set_size_and_pinuse_of_inuse_chunk(ms, p, nb);- r = chunk_plus_offset(p, nb);- set_size_and_pinuse_of_free_chunk(r, rsize);- replace_dv(ms, r, rsize);- }- mem = chunk2mem(p);- check_malloced_chunk(ms, mem, nb);- goto postaction;- }-- else if (ms->treemap != 0 && (mem = tmalloc_small(ms, nb)) != 0) {- check_malloced_chunk(ms, mem, nb);- goto postaction;- }- }- }- else if (bytes >= MAX_REQUEST)- nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */- else {- nb = pad_request(bytes);- if (ms->treemap != 0 && (mem = tmalloc_large(ms, nb)) != 0) {- check_malloced_chunk(ms, mem, nb);- goto postaction;- }- }-- if (nb <= ms->dvsize) {- size_t rsize = ms->dvsize - nb;- mchunkptr p = ms->dv;- if (rsize >= MIN_CHUNK_SIZE) { /* split dv */- mchunkptr r = ms->dv = chunk_plus_offset(p, nb);- ms->dvsize = rsize;- set_size_and_pinuse_of_free_chunk(r, rsize);- set_size_and_pinuse_of_inuse_chunk(ms, p, nb);- }- else { /* exhaust dv */- size_t dvs = ms->dvsize;- ms->dvsize = 0;- ms->dv = 0;- set_inuse_and_pinuse(ms, p, dvs);- }- mem = chunk2mem(p);- check_malloced_chunk(ms, mem, nb);- goto postaction;- }-- else if (nb < ms->topsize) { /* Split top */- size_t rsize = ms->topsize -= nb;- mchunkptr p = ms->top;- mchunkptr r = ms->top = chunk_plus_offset(p, nb);- r->head = rsize | PINUSE_BIT;- set_size_and_pinuse_of_inuse_chunk(ms, p, nb);- mem = chunk2mem(p);- check_top_chunk(ms, ms->top);- check_malloced_chunk(ms, mem, nb);- goto postaction;- }-- mem = sys_alloc(ms, nb);-- postaction:- POSTACTION(ms);- return mem;- }-- return 0;-}--void mspace_free(mspace msp, void* mem) {- if (mem != 0) {- mchunkptr p = mem2chunk(mem);-#if FOOTERS- mstate fm = get_mstate_for(p);-#else /* FOOTERS */- mstate fm = (mstate)msp;-#endif /* FOOTERS */- if (!ok_magic(fm)) {- USAGE_ERROR_ACTION(fm, p);- return;- }- if (!PREACTION(fm)) {- check_inuse_chunk(fm, p);- if (RTCHECK(ok_address(fm, p) && ok_cinuse(p))) {- size_t psize = chunksize(p);- mchunkptr next = chunk_plus_offset(p, psize);- if (!pinuse(p)) {- size_t prevsize = p->prev_foot;- if ((prevsize & IS_MMAPPED_BIT) != 0) {- prevsize &= ~IS_MMAPPED_BIT;- psize += prevsize + MMAP_FOOT_PAD;- if (CALL_MUNMAP((char*)p - prevsize, psize) == 0)- fm->footprint -= psize;- goto postaction;- }- else {- mchunkptr prev = chunk_minus_offset(p, prevsize);- psize += prevsize;- p = prev;- if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */- if (p != fm->dv) {- unlink_chunk(fm, p, prevsize);- }- else if ((next->head & INUSE_BITS) == INUSE_BITS) {- fm->dvsize = psize;- set_free_with_pinuse(p, psize, next);- goto postaction;- }- }- else- goto erroraction;- }- }-- if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) {- if (!cinuse(next)) { /* consolidate forward */- if (next == fm->top) {- size_t tsize = fm->topsize += psize;- fm->top = p;- p->head = tsize | PINUSE_BIT;- if (p == fm->dv) {- fm->dv = 0;- fm->dvsize = 0;- }- if (should_trim(fm, tsize))- sys_trim(fm, 0);- goto postaction;- }- else if (next == fm->dv) {- size_t dsize = fm->dvsize += psize;- fm->dv = p;- set_size_and_pinuse_of_free_chunk(p, dsize);- goto postaction;- }- else {- size_t nsize = chunksize(next);- psize += nsize;- unlink_chunk(fm, next, nsize);- set_size_and_pinuse_of_free_chunk(p, psize);- if (p == fm->dv) {- fm->dvsize = psize;- goto postaction;- }- }- }- else- set_free_with_pinuse(p, psize, next);- insert_chunk(fm, p, psize);- check_free_chunk(fm, p);- goto postaction;- }- }- erroraction:- USAGE_ERROR_ACTION(fm, p);- postaction:- POSTACTION(fm);- }- }-}--void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size) {- void* mem;- size_t req = 0;- mstate ms = (mstate)msp;- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- return 0;- }- if (n_elements != 0) {- req = n_elements * elem_size;- if (((n_elements | elem_size) & ~(size_t)0xffff) &&- (req / n_elements != elem_size))- req = MAX_SIZE_T; /* force downstream failure on overflow */- }- mem = internal_malloc(ms, req);- if (mem != 0 && calloc_must_clear(mem2chunk(mem)))- memset(mem, 0, req);- return mem;-}--void* mspace_realloc(mspace msp, void* oldmem, size_t bytes) {- if (oldmem == 0)- return mspace_malloc(msp, bytes);-#ifdef REALLOC_ZERO_BYTES_FREES- if (bytes == 0) {- mspace_free(msp, oldmem);- return 0;- }-#endif /* REALLOC_ZERO_BYTES_FREES */- else {-#if FOOTERS- mchunkptr p = mem2chunk(oldmem);- mstate ms = get_mstate_for(p);-#else /* FOOTERS */- mstate ms = (mstate)msp;-#endif /* FOOTERS */- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- return 0;- }- return internal_realloc(ms, oldmem, bytes);- }-}--void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) {- mstate ms = (mstate)msp;- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- return 0;- }- return internal_memalign(ms, alignment, bytes);-}--void** mspace_independent_calloc(mspace msp, size_t n_elements,- size_t elem_size, void* chunks[]) {- size_t sz = elem_size; /* serves as 1-element array */- mstate ms = (mstate)msp;- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- return 0;- }- return ialloc(ms, n_elements, &sz, 3, chunks);-}--void** mspace_independent_comalloc(mspace msp, size_t n_elements,- size_t sizes[], void* chunks[]) {- mstate ms = (mstate)msp;- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- return 0;- }- return ialloc(ms, n_elements, sizes, 0, chunks);-}--int mspace_trim(mspace msp, size_t pad) {- int result = 0;- mstate ms = (mstate)msp;- if (ok_magic(ms)) {- if (!PREACTION(ms)) {- result = sys_trim(ms, pad);- POSTACTION(ms);- }- }- else {- USAGE_ERROR_ACTION(ms,ms);- }- return result;-}--void mspace_malloc_stats(mspace msp) {- mstate ms = (mstate)msp;- if (ok_magic(ms)) {- internal_malloc_stats(ms);- }- else {- USAGE_ERROR_ACTION(ms,ms);- }-}--size_t mspace_footprint(mspace msp) {- size_t result;- mstate ms = (mstate)msp;- if (ok_magic(ms)) {- result = ms->footprint;- }- USAGE_ERROR_ACTION(ms,ms);- return result;-}---size_t mspace_max_footprint(mspace msp) {- size_t result;- mstate ms = (mstate)msp;- if (ok_magic(ms)) {- result = ms->max_footprint;- }- USAGE_ERROR_ACTION(ms,ms);- return result;-}---#if !NO_MALLINFO-struct mallinfo mspace_mallinfo(mspace msp) {- mstate ms = (mstate)msp;- if (!ok_magic(ms)) {- USAGE_ERROR_ACTION(ms,ms);- }- return internal_mallinfo(ms);-}-#endif /* NO_MALLINFO */--int mspace_mallopt(int param_number, int value) {- return change_mparam(param_number, value);-}--#endif /* MSPACES */--/* -------------------- Alternative MORECORE functions ------------------- */--/*- Guidelines for creating a custom version of MORECORE:-- * For best performance, MORECORE should allocate in multiples of pagesize.- * MORECORE may allocate more memory than requested. (Or even less,- but this will usually result in a malloc failure.)- * MORECORE must not allocate memory when given argument zero, but- instead return one past the end address of memory from previous- nonzero call.- * For best performance, consecutive calls to MORECORE with positive- arguments should return increasing addresses, indicating that- space has been contiguously extended.- * Even though consecutive calls to MORECORE need not return contiguous- addresses, it must be OK for malloc'ed chunks to span multiple- regions in those cases where they do happen to be contiguous.- * MORECORE need not handle negative arguments -- it may instead- just return MFAIL when given negative arguments.- Negative arguments are always multiples of pagesize. MORECORE- must not misinterpret negative args as large positive unsigned- args. You can suppress all such calls from even occurring by defining- MORECORE_CANNOT_TRIM,-- As an example alternative MORECORE, here is a custom allocator- kindly contributed for pre-OSX macOS. It uses virtually but not- necessarily physically contiguous non-paged memory (locked in,- present and won't get swapped out). You can use it by uncommenting- this section, adding some #includes, and setting up the appropriate- defines above:-- #define MORECORE osMoreCore-- There is also a shutdown routine that should somehow be called for- cleanup upon program exit.-- #define MAX_POOL_ENTRIES 100- #define MINIMUM_MORECORE_SIZE (64 * 1024U)- static int next_os_pool;- void *our_os_pools[MAX_POOL_ENTRIES];-- void *osMoreCore(int size)- {- void *ptr = 0;- static void *sbrk_top = 0;-- if (size > 0)- {- if (size < MINIMUM_MORECORE_SIZE)- size = MINIMUM_MORECORE_SIZE;- if (CurrentExecutionLevel() == kTaskLevel)- ptr = PoolAllocateResident(size + RM_PAGE_SIZE, 0);- if (ptr == 0)- {- return (void *) MFAIL;- }- // save ptrs so they can be freed during cleanup- our_os_pools[next_os_pool] = ptr;- next_os_pool++;- ptr = (void *) ((((size_t) ptr) + RM_PAGE_MASK) & ~RM_PAGE_MASK);- sbrk_top = (char *) ptr + size;- return ptr;- }- else if (size < 0)- {- // we don't currently support shrink behavior- return (void *) MFAIL;- }- else- {- return sbrk_top;- }- }-- // cleanup any allocated memory pools- // called as last thing before shutting down driver-- void osCleanupMem(void)- {- void **ptr;-- for (ptr = our_os_pools; ptr < &our_os_pools[MAX_POOL_ENTRIES]; ptr++)- if (*ptr)- {- PoolDeallocate(*ptr);- *ptr = 0;- }- }--*/---/* ------------------------------------------------------------------------History:- V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee)- * Add max_footprint functions- * Ensure all appropriate literals are size_t- * Fix conditional compilation problem for some #define settings- * Avoid concatenating segments with the one provided- in create_mspace_with_base- * Rename some variables to avoid compiler shadowing warnings- * Use explicit lock initialization.- * Better handling of sbrk interference.- * Simplify and fix segment insertion, trimming and mspace_destroy- * Reinstate REALLOC_ZERO_BYTES_FREES option from 2.7.x- * Thanks especially to Dennis Flanagan for help on these.-- V2.8.2 Sun Jun 12 16:01:10 2005 Doug Lea (dl at gee)- * Fix memalign brace error.-- V2.8.1 Wed Jun 8 16:11:46 2005 Doug Lea (dl at gee)- * Fix improper #endif nesting in C++- * Add explicit casts needed for C++-- V2.8.0 Mon May 30 14:09:02 2005 Doug Lea (dl at gee)- * Use trees for large bins- * Support mspaces- * Use segments to unify sbrk-based and mmap-based system allocation,- removing need for emulation on most platforms without sbrk.- * Default safety checks- * Optional footer checks. Thanks to William Robertson for the idea.- * Internal code refactoring- * Incorporate suggestions and platform-specific changes.- Thanks to Dennis Flanagan, Colin Plumb, Niall Douglas,- Aaron Bachmann, Emery Berger, and others.- * Speed up non-fastbin processing enough to remove fastbins.- * Remove useless cfree() to avoid conflicts with other apps.- * Remove internal memcpy, memset. Compilers handle builtins better.- * Remove some options that no one ever used and rename others.-- V2.7.2 Sat Aug 17 09:07:30 2002 Doug Lea (dl at gee)- * Fix malloc_state bitmap array misdeclaration-- V2.7.1 Thu Jul 25 10:58:03 2002 Doug Lea (dl at gee)- * Allow tuning of FIRST_SORTED_BIN_SIZE- * Use PTR_UINT as type for all ptr->int casts. Thanks to John Belmonte.- * Better detection and support for non-contiguousness of MORECORE.- Thanks to Andreas Mueller, Conal Walsh, and Wolfram Gloger- * Bypass most of malloc if no frees. Thanks To Emery Berger.- * Fix freeing of old top non-contiguous chunk im sysmalloc.- * Raised default trim and map thresholds to 256K.- * Fix mmap-related #defines. Thanks to Lubos Lunak.- * Fix copy macros; added LACKS_FCNTL_H. Thanks to Neal Walfield.- * Branch-free bin calculation- * Default trim and mmap thresholds now 256K.-- V2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee)- * Introduce independent_comalloc and independent_calloc.- Thanks to Michael Pachos for motivation and help.- * Make optional .h file available- * Allow > 2GB requests on 32bit systems.- * new WIN32 sbrk, mmap, munmap, lock code from <Walter@GeNeSys-e.de>.- Thanks also to Andreas Mueller <a.mueller at paradatec.de>,- and Anonymous.- * Allow override of MALLOC_ALIGNMENT (Thanks to Ruud Waij for- helping test this.)- * memalign: check alignment arg- * realloc: don't try to shift chunks backwards, since this- leads to more fragmentation in some programs and doesn't- seem to help in any others.- * Collect all cases in malloc requiring system memory into sysmalloc- * Use mmap as backup to sbrk- * Place all internal state in malloc_state- * Introduce fastbins (although similar to 2.5.1)- * Many minor tunings and cosmetic improvements- * Introduce USE_PUBLIC_MALLOC_WRAPPERS, USE_MALLOC_LOCK- * Introduce MALLOC_FAILURE_ACTION, MORECORE_CONTIGUOUS- Thanks to Tony E. Bennett <tbennett@nvidia.com> and others.- * Include errno.h to support default failure action.-- V2.6.6 Sun Dec 5 07:42:19 1999 Doug Lea (dl at gee)- * return null for negative arguments- * Added Several WIN32 cleanups from Martin C. Fong <mcfong at yahoo.com>- * Add 'LACKS_SYS_PARAM_H' for those systems without 'sys/param.h'- (e.g. WIN32 platforms)- * Cleanup header file inclusion for WIN32 platforms- * Cleanup code to avoid Microsoft Visual C++ compiler complaints- * Add 'USE_DL_PREFIX' to quickly allow co-existence with existing- memory allocation routines- * Set 'malloc_getpagesize' for WIN32 platforms (needs more work)- * Use 'assert' rather than 'ASSERT' in WIN32 code to conform to- usage of 'assert' in non-WIN32 code- * Improve WIN32 'sbrk()' emulation's 'findRegion()' routine to- avoid infinite loop- * Always call 'fREe()' rather than 'free()'-- V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee)- * Fixed ordering problem with boundary-stamping-- V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee)- * Added pvalloc, as recommended by H.J. Liu- * Added 64bit pointer support mainly from Wolfram Gloger- * Added anonymously donated WIN32 sbrk emulation- * Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen- * malloc_extend_top: fix mask error that caused wastage after- foreign sbrks- * Add linux mremap support code from HJ Liu-- V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee)- * Integrated most documentation with the code.- * Add support for mmap, with help from- Wolfram Gloger (Gloger@lrz.uni-muenchen.de).- * Use last_remainder in more cases.- * Pack bins using idea from colin@nyx10.cs.du.edu- * Use ordered bins instead of best-fit threshold- * Eliminate block-local decls to simplify tracing and debugging.- * Support another case of realloc via move into top- * Fix error occurring when initial sbrk_base not word-aligned.- * Rely on page size for units instead of SBRK_UNIT to- avoid surprises about sbrk alignment conventions.- * Add mallinfo, mallopt. Thanks to Raymond Nijssen- (raymond@es.ele.tue.nl) for the suggestion.- * Add `pad' argument to malloc_trim and top_pad mallopt parameter.- * More precautions for cases where other routines call sbrk,- courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de).- * Added macros etc., allowing use in linux libc from- H.J. Lu (hjl@gnu.ai.mit.edu)- * Inverted this history list-- V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee)- * Re-tuned and fixed to behave more nicely with V2.6.0 changes.- * Removed all preallocation code since under current scheme- the work required to undo bad preallocations exceeds- the work saved in good cases for most test programs.- * No longer use return list or unconsolidated bins since- no scheme using them consistently outperforms those that don't- given above changes.- * Use best fit for very large chunks to prevent some worst-cases.- * Added some support for debugging-- V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee)- * Removed footers when chunks are in use. Thanks to- Paul Wilson (wilson@cs.texas.edu) for the suggestion.-- V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee)- * Added malloc_trim, with help from Wolfram Gloger- (wmglo@Dent.MED.Uni-Muenchen.DE).-- V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g)-- V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g)- * realloc: try to expand in both directions- * malloc: swap order of clean-bin strategy;- * realloc: only conditionally expand backwards- * Try not to scavenge used bins- * Use bin counts as a guide to preallocation- * Occasionally bin return list chunks in first scan- * Add a few optimizations from colin@nyx10.cs.du.edu-- V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g)- * faster bin computation & slightly different binning- * merged all consolidations to one part of malloc proper- (eliminating old malloc_find_space & malloc_clean_bin)- * Scan 2 returns chunks (not just 1)- * Propagate failure in realloc if malloc returns 0- * Add stuff to allow compilation on non-ANSI compilers- from kpv@research.att.com-- V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu)- * removed potential for odd address access in prev_chunk- * removed dependency on getpagesize.h- * misc cosmetics and a bit more internal documentation- * anticosmetics: mangled names in macros to evade debugger strangeness- * tested on sparc, hp-700, dec-mips, rs6000- with gcc & native cc (hp, dec only) allowing- Detlefs & Zorn comparison study (in SIGPLAN Notices.)-- Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu)- * Based loosely on libg++-1.2X malloc. (It retains some of the overall- structure of old version, but most details differ.)- + http://creativecommons.org/publicdomain/zero/1.0/ Send questions,+ comments, complaints, performance data, etc to dl@cs.oswego.edu++* Version 2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea+ Note: There may be an updated version of this malloc obtainable at+ ftp://gee.cs.oswego.edu/pub/misc/malloc.c+ Check before installing!++* Quickstart++ This library is all in one file to simplify the most common usage:+ ftp it, compile it (-O3), and link it into another program. All of+ the compile-time options default to reasonable values for use on+ most platforms. You might later want to step through various+ compile-time and dynamic tuning options.++ For convenience, an include file for code using this malloc is at:+ ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.6.h+ You don't really need this .h file unless you call functions not+ defined in your system include files. The .h file contains only the+ excerpts from this file needed for using this malloc on ANSI C/C+++ systems, so long as you haven't changed compile-time options about+ naming and tuning parameters. If you do, then you can create your+ own malloc.h that does include all settings by cutting at the point+ indicated below. Note that you may already by default be using a C+ library containing a malloc that is based on some version of this+ malloc (for example in linux). You might still want to use the one+ in this file to customize settings or to avoid overheads associated+ with library versions.++* Vital statistics:++ Supported pointer/size_t representation: 4 or 8 bytes+ size_t MUST be an unsigned type of the same width as+ pointers. (If you are using an ancient system that declares+ size_t as a signed type, or need it to be a different width+ than pointers, you can use a previous release of this malloc+ (e.g. 2.7.2) supporting these.)++ Alignment: 8 bytes (minimum)+ This suffices for nearly all current machines and C compilers.+ However, you can define MALLOC_ALIGNMENT to be wider than this+ if necessary (up to 128bytes), at the expense of using more space.++ Minimum overhead per allocated chunk: 4 or 8 bytes (if 4byte sizes)+ 8 or 16 bytes (if 8byte sizes)+ Each malloced chunk has a hidden word of overhead holding size+ and status information, and additional cross-check word+ if FOOTERS is defined.++ Minimum allocated size: 4-byte ptrs: 16 bytes (including overhead)+ 8-byte ptrs: 32 bytes (including overhead)++ Even a request for zero bytes (i.e., malloc(0)) returns a+ pointer to something of the minimum allocatable size.+ The maximum overhead wastage (i.e., number of extra bytes+ allocated than were requested in malloc) is less than or equal+ to the minimum size, except for requests >= mmap_threshold that+ are serviced via mmap(), where the worst case wastage is about+ 32 bytes plus the remainder from a system page (the minimal+ mmap unit); typically 4096 or 8192 bytes.++ Security: static-safe; optionally more or less+ The "security" of malloc refers to the ability of malicious+ code to accentuate the effects of errors (for example, freeing+ space that is not currently malloc'ed or overwriting past the+ ends of chunks) in code that calls malloc. This malloc+ guarantees not to modify any memory locations below the base of+ heap, i.e., static variables, even in the presence of usage+ errors. The routines additionally detect most improper frees+ and reallocs. All this holds as long as the static bookkeeping+ for malloc itself is not corrupted by some other means. This+ is only one aspect of security -- these checks do not, and+ cannot, detect all possible programming errors.++ If FOOTERS is defined nonzero, then each allocated chunk+ carries an additional check word to verify that it was malloced+ from its space. These check words are the same within each+ execution of a program using malloc, but differ across+ executions, so externally crafted fake chunks cannot be+ freed. This improves security by rejecting frees/reallocs that+ could corrupt heap memory, in addition to the checks preventing+ writes to statics that are always on. This may further improve+ security at the expense of time and space overhead. (Note that+ FOOTERS may also be worth using with MSPACES.)++ By default detected errors cause the program to abort (calling+ "abort()"). You can override this to instead proceed past+ errors by defining PROCEED_ON_ERROR. In this case, a bad free+ has no effect, and a malloc that encounters a bad address+ caused by user overwrites will ignore the bad address by+ dropping pointers and indices to all known memory. This may+ be appropriate for programs that should continue if at all+ possible in the face of programming errors, although they may+ run out of memory because dropped memory is never reclaimed.++ If you don't like either of these options, you can define+ CORRUPTION_ERROR_ACTION and USAGE_ERROR_ACTION to do anything+ else. And if if you are sure that your program using malloc has+ no errors or vulnerabilities, you can define INSECURE to 1,+ which might (or might not) provide a small performance improvement.++ It is also possible to limit the maximum total allocatable+ space, using malloc_set_footprint_limit. This is not+ designed as a security feature in itself (calls to set limits+ are not screened or privileged), but may be useful as one+ aspect of a secure implementation.++ Thread-safety: NOT thread-safe unless USE_LOCKS defined non-zero+ When USE_LOCKS is defined, each public call to malloc, free,+ etc is surrounded with a lock. By default, this uses a plain+ pthread mutex, win32 critical section, or a spin-lock if if+ available for the platform and not disabled by setting+ USE_SPIN_LOCKS=0. However, if USE_RECURSIVE_LOCKS is defined,+ recursive versions are used instead (which are not required for+ base functionality but may be needed in layered extensions).+ Using a global lock is not especially fast, and can be a major+ bottleneck. It is designed only to provide minimal protection+ in concurrent environments, and to provide a basis for+ extensions. If you are using malloc in a concurrent program,+ consider instead using nedmalloc+ (http://www.nedprod.com/programs/portable/nedmalloc/) or+ ptmalloc (See http://www.malloc.de), which are derived from+ versions of this malloc.++ System requirements: Any combination of MORECORE and/or MMAP/MUNMAP+ This malloc can use unix sbrk or any emulation (invoked using+ the CALL_MORECORE macro) and/or mmap/munmap or any emulation+ (invoked using CALL_MMAP/CALL_MUNMAP) to get and release system+ memory. On most unix systems, it tends to work best if both+ MORECORE and MMAP are enabled. On Win32, it uses emulations+ based on VirtualAlloc. It also uses common C library functions+ like memset.++ Compliance: I believe it is compliant with the Single Unix Specification+ (See http://www.unix.org). Also SVID/XPG, ANSI C, and probably+ others as well.++* Overview of algorithms++ This is not the fastest, most space-conserving, most portable, or+ most tunable malloc ever written. However it is among the fastest+ while also being among the most space-conserving, portable and+ tunable. Consistent balance across these factors results in a good+ general-purpose allocator for malloc-intensive programs.++ In most ways, this malloc is a best-fit allocator. Generally, it+ chooses the best-fitting existing chunk for a request, with ties+ broken in approximately least-recently-used order. (This strategy+ normally maintains low fragmentation.) However, for requests less+ than 256bytes, it deviates from best-fit when there is not an+ exactly fitting available chunk by preferring to use space adjacent+ to that used for the previous small request, as well as by breaking+ ties in approximately most-recently-used order. (These enhance+ locality of series of small allocations.) And for very large requests+ (>= 256Kb by default), it relies on system memory mapping+ facilities, if supported. (This helps avoid carrying around and+ possibly fragmenting memory used only for large chunks.)++ All operations (except malloc_stats and mallinfo) have execution+ times that are bounded by a constant factor of the number of bits in+ a size_t, not counting any clearing in calloc or copying in realloc,+ or actions surrounding MORECORE and MMAP that have times+ proportional to the number of non-contiguous regions returned by+ system allocation routines, which is often just 1. In real-time+ applications, you can optionally suppress segment traversals using+ NO_SEGMENT_TRAVERSAL, which assures bounded execution even when+ system allocators return non-contiguous spaces, at the typical+ expense of carrying around more memory and increased fragmentation.++ The implementation is not very modular and seriously overuses+ macros. Perhaps someday all C compilers will do as good a job+ inlining modular code as can now be done by brute-force expansion,+ but now, enough of them seem not to.++ Some compilers issue a lot of warnings about code that is+ dead/unreachable only on some platforms, and also about intentional+ uses of negation on unsigned types. All known cases of each can be+ ignored.++ For a longer but out of date high-level description, see+ http://gee.cs.oswego.edu/dl/html/malloc.html++* MSPACES+ If MSPACES is defined, then in addition to malloc, free, etc.,+ this file also defines mspace_malloc, mspace_free, etc. These+ are versions of malloc routines that take an "mspace" argument+ obtained using create_mspace, to control all internal bookkeeping.+ If ONLY_MSPACES is defined, only these versions are compiled.+ So if you would like to use this allocator for only some allocations,+ and your system malloc for others, you can compile with+ ONLY_MSPACES and then do something like...+ static mspace mymspace = create_mspace(0,0); // for example+ #define mymalloc(bytes) mspace_malloc(mymspace, bytes)++ (Note: If you only need one instance of an mspace, you can instead+ use "USE_DL_PREFIX" to relabel the global malloc.)++ You can similarly create thread-local allocators by storing+ mspaces as thread-locals. For example:+ static __thread mspace tlms = 0;+ void* tlmalloc(size_t bytes) {+ if (tlms == 0) tlms = create_mspace(0, 0);+ return mspace_malloc(tlms, bytes);+ }+ void tlfree(void* mem) { mspace_free(tlms, mem); }++ Unless FOOTERS is defined, each mspace is completely independent.+ You cannot allocate from one and free to another (although+ conformance is only weakly checked, so usage errors are not always+ caught). If FOOTERS is defined, then each chunk carries around a tag+ indicating its originating mspace, and frees are directed to their+ originating spaces. Normally, this requires use of locks.++ ------------------------- Compile-time options ---------------------------++Be careful in setting #define values for numerical constants of type+size_t. On some systems, literal values are not automatically extended+to size_t precision unless they are explicitly casted. You can also+use the symbolic values MAX_SIZE_T, SIZE_T_ONE, etc below.++WIN32 default: defined if _WIN32 defined+ Defining WIN32 sets up defaults for MS environment and compilers.+ Otherwise defaults are for unix. Beware that there seem to be some+ cases where this malloc might not be a pure drop-in replacement for+ Win32 malloc: Random-looking failures from Win32 GDI API's (eg;+ SetDIBits()) may be due to bugs in some video driver implementations+ when pixel buffers are malloc()ed, and the region spans more than+ one VirtualAlloc()ed region. Because dlmalloc uses a small (64Kb)+ default granularity, pixel buffers may straddle virtual allocation+ regions more often than when using the Microsoft allocator. You can+ avoid this by using VirtualAlloc() and VirtualFree() for all pixel+ buffers rather than using malloc(). If this is not possible,+ recompile this malloc with a larger DEFAULT_GRANULARITY. Note:+ in cases where MSC and gcc (cygwin) are known to differ on WIN32,+ conditions use _MSC_VER to distinguish them.++DLMALLOC_EXPORT default: extern+ Defines how public APIs are declared. If you want to export via a+ Windows DLL, you might define this as+ #define DLMALLOC_EXPORT extern __declspec(dllexport)+ If you want a POSIX ELF shared object, you might use+ #define DLMALLOC_EXPORT extern __attribute__((visibility("default")))++MALLOC_ALIGNMENT default: (size_t)(2 * sizeof(void *))+ Controls the minimum alignment for malloc'ed chunks. It must be a+ power of two and at least 8, even on machines for which smaller+ alignments would suffice. It may be defined as larger than this+ though. Note however that code and data structures are optimized for+ the case of 8-byte alignment.++MSPACES default: 0 (false)+ If true, compile in support for independent allocation spaces.+ This is only supported if HAVE_MMAP is true.++ONLY_MSPACES default: 0 (false)+ If true, only compile in mspace versions, not regular versions.++USE_LOCKS default: 0 (false)+ Causes each call to each public routine to be surrounded with+ pthread or WIN32 mutex lock/unlock. (If set true, this can be+ overridden on a per-mspace basis for mspace versions.) If set to a+ non-zero value other than 1, locks are used, but their+ implementation is left out, so lock functions must be supplied manually,+ as described below.++USE_SPIN_LOCKS default: 1 iff USE_LOCKS and spin locks available+ If true, uses custom spin locks for locking. This is currently+ supported only gcc >= 4.1, older gccs on x86 platforms, and recent+ MS compilers. Otherwise, posix locks or win32 critical sections are+ used.++USE_RECURSIVE_LOCKS default: not defined+ If defined nonzero, uses recursive (aka reentrant) locks, otherwise+ uses plain mutexes. This is not required for malloc proper, but may+ be needed for layered allocators such as nedmalloc.++LOCK_AT_FORK default: not defined+ If defined nonzero, performs pthread_atfork upon initialization+ to initialize child lock while holding parent lock. The implementation+ assumes that pthread locks (not custom locks) are being used. In other+ cases, you may need to customize the implementation.++FOOTERS default: 0+ If true, provide extra checking and dispatching by placing+ information in the footers of allocated chunks. This adds+ space and time overhead.++INSECURE default: 0+ If true, omit checks for usage errors and heap space overwrites.++USE_DL_PREFIX default: NOT defined+ Causes compiler to prefix all public routines with the string 'dl'.+ This can be useful when you only want to use this malloc in one part+ of a program, using your regular system malloc elsewhere.++MALLOC_INSPECT_ALL default: NOT defined+ If defined, compiles malloc_inspect_all and mspace_inspect_all, that+ perform traversal of all heap space. Unless access to these+ functions is otherwise restricted, you probably do not want to+ include them in secure implementations.++ABORT default: defined as abort()+ Defines how to abort on failed checks. On most systems, a failed+ check cannot die with an "assert" or even print an informative+ message, because the underlying print routines in turn call malloc,+ which will fail again. Generally, the best policy is to simply call+ abort(). It's not very useful to do more than this because many+ errors due to overwriting will show up as address faults (null, odd+ addresses etc) rather than malloc-triggered checks, so will also+ abort. Also, most compilers know that abort() does not return, so+ can better optimize code conditionally calling it.++PROCEED_ON_ERROR default: defined as 0 (false)+ Controls whether detected bad addresses cause them to bypassed+ rather than aborting. If set, detected bad arguments to free and+ realloc are ignored. And all bookkeeping information is zeroed out+ upon a detected overwrite of freed heap space, thus losing the+ ability to ever return it from malloc again, but enabling the+ application to proceed. If PROCEED_ON_ERROR is defined, the+ static variable malloc_corruption_error_count is compiled in+ and can be examined to see if errors have occurred. This option+ generates slower code than the default abort policy.++DEBUG default: NOT defined+ The DEBUG setting is mainly intended for people trying to modify+ this code or diagnose problems when porting to new platforms.+ However, it may also be able to better isolate user errors than just+ using runtime checks. The assertions in the check routines spell+ out in more detail the assumptions and invariants underlying the+ algorithms. The checking is fairly extensive, and will slow down+ execution noticeably. Calling malloc_stats or mallinfo with DEBUG+ set will attempt to check every non-mmapped allocated and free chunk+ in the course of computing the summaries.++ABORT_ON_ASSERT_FAILURE default: defined as 1 (true)+ Debugging assertion failures can be nearly impossible if your+ version of the assert macro causes malloc to be called, which will+ lead to a cascade of further failures, blowing the runtime stack.+ ABORT_ON_ASSERT_FAILURE cause assertions failures to call abort(),+ which will usually make debugging easier.++MALLOC_FAILURE_ACTION default: sets errno to ENOMEM, or no-op on win32+ The action to take before "return 0" when malloc fails to be able to+ return memory because there is none available.++HAVE_MORECORE default: 1 (true) unless win32 or ONLY_MSPACES+ True if this system supports sbrk or an emulation of it.++MORECORE default: sbrk+ The name of the sbrk-style system routine to call to obtain more+ memory. See below for guidance on writing custom MORECORE+ functions. The type of the argument to sbrk/MORECORE varies across+ systems. It cannot be size_t, because it supports negative+ arguments, so it is normally the signed type of the same width as+ size_t (sometimes declared as "intptr_t"). It doesn't much matter+ though. Internally, we only call it with arguments less than half+ the max value of a size_t, which should work across all reasonable+ possibilities, although sometimes generating compiler warnings.++MORECORE_CONTIGUOUS default: 1 (true) if HAVE_MORECORE+ If true, take advantage of fact that consecutive calls to MORECORE+ with positive arguments always return contiguous increasing+ addresses. This is true of unix sbrk. It does not hurt too much to+ set it true anyway, since malloc copes with non-contiguities.+ Setting it false when definitely non-contiguous saves time+ and possibly wasted space it would take to discover this though.++MORECORE_CANNOT_TRIM default: NOT defined+ True if MORECORE cannot release space back to the system when given+ negative arguments. This is generally necessary only if you are+ using a hand-crafted MORECORE function that cannot handle negative+ arguments.++NO_SEGMENT_TRAVERSAL default: 0+ If non-zero, suppresses traversals of memory segments+ returned by either MORECORE or CALL_MMAP. This disables+ merging of segments that are contiguous, and selectively+ releasing them to the OS if unused, but bounds execution times.++HAVE_MMAP default: 1 (true)+ True if this system supports mmap or an emulation of it. If so, and+ HAVE_MORECORE is not true, MMAP is used for all system+ allocation. If set and HAVE_MORECORE is true as well, MMAP is+ primarily used to directly allocate very large blocks. It is also+ used as a backup strategy in cases where MORECORE fails to provide+ space from system. Note: A single call to MUNMAP is assumed to be+ able to unmap memory that may have be allocated using multiple calls+ to MMAP, so long as they are adjacent.++HAVE_MREMAP default: 1 on linux, else 0+ If true realloc() uses mremap() to re-allocate large blocks and+ extend or shrink allocation spaces.++MMAP_CLEARS default: 1 except on WINCE.+ True if mmap clears memory so calloc doesn't need to. This is true+ for standard unix mmap using /dev/zero and on WIN32 except for WINCE.++USE_BUILTIN_FFS default: 0 (i.e., not used)+ Causes malloc to use the builtin ffs() function to compute indices.+ Some compilers may recognize and intrinsify ffs to be faster than the+ supplied C version. Also, the case of x86 using gcc is special-cased+ to an asm instruction, so is already as fast as it can be, and so+ this setting has no effect. Similarly for Win32 under recent MS compilers.+ (On most x86s, the asm version is only slightly faster than the C version.)++malloc_getpagesize default: derive from system includes, or 4096.+ The system page size. To the extent possible, this malloc manages+ memory from the system in page-size units. This may be (and+ usually is) a function rather than a constant. This is ignored+ if WIN32, where page size is determined using getSystemInfo during+ initialization.++USE_DEV_RANDOM default: 0 (i.e., not used)+ Causes malloc to use /dev/random to initialize secure magic seed for+ stamping footers. Otherwise, the current time is used.++NO_MALLINFO default: 0+ If defined, don't compile "mallinfo". This can be a simple way+ of dealing with mismatches between system declarations and+ those in this file.++MALLINFO_FIELD_TYPE default: size_t+ The type of the fields in the mallinfo struct. This was originally+ defined as "int" in SVID etc, but is more usefully defined as+ size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set++NO_MALLOC_STATS default: 0+ If defined, don't compile "malloc_stats". This avoids calls to+ fprintf and bringing in stdio dependencies you might not want.++REALLOC_ZERO_BYTES_FREES default: not defined+ This should be set if a call to realloc with zero bytes should+ be the same as a call to free. Some people think it should. Otherwise,+ since this malloc returns a unique pointer for malloc(0), so does+ realloc(p, 0).++LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H+LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H+LACKS_STDLIB_H LACKS_SCHED_H LACKS_TIME_H default: NOT defined unless on WIN32+ Define these if your system does not have these header files.+ You might need to manually insert some of the declarations they provide.++DEFAULT_GRANULARITY default: page size if MORECORE_CONTIGUOUS,+ system_info.dwAllocationGranularity in WIN32,+ otherwise 64K.+ Also settable using mallopt(M_GRANULARITY, x)+ The unit for allocating and deallocating memory from the system. On+ most systems with contiguous MORECORE, there is no reason to+ make this more than a page. However, systems with MMAP tend to+ either require or encourage larger granularities. You can increase+ this value to prevent system allocation functions to be called so+ often, especially if they are slow. The value must be at least one+ page and must be a power of two. Setting to 0 causes initialization+ to either page size or win32 region size. (Note: In previous+ versions of malloc, the equivalent of this option was called+ "TOP_PAD")++DEFAULT_TRIM_THRESHOLD default: 2MB+ Also settable using mallopt(M_TRIM_THRESHOLD, x)+ The maximum amount of unused top-most memory to keep before+ releasing via malloc_trim in free(). Automatic trimming is mainly+ useful in long-lived programs using contiguous MORECORE. Because+ trimming via sbrk can be slow on some systems, and can sometimes be+ wasteful (in cases where programs immediately afterward allocate+ more large chunks) the value should be high enough so that your+ overall system performance would improve by releasing this much+ memory. As a rough guide, you might set to a value close to the+ average size of a process (program) running on your system.+ Releasing this much memory would allow such a process to run in+ memory. Generally, it is worth tuning trim thresholds when a+ program undergoes phases where several large chunks are allocated+ and released in ways that can reuse each other's storage, perhaps+ mixed with phases where there are no such chunks at all. The trim+ value must be greater than page size to have any useful effect. To+ disable trimming completely, you can set to MAX_SIZE_T. Note that the trick+ some people use of mallocing a huge space and then freeing it at+ program startup, in an attempt to reserve system memory, doesn't+ have the intended effect under automatic trimming, since that memory+ will immediately be returned to the system.++DEFAULT_MMAP_THRESHOLD default: 256K+ Also settable using mallopt(M_MMAP_THRESHOLD, x)+ The request size threshold for using MMAP to directly service a+ request. Requests of at least this size that cannot be allocated+ using already-existing space will be serviced via mmap. (If enough+ normal freed space already exists it is used instead.) Using mmap+ segregates relatively large chunks of memory so that they can be+ individually obtained and released from the host system. A request+ serviced through mmap is never reused by any other request (at least+ not directly; the system may just so happen to remap successive+ requests to the same locations). Segregating space in this way has+ the benefits that: Mmapped space can always be individually released+ back to the system, which helps keep the system level memory demands+ of a long-lived program low. Also, mapped memory doesn't become+ `locked' between other chunks, as can happen with normally allocated+ chunks, which means that even trimming via malloc_trim would not+ release them. However, it has the disadvantage that the space+ cannot be reclaimed, consolidated, and then used to service later+ requests, as happens with normal chunks. The advantages of mmap+ nearly always outweigh disadvantages for "large" chunks, but the+ value of "large" may vary across systems. The default is an+ empirically derived value that works well in most systems. You can+ disable mmap by setting to MAX_SIZE_T.++MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP+ The number of consolidated frees between checks to release+ unused segments when freeing. When using non-contiguous segments,+ especially with multiple mspaces, checking only for topmost space+ doesn't always suffice to trigger trimming. To compensate for this,+ free() will, with a period of MAX_RELEASE_CHECK_RATE (or the+ current number of segments, if greater) try to release unused+ segments to the OS when freeing chunks that result in+ consolidation. The best value for this parameter is a compromise+ between slowing down frees with relatively costly checks that+ rarely trigger versus holding on to unused memory. To effectively+ disable, set to MAX_SIZE_T. This may lead to a very slight speed+ improvement at the expense of carrying around more memory.+*/++/* Version identifier to allow people to support multiple versions */+#ifndef DLMALLOC_VERSION+#define DLMALLOC_VERSION 20806+#endif /* DLMALLOC_VERSION */++#ifndef DLMALLOC_EXPORT+#define DLMALLOC_EXPORT extern+#endif++#if defined __linux__ && !defined _GNU_SOURCE+/* mremap() on Linux requires this via sys/mman.h */+#define _GNU_SOURCE 1+#endif++#ifndef WIN32+#ifdef _WIN32+#define WIN32 1+#endif /* _WIN32 */+#ifdef _WIN32_WCE+#define LACKS_FCNTL_H+#define WIN32 1+#endif /* _WIN32_WCE */+#endif /* WIN32 */+#ifdef WIN32+#define WIN32_LEAN_AND_MEAN+#include <windows.h>+#include <tchar.h>+#define HAVE_MMAP 1+#define HAVE_MORECORE 0+#define LACKS_UNISTD_H+#define LACKS_SYS_PARAM_H+#define LACKS_SYS_MMAN_H+#define LACKS_STRING_H+#define LACKS_STRINGS_H+#define LACKS_SYS_TYPES_H+#define LACKS_ERRNO_H+#define LACKS_SCHED_H+#ifndef MALLOC_FAILURE_ACTION+#define MALLOC_FAILURE_ACTION+#endif /* MALLOC_FAILURE_ACTION */+#ifndef MMAP_CLEARS+#ifdef _WIN32_WCE /* WINCE reportedly does not clear */+#define MMAP_CLEARS 0+#else+#define MMAP_CLEARS 1+#endif /* _WIN32_WCE */+#endif /*MMAP_CLEARS */+#endif /* WIN32 */++#ifdef __OS2__+#define INCL_DOS+#include <os2.h>+#define HAVE_MMAP 1+#define HAVE_MORECORE 0+#define LACKS_SYS_MMAN_H+#endif /* __OS2__ */++#if defined(DARWIN) || defined(_DARWIN)+/* Mac OSX docs advise not to use sbrk; it seems better to use mmap */+#ifndef HAVE_MORECORE+#define HAVE_MORECORE 0+#define HAVE_MMAP 1+/* OSX allocators provide 16 byte alignment */+#ifndef MALLOC_ALIGNMENT+#define MALLOC_ALIGNMENT ((size_t)16U)+#endif+#endif /* HAVE_MORECORE */+#endif /* DARWIN */++#ifndef LACKS_SYS_TYPES_H+#include <sys/types.h> /* For size_t */+#endif /* LACKS_SYS_TYPES_H */++/* The maximum possible size_t value has all bits set */+#define MAX_SIZE_T (~(size_t)0)++#ifndef USE_LOCKS /* ensure true if spin or recursive locks set */+#define USE_LOCKS ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \+ (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))+#endif /* USE_LOCKS */++#if USE_LOCKS /* Spin locks for gcc >= 4.1, older gcc on x86, MSC >= 1310 */+#if ((defined(__GNUC__) && \+ ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) || \+ defined(__i386__) || defined(__x86_64__))) || \+ (defined(_MSC_VER) && _MSC_VER>=1310))+#ifndef USE_SPIN_LOCKS+#define USE_SPIN_LOCKS 1+#endif /* USE_SPIN_LOCKS */+#elif USE_SPIN_LOCKS+#error "USE_SPIN_LOCKS defined without implementation"+#endif /* ... locks available... */+#elif !defined(USE_SPIN_LOCKS)+#define USE_SPIN_LOCKS 0+#endif /* USE_LOCKS */++#ifndef ONLY_MSPACES+#define ONLY_MSPACES 0+#endif /* ONLY_MSPACES */+#ifndef MSPACES+#if ONLY_MSPACES+#define MSPACES 1+#else /* ONLY_MSPACES */+#define MSPACES 0+#endif /* ONLY_MSPACES */+#endif /* MSPACES */+#ifndef MALLOC_ALIGNMENT+#define MALLOC_ALIGNMENT ((size_t)(2 * sizeof(void *)))+#endif /* MALLOC_ALIGNMENT */+#ifndef FOOTERS+#define FOOTERS 0+#endif /* FOOTERS */+#ifndef ABORT+#define ABORT abort()+#endif /* ABORT */+#ifndef ABORT_ON_ASSERT_FAILURE+#define ABORT_ON_ASSERT_FAILURE 1+#endif /* ABORT_ON_ASSERT_FAILURE */+#ifndef PROCEED_ON_ERROR+#define PROCEED_ON_ERROR 0+#endif /* PROCEED_ON_ERROR */++#ifndef INSECURE+#define INSECURE 0+#endif /* INSECURE */+#ifndef MALLOC_INSPECT_ALL+#define MALLOC_INSPECT_ALL 0+#endif /* MALLOC_INSPECT_ALL */+#ifndef HAVE_MMAP+#define HAVE_MMAP 1+#endif /* HAVE_MMAP */+#ifndef MMAP_CLEARS+#define MMAP_CLEARS 1+#endif /* MMAP_CLEARS */+#ifndef HAVE_MREMAP+#ifdef linux+#define HAVE_MREMAP 1+#define _GNU_SOURCE /* Turns on mremap() definition */+#else /* linux */+#define HAVE_MREMAP 0+#endif /* linux */+#endif /* HAVE_MREMAP */+#ifndef MALLOC_FAILURE_ACTION+#define MALLOC_FAILURE_ACTION errno = ENOMEM;+#endif /* MALLOC_FAILURE_ACTION */+#ifndef HAVE_MORECORE+#if ONLY_MSPACES+#define HAVE_MORECORE 0+#else /* ONLY_MSPACES */+#define HAVE_MORECORE 1+#endif /* ONLY_MSPACES */+#endif /* HAVE_MORECORE */+#if !HAVE_MORECORE+#define MORECORE_CONTIGUOUS 0+#else /* !HAVE_MORECORE */+#define MORECORE_DEFAULT sbrk+#ifndef MORECORE_CONTIGUOUS+#define MORECORE_CONTIGUOUS 1+#endif /* MORECORE_CONTIGUOUS */+#endif /* HAVE_MORECORE */+#ifndef DEFAULT_GRANULARITY+#if (MORECORE_CONTIGUOUS || defined(WIN32))+#define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */+#else /* MORECORE_CONTIGUOUS */+#define DEFAULT_GRANULARITY ((size_t)64U * (size_t)1024U)+#endif /* MORECORE_CONTIGUOUS */+#endif /* DEFAULT_GRANULARITY */+#ifndef DEFAULT_TRIM_THRESHOLD+#ifndef MORECORE_CANNOT_TRIM+#define DEFAULT_TRIM_THRESHOLD ((size_t)2U * (size_t)1024U * (size_t)1024U)+#else /* MORECORE_CANNOT_TRIM */+#define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T+#endif /* MORECORE_CANNOT_TRIM */+#endif /* DEFAULT_TRIM_THRESHOLD */+#ifndef DEFAULT_MMAP_THRESHOLD+#if HAVE_MMAP+#define DEFAULT_MMAP_THRESHOLD ((size_t)256U * (size_t)1024U)+#else /* HAVE_MMAP */+#define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T+#endif /* HAVE_MMAP */+#endif /* DEFAULT_MMAP_THRESHOLD */+#ifndef MAX_RELEASE_CHECK_RATE+#if HAVE_MMAP+#define MAX_RELEASE_CHECK_RATE 4095+#else+#define MAX_RELEASE_CHECK_RATE MAX_SIZE_T+#endif /* HAVE_MMAP */+#endif /* MAX_RELEASE_CHECK_RATE */+#ifndef USE_BUILTIN_FFS+#define USE_BUILTIN_FFS 0+#endif /* USE_BUILTIN_FFS */+#ifndef USE_DEV_RANDOM+#define USE_DEV_RANDOM 0+#endif /* USE_DEV_RANDOM */+#ifndef NO_MALLINFO+#define NO_MALLINFO 0+#endif /* NO_MALLINFO */+#ifndef MALLINFO_FIELD_TYPE+#define MALLINFO_FIELD_TYPE size_t+#endif /* MALLINFO_FIELD_TYPE */+#ifndef NO_MALLOC_STATS+#define NO_MALLOC_STATS 0+#endif /* NO_MALLOC_STATS */+#ifndef NO_SEGMENT_TRAVERSAL+#define NO_SEGMENT_TRAVERSAL 0+#endif /* NO_SEGMENT_TRAVERSAL */++/*+ mallopt tuning options. SVID/XPG defines four standard parameter+ numbers for mallopt, normally defined in malloc.h. None of these+ are used in this malloc, so setting them has no effect. But this+ malloc does support the following options.+*/++/* The system's malloc.h may have conflicting defines. */+#undef M_TRIM_THRESHOLD+#undef M_GRANULARITY+#undef M_MMAP_THRESHOLD++#define M_TRIM_THRESHOLD (-1)+#define M_GRANULARITY (-2)+#define M_MMAP_THRESHOLD (-3)++/* ------------------------ Mallinfo declarations ------------------------ */++#if !NO_MALLINFO+/*+ This version of malloc supports the standard SVID/XPG mallinfo+ routine that returns a struct containing usage properties and+ statistics. It should work on any system that has a+ /usr/include/malloc.h defining struct mallinfo. The main+ declaration needed is the mallinfo struct that is returned (by-copy)+ by mallinfo(). The malloinfo struct contains a bunch of fields that+ are not even meaningful in this version of malloc. These fields are+ are instead filled by mallinfo() with other numbers that might be of+ interest.++ HAVE_USR_INCLUDE_MALLOC_H should be set if you have a+ /usr/include/malloc.h file that includes a declaration of struct+ mallinfo. If so, it is included; else a compliant version is+ declared below. These must be precisely the same for mallinfo() to+ work. The original SVID version of this struct, defined on most+ systems with mallinfo, declares all fields as ints. But some others+ define as unsigned long. If your system defines the fields using a+ type of different width than listed here, you MUST #include your+ system version and #define HAVE_USR_INCLUDE_MALLOC_H.+*/++/* #define HAVE_USR_INCLUDE_MALLOC_H */++#ifdef HAVE_USR_INCLUDE_MALLOC_H+#include "/usr/include/malloc.h"+#else /* HAVE_USR_INCLUDE_MALLOC_H */+#ifndef STRUCT_MALLINFO_DECLARED+/* HP-UX (and others?) redefines mallinfo unless _STRUCT_MALLINFO is defined */+#define _STRUCT_MALLINFO+#define STRUCT_MALLINFO_DECLARED 1+struct mallinfo {+ MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */+ MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */+ MALLINFO_FIELD_TYPE smblks; /* always 0 */+ MALLINFO_FIELD_TYPE hblks; /* always 0 */+ MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */+ MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */+ MALLINFO_FIELD_TYPE fsmblks; /* always 0 */+ MALLINFO_FIELD_TYPE uordblks; /* total allocated space */+ MALLINFO_FIELD_TYPE fordblks; /* total free space */+ MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */+};+#endif /* STRUCT_MALLINFO_DECLARED */+#endif /* HAVE_USR_INCLUDE_MALLOC_H */+#endif /* NO_MALLINFO */++/*+ Try to persuade compilers to inline. The most critical functions for+ inlining are defined as macros, so these aren't used for them.+*/++#ifndef FORCEINLINE+ #if defined(__GNUC__)+#define FORCEINLINE __inline __attribute__ ((always_inline))+ #elif defined(_MSC_VER)+ #define FORCEINLINE __forceinline+ #endif+#endif+#ifndef NOINLINE+ #if defined(__GNUC__)+ #define NOINLINE __attribute__ ((noinline))+ #elif defined(_MSC_VER)+ #define NOINLINE __declspec(noinline)+ #else+ #define NOINLINE+ #endif+#endif++#ifdef __cplusplus+extern "C" {+#ifndef FORCEINLINE+ #define FORCEINLINE inline+#endif+#endif /* __cplusplus */+#ifndef FORCEINLINE+ #define FORCEINLINE+#endif++#if !ONLY_MSPACES++/* ------------------- Declarations of public routines ------------------- */++#ifndef USE_DL_PREFIX+#define dlcalloc calloc+#define dlfree free+#define dlmalloc malloc+#define dlmemalign memalign+#define dlposix_memalign posix_memalign+#define dlrealloc realloc+#define dlrealloc_in_place realloc_in_place+#define dlvalloc valloc+#define dlpvalloc pvalloc+#define dlmallinfo mallinfo+#define dlmallopt mallopt+#define dlmalloc_trim malloc_trim+#define dlmalloc_stats malloc_stats+#define dlmalloc_usable_size malloc_usable_size+#define dlmalloc_footprint malloc_footprint+#define dlmalloc_max_footprint malloc_max_footprint+#define dlmalloc_footprint_limit malloc_footprint_limit+#define dlmalloc_set_footprint_limit malloc_set_footprint_limit+#define dlmalloc_inspect_all malloc_inspect_all+#define dlindependent_calloc independent_calloc+#define dlindependent_comalloc independent_comalloc+#define dlbulk_free bulk_free+#endif /* USE_DL_PREFIX */++/*+ malloc(size_t n)+ Returns a pointer to a newly allocated chunk of at least n bytes, or+ null if no space is available, in which case errno is set to ENOMEM+ on ANSI C systems.++ If n is zero, malloc returns a minimum-sized chunk. (The minimum+ size is 16 bytes on most 32bit systems, and 32 bytes on 64bit+ systems.) Note that size_t is an unsigned type, so calls with+ arguments that would be negative if signed are interpreted as+ requests for huge amounts of space, which will often fail. The+ maximum supported value of n differs across systems, but is in all+ cases less than the maximum representable value of a size_t.+*/+DLMALLOC_EXPORT void* dlmalloc(size_t);++/*+ free(void* p)+ Releases the chunk of memory pointed to by p, that had been previously+ allocated using malloc or a related routine such as realloc.+ It has no effect if p is null. If p was not malloced or already+ freed, free(p) will by default cause the current program to abort.+*/+DLMALLOC_EXPORT void dlfree(void*);++/*+ calloc(size_t n_elements, size_t element_size);+ Returns a pointer to n_elements * element_size bytes, with all locations+ set to zero.+*/+DLMALLOC_EXPORT void* dlcalloc(size_t, size_t);++/*+ realloc(void* p, size_t n)+ Returns a pointer to a chunk of size n that contains the same data+ as does chunk p up to the minimum of (n, p's size) bytes, or null+ if no space is available.++ The returned pointer may or may not be the same as p. The algorithm+ prefers extending p in most cases when possible, otherwise it+ employs the equivalent of a malloc-copy-free sequence.++ If p is null, realloc is equivalent to malloc.++ If space is not available, realloc returns null, errno is set (if on+ ANSI) and p is NOT freed.++ if n is for fewer bytes than already held by p, the newly unused+ space is lopped off and freed if possible. realloc with a size+ argument of zero (re)allocates a minimum-sized chunk.++ The old unix realloc convention of allowing the last-free'd chunk+ to be used as an argument to realloc is not supported.+*/+DLMALLOC_EXPORT void* dlrealloc(void*, size_t);++/*+ realloc_in_place(void* p, size_t n)+ Resizes the space allocated for p to size n, only if this can be+ done without moving p (i.e., only if there is adjacent space+ available if n is greater than p's current allocated size, or n is+ less than or equal to p's size). This may be used instead of plain+ realloc if an alternative allocation strategy is needed upon failure+ to expand space; for example, reallocation of a buffer that must be+ memory-aligned or cleared. You can use realloc_in_place to trigger+ these alternatives only when needed.++ Returns p if successful; otherwise null.+*/+DLMALLOC_EXPORT void* dlrealloc_in_place(void*, size_t);++/*+ memalign(size_t alignment, size_t n);+ Returns a pointer to a newly allocated chunk of n bytes, aligned+ in accord with the alignment argument.++ The alignment argument should be a power of two. If the argument is+ not a power of two, the nearest greater power is used.+ 8-byte alignment is guaranteed by normal malloc calls, so don't+ bother calling memalign with an argument of 8 or less.++ Overreliance on memalign is a sure way to fragment space.+*/+DLMALLOC_EXPORT void* dlmemalign(size_t, size_t);++/*+ int posix_memalign(void** pp, size_t alignment, size_t n);+ Allocates a chunk of n bytes, aligned in accord with the alignment+ argument. Differs from memalign only in that it (1) assigns the+ allocated memory to *pp rather than returning it, (2) fails and+ returns EINVAL if the alignment is not a power of two (3) fails and+ returns ENOMEM if memory cannot be allocated.+*/+DLMALLOC_EXPORT int dlposix_memalign(void**, size_t, size_t);++/*+ valloc(size_t n);+ Equivalent to memalign(pagesize, n), where pagesize is the page+ size of the system. If the pagesize is unknown, 4096 is used.+*/+DLMALLOC_EXPORT void* dlvalloc(size_t);++/*+ mallopt(int parameter_number, int parameter_value)+ Sets tunable parameters The format is to provide a+ (parameter-number, parameter-value) pair. mallopt then sets the+ corresponding parameter to the argument value if it can (i.e., so+ long as the value is meaningful), and returns 1 if successful else+ 0. To workaround the fact that mallopt is specified to use int,+ not size_t parameters, the value -1 is specially treated as the+ maximum unsigned size_t value.++ SVID/XPG/ANSI defines four standard param numbers for mallopt,+ normally defined in malloc.h. None of these are use in this malloc,+ so setting them has no effect. But this malloc also supports other+ options in mallopt. See below for details. Briefly, supported+ parameters are as follows (listed defaults are for "typical"+ configurations).++ Symbol param # default allowed param values+ M_TRIM_THRESHOLD -1 2*1024*1024 any (-1 disables)+ M_GRANULARITY -2 page size any power of 2 >= page size+ M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support)+*/+DLMALLOC_EXPORT int dlmallopt(int, int);++/*+ malloc_footprint();+ Returns the number of bytes obtained from the system. The total+ number of bytes allocated by malloc, realloc etc., is less than this+ value. Unlike mallinfo, this function returns only a precomputed+ result, so can be called frequently to monitor memory consumption.+ Even if locks are otherwise defined, this function does not use them,+ so results might not be up to date.+*/+DLMALLOC_EXPORT size_t dlmalloc_footprint(void);++/*+ malloc_max_footprint();+ Returns the maximum number of bytes obtained from the system. This+ value will be greater than current footprint if deallocated space+ has been reclaimed by the system. The peak number of bytes allocated+ by malloc, realloc etc., is less than this value. Unlike mallinfo,+ this function returns only a precomputed result, so can be called+ frequently to monitor memory consumption. Even if locks are+ otherwise defined, this function does not use them, so results might+ not be up to date.+*/+DLMALLOC_EXPORT size_t dlmalloc_max_footprint(void);++/*+ malloc_footprint_limit();+ Returns the number of bytes that the heap is allowed to obtain from+ the system, returning the last value returned by+ malloc_set_footprint_limit, or the maximum size_t value if+ never set. The returned value reflects a permission. There is no+ guarantee that this number of bytes can actually be obtained from+ the system.+*/+DLMALLOC_EXPORT size_t dlmalloc_footprint_limit();++/*+ malloc_set_footprint_limit();+ Sets the maximum number of bytes to obtain from the system, causing+ failure returns from malloc and related functions upon attempts to+ exceed this value. The argument value may be subject to page+ rounding to an enforceable limit; this actual value is returned.+ Using an argument of the maximum possible size_t effectively+ disables checks. If the argument is less than or equal to the+ current malloc_footprint, then all future allocations that require+ additional system memory will fail. However, invocation cannot+ retroactively deallocate existing used memory.+*/+DLMALLOC_EXPORT size_t dlmalloc_set_footprint_limit(size_t bytes);++#if MALLOC_INSPECT_ALL+/*+ malloc_inspect_all(void(*handler)(void *start,+ void *end,+ size_t used_bytes,+ void* callback_arg),+ void* arg);+ Traverses the heap and calls the given handler for each managed+ region, skipping all bytes that are (or may be) used for bookkeeping+ purposes. Traversal does not include include chunks that have been+ directly memory mapped. Each reported region begins at the start+ address, and continues up to but not including the end address. The+ first used_bytes of the region contain allocated data. If+ used_bytes is zero, the region is unallocated. The handler is+ invoked with the given callback argument. If locks are defined, they+ are held during the entire traversal. It is a bad idea to invoke+ other malloc functions from within the handler.++ For example, to count the number of in-use chunks with size greater+ than 1000, you could write:+ static int count = 0;+ void count_chunks(void* start, void* end, size_t used, void* arg) {+ if (used >= 1000) ++count;+ }+ then:+ malloc_inspect_all(count_chunks, NULL);++ malloc_inspect_all is compiled only if MALLOC_INSPECT_ALL is defined.+*/+DLMALLOC_EXPORT void dlmalloc_inspect_all(void(*handler)(void*, void *, size_t, void*),+ void* arg);++#endif /* MALLOC_INSPECT_ALL */++#if !NO_MALLINFO+/*+ mallinfo()+ Returns (by copy) a struct containing various summary statistics:++ arena: current total non-mmapped bytes allocated from system+ ordblks: the number of free chunks+ smblks: always zero.+ hblks: current number of mmapped regions+ hblkhd: total bytes held in mmapped regions+ usmblks: the maximum total allocated space. This will be greater+ than current total if trimming has occurred.+ fsmblks: always zero+ uordblks: current total allocated space (normal or mmapped)+ fordblks: total free space+ keepcost: the maximum number of bytes that could ideally be released+ back to system via malloc_trim. ("ideally" means that+ it ignores page restrictions etc.)++ Because these fields are ints, but internal bookkeeping may+ be kept as longs, the reported values may wrap around zero and+ thus be inaccurate.+*/+DLMALLOC_EXPORT struct mallinfo dlmallinfo(void);+#endif /* NO_MALLINFO */++/*+ independent_calloc(size_t n_elements, size_t element_size, void* chunks[]);++ independent_calloc is similar to calloc, but instead of returning a+ single cleared space, it returns an array of pointers to n_elements+ independent elements that can hold contents of size elem_size, each+ of which starts out cleared, and can be independently freed,+ realloc'ed etc. The elements are guaranteed to be adjacently+ allocated (this is not guaranteed to occur with multiple callocs or+ mallocs), which may also improve cache locality in some+ applications.++ The "chunks" argument is optional (i.e., may be null, which is+ probably the most typical usage). If it is null, the returned array+ is itself dynamically allocated and should also be freed when it is+ no longer needed. Otherwise, the chunks array must be of at least+ n_elements in length. It is filled in with the pointers to the+ chunks.++ In either case, independent_calloc returns this pointer array, or+ null if the allocation failed. If n_elements is zero and "chunks"+ is null, it returns a chunk representing an array with zero elements+ (which should be freed if not wanted).++ Each element must be freed when it is no longer needed. This can be+ done all at once using bulk_free.++ independent_calloc simplifies and speeds up implementations of many+ kinds of pools. It may also be useful when constructing large data+ structures that initially have a fixed number of fixed-sized nodes,+ but the number is not known at compile time, and some of the nodes+ may later need to be freed. For example:++ struct Node { int item; struct Node* next; };++ struct Node* build_list() {+ struct Node** pool;+ int n = read_number_of_nodes_needed();+ if (n <= 0) return 0;+ pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0);+ if (pool == 0) die();+ // organize into a linked list...+ struct Node* first = pool[0];+ for (i = 0; i < n-1; ++i)+ pool[i]->next = pool[i+1];+ free(pool); // Can now free the array (or not, if it is needed later)+ return first;+ }+*/+DLMALLOC_EXPORT void** dlindependent_calloc(size_t, size_t, void**);++/*+ independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]);++ independent_comalloc allocates, all at once, a set of n_elements+ chunks with sizes indicated in the "sizes" array. It returns+ an array of pointers to these elements, each of which can be+ independently freed, realloc'ed etc. The elements are guaranteed to+ be adjacently allocated (this is not guaranteed to occur with+ multiple callocs or mallocs), which may also improve cache locality+ in some applications.++ The "chunks" argument is optional (i.e., may be null). If it is null+ the returned array is itself dynamically allocated and should also+ be freed when it is no longer needed. Otherwise, the chunks array+ must be of at least n_elements in length. It is filled in with the+ pointers to the chunks.++ In either case, independent_comalloc returns this pointer array, or+ null if the allocation failed. If n_elements is zero and chunks is+ null, it returns a chunk representing an array with zero elements+ (which should be freed if not wanted).++ Each element must be freed when it is no longer needed. This can be+ done all at once using bulk_free.++ independent_comallac differs from independent_calloc in that each+ element may have a different size, and also that it does not+ automatically clear elements.++ independent_comalloc can be used to speed up allocation in cases+ where several structs or objects must always be allocated at the+ same time. For example:++ struct Head { ... }+ struct Foot { ... }++ void send_message(char* msg) {+ int msglen = strlen(msg);+ size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) };+ void* chunks[3];+ if (independent_comalloc(3, sizes, chunks) == 0)+ die();+ struct Head* head = (struct Head*)(chunks[0]);+ char* body = (char*)(chunks[1]);+ struct Foot* foot = (struct Foot*)(chunks[2]);+ // ...+ }++ In general though, independent_comalloc is worth using only for+ larger values of n_elements. For small values, you probably won't+ detect enough difference from series of malloc calls to bother.++ Overuse of independent_comalloc can increase overall memory usage,+ since it cannot reuse existing noncontiguous small chunks that+ might be available for some of the elements.+*/+DLMALLOC_EXPORT void** dlindependent_comalloc(size_t, size_t*, void**);++/*+ bulk_free(void* array[], size_t n_elements)+ Frees and clears (sets to null) each non-null pointer in the given+ array. This is likely to be faster than freeing them one-by-one.+ If footers are used, pointers that have been allocated in different+ mspaces are not freed or cleared, and the count of all such pointers+ is returned. For large arrays of pointers with poor locality, it+ may be worthwhile to sort this array before calling bulk_free.+*/+DLMALLOC_EXPORT size_t dlbulk_free(void**, size_t n_elements);++/*+ pvalloc(size_t n);+ Equivalent to valloc(minimum-page-that-holds(n)), that is,+ round up n to nearest pagesize.+ */+DLMALLOC_EXPORT void* dlpvalloc(size_t);++/*+ malloc_trim(size_t pad);++ If possible, gives memory back to the system (via negative arguments+ to sbrk) if there is unused memory at the `high' end of the malloc+ pool or in unused MMAP segments. You can call this after freeing+ large blocks of memory to potentially reduce the system-level memory+ requirements of a program. However, it cannot guarantee to reduce+ memory. Under some allocation patterns, some large free blocks of+ memory will be locked between two used chunks, so they cannot be+ given back to the system.++ The `pad' argument to malloc_trim represents the amount of free+ trailing space to leave untrimmed. If this argument is zero, only+ the minimum amount of memory to maintain internal data structures+ will be left. Non-zero arguments can be supplied to maintain enough+ trailing space to service future expected allocations without having+ to re-obtain memory from the system.++ Malloc_trim returns 1 if it actually released any memory, else 0.+*/+DLMALLOC_EXPORT int dlmalloc_trim(size_t);++/*+ malloc_stats();+ Prints on stderr the amount of space obtained from the system (both+ via sbrk and mmap), the maximum amount (which may be more than+ current if malloc_trim and/or munmap got called), and the current+ number of bytes allocated via malloc (or realloc, etc) but not yet+ freed. Note that this is the number of bytes allocated, not the+ number requested. It will be larger than the number requested+ because of alignment and bookkeeping overhead. Because it includes+ alignment wastage as being in use, this figure may be greater than+ zero even when no user-level chunks are allocated.++ The reported current and maximum system memory can be inaccurate if+ a program makes other calls to system memory allocation functions+ (normally sbrk) outside of malloc.++ malloc_stats prints only the most commonly interesting statistics.+ More information can be obtained by calling mallinfo.+*/+DLMALLOC_EXPORT void dlmalloc_stats(void);++/*+ malloc_usable_size(void* p);++ Returns the number of bytes you can actually use in+ an allocated chunk, which may be more than you requested (although+ often not) due to alignment and minimum size constraints.+ You can use this many bytes without worrying about+ overwriting other allocated objects. This is not a particularly great+ programming practice. malloc_usable_size can be more useful in+ debugging and assertions, for example:++ p = malloc(n);+ assert(malloc_usable_size(p) >= 256);+*/+size_t dlmalloc_usable_size(void*);++#endif /* ONLY_MSPACES */++#if MSPACES++/*+ mspace is an opaque type representing an independent+ region of space that supports mspace_malloc, etc.+*/+typedef void* mspace;++/*+ create_mspace creates and returns a new independent space with the+ given initial capacity, or, if 0, the default granularity size. It+ returns null if there is no system memory available to create the+ space. If argument locked is non-zero, the space uses a separate+ lock to control access. The capacity of the space will grow+ dynamically as needed to service mspace_malloc requests. You can+ control the sizes of incremental increases of this space by+ compiling with a different DEFAULT_GRANULARITY or dynamically+ setting with mallopt(M_GRANULARITY, value).+*/+DLMALLOC_EXPORT mspace create_mspace(size_t capacity, int locked);++/*+ destroy_mspace destroys the given space, and attempts to return all+ of its memory back to the system, returning the total number of+ bytes freed. After destruction, the results of access to all memory+ used by the space become undefined.+*/+DLMALLOC_EXPORT size_t destroy_mspace(mspace msp);++/*+ create_mspace_with_base uses the memory supplied as the initial base+ of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this+ space is used for bookkeeping, so the capacity must be at least this+ large. (Otherwise 0 is returned.) When this initial space is+ exhausted, additional memory will be obtained from the system.+ Destroying this space will deallocate all additionally allocated+ space (if possible) but not the initial base.+*/+DLMALLOC_EXPORT mspace create_mspace_with_base(void* base, size_t capacity, int locked);++/*+ mspace_track_large_chunks controls whether requests for large chunks+ are allocated in their own untracked mmapped regions, separate from+ others in this mspace. By default large chunks are not tracked,+ which reduces fragmentation. However, such chunks are not+ necessarily released to the system upon destroy_mspace. Enabling+ tracking by setting to true may increase fragmentation, but avoids+ leakage when relying on destroy_mspace to release all memory+ allocated using this space. The function returns the previous+ setting.+*/+DLMALLOC_EXPORT int mspace_track_large_chunks(mspace msp, int enable);+++/*+ mspace_malloc behaves as malloc, but operates within+ the given space.+*/+DLMALLOC_EXPORT void* mspace_malloc(mspace msp, size_t bytes);++/*+ mspace_free behaves as free, but operates within+ the given space.++ If compiled with FOOTERS==1, mspace_free is not actually needed.+ free may be called instead of mspace_free because freed chunks from+ any space are handled by their originating spaces.+*/+DLMALLOC_EXPORT void mspace_free(mspace msp, void* mem);++/*+ mspace_realloc behaves as realloc, but operates within+ the given space.++ If compiled with FOOTERS==1, mspace_realloc is not actually+ needed. realloc may be called instead of mspace_realloc because+ realloced chunks from any space are handled by their originating+ spaces.+*/+DLMALLOC_EXPORT void* mspace_realloc(mspace msp, void* mem, size_t newsize);++/*+ mspace_calloc behaves as calloc, but operates within+ the given space.+*/+DLMALLOC_EXPORT void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size);++/*+ mspace_memalign behaves as memalign, but operates within+ the given space.+*/+DLMALLOC_EXPORT void* mspace_memalign(mspace msp, size_t alignment, size_t bytes);++/*+ mspace_independent_calloc behaves as independent_calloc, but+ operates within the given space.+*/+DLMALLOC_EXPORT void** mspace_independent_calloc(mspace msp, size_t n_elements,+ size_t elem_size, void* chunks[]);++/*+ mspace_independent_comalloc behaves as independent_comalloc, but+ operates within the given space.+*/+DLMALLOC_EXPORT void** mspace_independent_comalloc(mspace msp, size_t n_elements,+ size_t sizes[], void* chunks[]);++/*+ mspace_footprint() returns the number of bytes obtained from the+ system for this space.+*/+DLMALLOC_EXPORT size_t mspace_footprint(mspace msp);++/*+ mspace_max_footprint() returns the peak number of bytes obtained from the+ system for this space.+*/+DLMALLOC_EXPORT size_t mspace_max_footprint(mspace msp);+++#if !NO_MALLINFO+/*+ mspace_mallinfo behaves as mallinfo, but reports properties of+ the given space.+*/+DLMALLOC_EXPORT struct mallinfo mspace_mallinfo(mspace msp);+#endif /* NO_MALLINFO */++/*+ malloc_usable_size(void* p) behaves the same as malloc_usable_size;+*/+DLMALLOC_EXPORT size_t mspace_usable_size(const void* mem);++/*+ mspace_malloc_stats behaves as malloc_stats, but reports+ properties of the given space.+*/+DLMALLOC_EXPORT void mspace_malloc_stats(mspace msp);++/*+ mspace_trim behaves as malloc_trim, but+ operates within the given space.+*/+DLMALLOC_EXPORT int mspace_trim(mspace msp, size_t pad);++/*+ An alias for mallopt.+*/+DLMALLOC_EXPORT int mspace_mallopt(int, int);++#endif /* MSPACES */++#ifdef __cplusplus+} /* end of extern "C" */+#endif /* __cplusplus */++/*+ ========================================================================+ To make a fully customizable malloc.h header file, cut everything+ above this line, put into file malloc.h, edit to suit, and #include it+ on the next line, as well as in programs that use this malloc.+ ========================================================================+*/++/* #include "malloc.h" */++/*------------------------------ internal #includes ---------------------- */++#ifdef _MSC_VER+#pragma warning( disable : 4146 ) /* no "unsigned" warnings */+#endif /* _MSC_VER */+#if !NO_MALLOC_STATS+#include <stdio.h> /* for printing in malloc_stats */+#endif /* NO_MALLOC_STATS */+#ifndef LACKS_ERRNO_H+#include <errno.h> /* for MALLOC_FAILURE_ACTION */+#endif /* LACKS_ERRNO_H */+#ifdef DEBUG+#if ABORT_ON_ASSERT_FAILURE+#undef assert+#define assert(x) if(!(x)) ABORT+#else /* ABORT_ON_ASSERT_FAILURE */+#include <assert.h>+#endif /* ABORT_ON_ASSERT_FAILURE */+#else /* DEBUG */+#ifndef assert+#define assert(x)+#endif+#define DEBUG 0+#endif /* DEBUG */+#if !defined(WIN32) && !defined(LACKS_TIME_H)+#include <time.h> /* for magic initialization */+#endif /* WIN32 */+#ifndef LACKS_STDLIB_H+#include <stdlib.h> /* for abort() */+#endif /* LACKS_STDLIB_H */+#ifndef LACKS_STRING_H+#include <string.h> /* for memset etc */+#endif /* LACKS_STRING_H */+#if USE_BUILTIN_FFS+#ifndef LACKS_STRINGS_H+#include <strings.h> /* for ffs */+#endif /* LACKS_STRINGS_H */+#endif /* USE_BUILTIN_FFS */+#if HAVE_MMAP+#ifndef LACKS_SYS_MMAN_H+/* On some versions of linux, mremap decl in mman.h needs __USE_GNU set */+#if (defined(linux) && !defined(__USE_GNU))+#define __USE_GNU 1+#include <sys/mman.h> /* for mmap */+#undef __USE_GNU+#else+#include <sys/mman.h> /* for mmap */+#endif /* linux */+#endif /* LACKS_SYS_MMAN_H */+#ifndef LACKS_FCNTL_H+#include <fcntl.h>+#endif /* LACKS_FCNTL_H */+#endif /* HAVE_MMAP */+#ifndef LACKS_UNISTD_H+#include <unistd.h> /* for sbrk, sysconf */+#else /* LACKS_UNISTD_H */+#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)+extern void* sbrk(ptrdiff_t);+#endif /* FreeBSD etc */+#endif /* LACKS_UNISTD_H */++/* Declarations for locking */+#if USE_LOCKS+#ifndef WIN32+#if defined (__SVR4) && defined (__sun) /* solaris */+#include <thread.h>+#elif !defined(LACKS_SCHED_H)+#include <sched.h>+#endif /* solaris or LACKS_SCHED_H */+#if (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0) || !USE_SPIN_LOCKS+#include <pthread.h>+#endif /* USE_RECURSIVE_LOCKS ... */+#elif defined(_MSC_VER)+#ifndef _M_AMD64+/* These are already defined on AMD64 builds */+#ifdef __cplusplus+extern "C" {+#endif /* __cplusplus */+LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp);+LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);+#ifdef __cplusplus+}+#endif /* __cplusplus */+#endif /* _M_AMD64 */+#pragma intrinsic (_InterlockedCompareExchange)+#pragma intrinsic (_InterlockedExchange)+#define interlockedcompareexchange _InterlockedCompareExchange+#define interlockedexchange _InterlockedExchange+#elif defined(WIN32) && defined(__GNUC__)+#define interlockedcompareexchange(a, b, c) __sync_val_compare_and_swap(a, c, b)+#define interlockedexchange __sync_lock_test_and_set+#endif /* Win32 */+#else /* USE_LOCKS */+#endif /* USE_LOCKS */++#ifndef LOCK_AT_FORK+#define LOCK_AT_FORK 0+#endif++/* Declarations for bit scanning on win32 */+#if defined(_MSC_VER) && _MSC_VER>=1300+#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */+#ifdef __cplusplus+extern "C" {+#endif /* __cplusplus */+unsigned char _BitScanForward(unsigned long *index, unsigned long mask);+unsigned char _BitScanReverse(unsigned long *index, unsigned long mask);+#ifdef __cplusplus+}+#endif /* __cplusplus */++#define BitScanForward _BitScanForward+#define BitScanReverse _BitScanReverse+#pragma intrinsic(_BitScanForward)+#pragma intrinsic(_BitScanReverse)+#endif /* BitScanForward */+#endif /* defined(_MSC_VER) && _MSC_VER>=1300 */++#ifndef WIN32+#ifndef malloc_getpagesize+# ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */+# ifndef _SC_PAGE_SIZE+# define _SC_PAGE_SIZE _SC_PAGESIZE+# endif+# endif+# ifdef _SC_PAGE_SIZE+# define malloc_getpagesize sysconf(_SC_PAGE_SIZE)+# else+# if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE)+ extern size_t getpagesize();+# define malloc_getpagesize getpagesize()+# else+# ifdef WIN32 /* use supplied emulation of getpagesize */+# define malloc_getpagesize getpagesize()+# else+# ifndef LACKS_SYS_PARAM_H+# include <sys/param.h>+# endif+# ifdef EXEC_PAGESIZE+# define malloc_getpagesize EXEC_PAGESIZE+# else+# ifdef NBPG+# ifndef CLSIZE+# define malloc_getpagesize NBPG+# else+# define malloc_getpagesize (NBPG * CLSIZE)+# endif+# else+# ifdef NBPC+# define malloc_getpagesize NBPC+# else+# ifdef PAGESIZE+# define malloc_getpagesize PAGESIZE+# else /* just guess */+# define malloc_getpagesize ((size_t)4096U)+# endif+# endif+# endif+# endif+# endif+# endif+# endif+#endif+#endif++/* libffi: the upstream malloc_getpagesize definition above is gated on+ !WIN32 (WIN32 builds use GetSystemInfo in init_mparams instead). Guarantee+ the symbol is always defined so the !WIN32 init_mparams branch still compiles+ on toolchains where it is not preprocessed out as expected (e.g. MSVC). */+#ifndef malloc_getpagesize+#define malloc_getpagesize ((size_t)4096U)+#endif++/* ------------------- size_t and alignment properties -------------------- */++/* The byte and bit size of a size_t */+#define SIZE_T_SIZE (sizeof(size_t))+#define SIZE_T_BITSIZE (sizeof(size_t) << 3)++/* Some constants coerced to size_t */+/* Annoying but necessary to avoid errors on some platforms */+#define SIZE_T_ZERO ((size_t)0)+#define SIZE_T_ONE ((size_t)1)+#define SIZE_T_TWO ((size_t)2)+#define SIZE_T_FOUR ((size_t)4)+#define TWO_SIZE_T_SIZES (SIZE_T_SIZE<<1)+#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE<<2)+#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES+TWO_SIZE_T_SIZES)+#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U)++/* The bit mask value corresponding to MALLOC_ALIGNMENT */+#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE)++/* True if address a has acceptable alignment */+#define is_aligned(A) (((size_t)((A)) & (CHUNK_ALIGN_MASK)) == 0)++/* the number of bytes to offset an address to align it */+#define align_offset(A)\+ ((((size_t)(A) & CHUNK_ALIGN_MASK) == 0)? 0 :\+ ((MALLOC_ALIGNMENT - ((size_t)(A) & CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK))++/* -------------------------- MMAP preliminaries ------------------------- */++/*+ If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and+ checks to fail so compiler optimizer can delete code rather than+ using so many "#if"s.+*/+++/* MORECORE and MMAP must return MFAIL on failure */+#define MFAIL ((void*)(MAX_SIZE_T))+#define CMFAIL ((char*)(MFAIL)) /* defined for convenience */++#if HAVE_MMAP++#if !defined(WIN32) && !defined (__OS2__)+#define MUNMAP_DEFAULT(a, s) munmap((a), (s))+#define MMAP_PROT (PROT_READ|PROT_WRITE)+#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)+#define MAP_ANONYMOUS MAP_ANON+#endif /* MAP_ANON */+#ifdef MAP_ANONYMOUS+#define MMAP_FLAGS (MAP_PRIVATE|MAP_ANONYMOUS)+#define MMAP_DEFAULT(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0)+#else /* MAP_ANONYMOUS */+/*+ Nearly all versions of mmap support MAP_ANONYMOUS, so the following+ is unlikely to be needed, but is supplied just in case.+*/+#define MMAP_FLAGS (MAP_PRIVATE)+static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */+#define MMAP_DEFAULT(s) ((dev_zero_fd < 0) ? \+ (dev_zero_fd = open("/dev/zero", O_RDWR), \+ mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \+ mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0))+#endif /* MAP_ANONYMOUS */++#define DIRECT_MMAP_DEFAULT(s) MMAP_DEFAULT(s)++#elif defined(__OS2__)++/* OS/2 MMAP via DosAllocMem */+static void* os2mmap(size_t size) {+ void* ptr;+ if (DosAllocMem(&ptr, size, OBJ_ANY|PAG_COMMIT|PAG_READ|PAG_WRITE) &&+ DosAllocMem(&ptr, size, PAG_COMMIT|PAG_READ|PAG_WRITE))+ return MFAIL;+ return ptr;+}++#define os2direct_mmap(n) os2mmap(n)++/* This function supports releasing coalesed segments */+static int os2munmap(void* ptr, size_t size) {+ while (size) {+ ULONG ulSize = size;+ ULONG ulFlags = 0;+ if (DosQueryMem(ptr, &ulSize, &ulFlags) != 0)+ return -1;+ if ((ulFlags & PAG_BASE) == 0 ||(ulFlags & PAG_COMMIT) == 0 ||+ ulSize > size)+ return -1;+ if (DosFreeMem(ptr) != 0)+ return -1;+ ptr = ( void * ) ( ( char * ) ptr + ulSize );+ size -= ulSize;+ }+ return 0;+}++#define MMAP_DEFAULT(s) os2mmap(s)+#define MUNMAP_DEFAULT(a, s) os2munmap((a), (s))+#define DIRECT_MMAP_DEFAULT(s) os2direct_mmap(s)++#else /* WIN32 */++/* Win32 MMAP via VirtualAlloc */+/* libffi: plain static (not FORCEINLINE) -- mingw's <windows.h> defines+ FORCEINLINE with an 'extern' storage class, which clashes with 'static'. */+static void* win32mmap(size_t size) {+ void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT, PAGE_EXECUTE_READWRITE);+ return (ptr != 0)? ptr: MFAIL;+}++/* For direct MMAP, use MEM_TOP_DOWN to minimize interference */+static void* win32direct_mmap(size_t size) {+ void* ptr = VirtualAlloc(0, size, MEM_RESERVE|MEM_COMMIT|MEM_TOP_DOWN,+ PAGE_EXECUTE_READWRITE);+ return (ptr != 0)? ptr: MFAIL;+}++/* This function supports releasing coalesed segments */+static int win32munmap(void* ptr, size_t size) {+ MEMORY_BASIC_INFORMATION minfo;+ char* cptr = (char*)ptr;+ while (size) {+ if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0)+ return -1;+ if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr ||+ minfo.State != MEM_COMMIT || minfo.RegionSize > size)+ return -1;+ if (VirtualFree(cptr, 0, MEM_RELEASE) == 0)+ return -1;+ cptr += minfo.RegionSize;+ size -= minfo.RegionSize;+ }+ return 0;+}++#define MMAP_DEFAULT(s) win32mmap(s)+#define MUNMAP_DEFAULT(a, s) win32munmap((a), (s))+#define DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s)+#endif /* WIN32 */+#endif /* HAVE_MMAP */++#if HAVE_MREMAP+#ifndef WIN32+#define MREMAP_DEFAULT(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv))+#endif /* WIN32 */+#endif /* HAVE_MREMAP */++/**+ * Define CALL_MORECORE+ */+#if HAVE_MORECORE+ #ifdef MORECORE+ #define CALL_MORECORE(S) MORECORE(S)+ #else /* MORECORE */+ #define CALL_MORECORE(S) MORECORE_DEFAULT(S)+ #endif /* MORECORE */+#else /* HAVE_MORECORE */+ #define CALL_MORECORE(S) MFAIL+#endif /* HAVE_MORECORE */++/**+ * Define CALL_MMAP/CALL_MUNMAP/CALL_DIRECT_MMAP+ */+#if HAVE_MMAP+ #define USE_MMAP_BIT (SIZE_T_ONE)++ #ifdef MMAP+ #define CALL_MMAP(s) MMAP(s)+ #else /* MMAP */+ #define CALL_MMAP(s) MMAP_DEFAULT(s)+ #endif /* MMAP */+ #ifdef MUNMAP+ #define CALL_MUNMAP(a, s) MUNMAP((a), (s))+ #else /* MUNMAP */+ #define CALL_MUNMAP(a, s) MUNMAP_DEFAULT((a), (s))+ #endif /* MUNMAP */+ #ifdef DIRECT_MMAP+ #define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s)+ #else /* DIRECT_MMAP */+ #define CALL_DIRECT_MMAP(s) DIRECT_MMAP_DEFAULT(s)+ #endif /* DIRECT_MMAP */+#else /* HAVE_MMAP */+ #define USE_MMAP_BIT (SIZE_T_ZERO)++ #define MMAP(s) MFAIL+ #define MUNMAP(a, s) (-1)+ #define DIRECT_MMAP(s) MFAIL+ #define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s)+ #define CALL_MMAP(s) MMAP(s)+ #define CALL_MUNMAP(a, s) MUNMAP((a), (s))+#endif /* HAVE_MMAP */++/**+ * Define CALL_MREMAP+ */+#if HAVE_MMAP && HAVE_MREMAP+ #ifdef MREMAP+ #define CALL_MREMAP(addr, osz, nsz, mv) MREMAP((addr), (osz), (nsz), (mv))+ #else /* MREMAP */+ #define CALL_MREMAP(addr, osz, nsz, mv) MREMAP_DEFAULT((addr), (osz), (nsz), (mv))+ #endif /* MREMAP */+#else /* HAVE_MMAP && HAVE_MREMAP */+ #define CALL_MREMAP(addr, osz, nsz, mv) MFAIL+#endif /* HAVE_MMAP && HAVE_MREMAP */++/* mstate bit set if contiguous morecore disabled or failed */+#define USE_NONCONTIGUOUS_BIT (4U)++/* segment bit set in create_mspace_with_base */+#define EXTERN_BIT (8U)+++/* --------------------------- Lock preliminaries ------------------------ */++/*+ When locks are defined, there is one global lock, plus+ one per-mspace lock.++ The global lock_ensures that mparams.magic and other unique+ mparams values are initialized only once. It also protects+ sequences of calls to MORECORE. In many cases sys_alloc requires+ two calls, that should not be interleaved with calls by other+ threads. This does not protect against direct calls to MORECORE+ by other threads not using this lock, so there is still code to+ cope the best we can on interference.++ Per-mspace locks surround calls to malloc, free, etc.+ By default, locks are simple non-reentrant mutexes.++ Because lock-protected regions generally have bounded times, it is+ OK to use the supplied simple spinlocks. Spinlocks are likely to+ improve performance for lightly contended applications, but worsen+ performance under heavy contention.++ If USE_LOCKS is > 1, the definitions of lock routines here are+ bypassed, in which case you will need to define the type MLOCK_T,+ and at least INITIAL_LOCK, DESTROY_LOCK, ACQUIRE_LOCK, RELEASE_LOCK+ and TRY_LOCK. You must also declare a+ static MLOCK_T malloc_global_mutex = { initialization values };.++*/++#if !USE_LOCKS+#define USE_LOCK_BIT (0U)+#define INITIAL_LOCK(l) (0)+#define DESTROY_LOCK(l) (0)+#define ACQUIRE_MALLOC_GLOBAL_LOCK()+#define RELEASE_MALLOC_GLOBAL_LOCK()++#else+#if USE_LOCKS > 1+/* ----------------------- User-defined locks ------------------------ */+/* Define your own lock implementation here */+/* #define INITIAL_LOCK(lk) ... */+/* #define DESTROY_LOCK(lk) ... */+/* #define ACQUIRE_LOCK(lk) ... */+/* #define RELEASE_LOCK(lk) ... */+/* #define TRY_LOCK(lk) ... */+/* static MLOCK_T malloc_global_mutex = ... */++#elif USE_SPIN_LOCKS++/* First, define CAS_LOCK and CLEAR_LOCK on ints */+/* Note CAS_LOCK defined to return 0 on success */++#if defined(__GNUC__)&& (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))+#define CAS_LOCK(sl) __sync_lock_test_and_set(sl, 1)+#define CLEAR_LOCK(sl) __sync_lock_release(sl)++#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))+/* Custom spin locks for older gcc on x86 */+static FORCEINLINE int x86_cas_lock(int *sl) {+ int ret;+ int val = 1;+ int cmp = 0;+ __asm__ __volatile__ ("lock; cmpxchgl %1, %2"+ : "=a" (ret)+ : "r" (val), "m" (*(sl)), "0"(cmp)+ : "memory", "cc");+ return ret;+}++static FORCEINLINE void x86_clear_lock(int* sl) {+ assert(*sl != 0);+ int prev = 0;+ int ret;+ __asm__ __volatile__ ("lock; xchgl %0, %1"+ : "=r" (ret)+ : "m" (*(sl)), "0"(prev)+ : "memory");+}++#define CAS_LOCK(sl) x86_cas_lock(sl)+#define CLEAR_LOCK(sl) x86_clear_lock(sl)++#else /* Win32 MSC */+#define CAS_LOCK(sl) interlockedexchange(sl, (LONG)1)+#define CLEAR_LOCK(sl) interlockedexchange (sl, (LONG)0)++#endif /* ... gcc spins locks ... */++/* How to yield for a spin lock */+#define SPINS_PER_YIELD 63+#if defined(_MSC_VER)+#define SLEEP_EX_DURATION 50 /* delay for yield/sleep */+#define SPIN_LOCK_YIELD SleepEx(SLEEP_EX_DURATION, FALSE)+#elif defined (__SVR4) && defined (__sun) /* solaris */+#define SPIN_LOCK_YIELD thr_yield();+#elif !defined(LACKS_SCHED_H)+#define SPIN_LOCK_YIELD sched_yield();+#else+#define SPIN_LOCK_YIELD+#endif /* ... yield ... */++/* libffi: read the spin-lock word with a relaxed atomic load for the lock-free+ "is it held?" peek, so ThreadSanitizer does not flag it as racing with the+ atomic CLEAR_LOCK release on unlock. Relaxed ordering is sufficient: the+ peek is only a hint to avoid a costly CAS, and CAS_LOCK still provides the+ acquire ordering on success. Falls back to the original volatile read when+ atomic builtins are unavailable. */+#if defined(__ATOMIC_RELAXED)+# define ffi_spin_peek(sl) __atomic_load_n((sl), __ATOMIC_RELAXED)+#elif defined(_MSC_VER)+# define ffi_spin_peek(sl) \+ ((int)_InterlockedCompareExchange((LONG volatile *)(sl), (LONG)0, (LONG)0))+#else+# define ffi_spin_peek(sl) (*(volatile int *)(sl))+#endif++#if !defined(USE_RECURSIVE_LOCKS) || USE_RECURSIVE_LOCKS == 0+/* Plain spin locks use single word (embedded in malloc_states) */+static int spin_acquire_lock(int *sl) {+ int spins = 0;+ while (ffi_spin_peek(sl) != 0 || CAS_LOCK(sl)) {+ if ((++spins & SPINS_PER_YIELD) == 0) {+ SPIN_LOCK_YIELD;+ }+ }+ return 0;+}++#define MLOCK_T int+#define TRY_LOCK(sl) !CAS_LOCK(sl)+#define RELEASE_LOCK(sl) CLEAR_LOCK(sl)+#define ACQUIRE_LOCK(sl) (CAS_LOCK(sl)? spin_acquire_lock(sl) : 0)+#define INITIAL_LOCK(sl) (*sl = 0)+#define DESTROY_LOCK(sl) (0)+static MLOCK_T malloc_global_mutex = 0;++#else /* USE_RECURSIVE_LOCKS */+/* types for lock owners */+#ifdef WIN32+#define THREAD_ID_T DWORD+#define CURRENT_THREAD GetCurrentThreadId()+#define EQ_OWNER(X,Y) ((X) == (Y))+#else+/*+ Note: the following assume that pthread_t is a type that can be+ initialized to (casted) zero. If this is not the case, you will need to+ somehow redefine these or not use spin locks.+*/+#define THREAD_ID_T pthread_t+#define CURRENT_THREAD pthread_self()+#define EQ_OWNER(X,Y) pthread_equal(X, Y)+#endif++struct malloc_recursive_lock {+ int sl;+ unsigned int c;+ THREAD_ID_T threadid;+};++#define MLOCK_T struct malloc_recursive_lock+static MLOCK_T malloc_global_mutex = { 0, 0, (THREAD_ID_T)0};++static FORCEINLINE void recursive_release_lock(MLOCK_T *lk) {+ assert(lk->sl != 0);+ if (--lk->c == 0) {+ CLEAR_LOCK(&lk->sl);+ }+}++static FORCEINLINE int recursive_acquire_lock(MLOCK_T *lk) {+ THREAD_ID_T mythreadid = CURRENT_THREAD;+ int spins = 0;+ for (;;) {+ if (ffi_spin_peek(&lk->sl) == 0) {+ if (!CAS_LOCK(&lk->sl)) {+ lk->threadid = mythreadid;+ lk->c = 1;+ return 0;+ }+ }+ else if (EQ_OWNER(lk->threadid, mythreadid)) {+ ++lk->c;+ return 0;+ }+ if ((++spins & SPINS_PER_YIELD) == 0) {+ SPIN_LOCK_YIELD;+ }+ }+}++static FORCEINLINE int recursive_try_lock(MLOCK_T *lk) {+ THREAD_ID_T mythreadid = CURRENT_THREAD;+ if (ffi_spin_peek(&lk->sl) == 0) {+ if (!CAS_LOCK(&lk->sl)) {+ lk->threadid = mythreadid;+ lk->c = 1;+ return 1;+ }+ }+ else if (EQ_OWNER(lk->threadid, mythreadid)) {+ ++lk->c;+ return 1;+ }+ return 0;+}++#define RELEASE_LOCK(lk) recursive_release_lock(lk)+#define TRY_LOCK(lk) recursive_try_lock(lk)+#define ACQUIRE_LOCK(lk) recursive_acquire_lock(lk)+#define INITIAL_LOCK(lk) ((lk)->threadid = (THREAD_ID_T)0, (lk)->sl = 0, (lk)->c = 0)+#define DESTROY_LOCK(lk) (0)+#endif /* USE_RECURSIVE_LOCKS */++#elif defined(WIN32) /* Win32 critical sections */+#define MLOCK_T CRITICAL_SECTION+#define ACQUIRE_LOCK(lk) (EnterCriticalSection(lk), 0)+#define RELEASE_LOCK(lk) LeaveCriticalSection(lk)+#define TRY_LOCK(lk) TryEnterCriticalSection(lk)+#define INITIAL_LOCK(lk) (!InitializeCriticalSectionAndSpinCount((lk), 0x80000000|4000))+#define DESTROY_LOCK(lk) (DeleteCriticalSection(lk), 0)+#define NEED_GLOBAL_LOCK_INIT++static MLOCK_T malloc_global_mutex;+static volatile LONG malloc_global_mutex_status;++/* Use spin loop to initialize global lock */+static void init_malloc_global_mutex() {+ for (;;) {+ long stat = malloc_global_mutex_status;+ if (stat > 0)+ return;+ /* transition to < 0 while initializing, then to > 0) */+ if (stat == 0 &&+ interlockedcompareexchange(&malloc_global_mutex_status, (LONG)-1, (LONG)0) == 0) {+ InitializeCriticalSection(&malloc_global_mutex);+ interlockedexchange(&malloc_global_mutex_status, (LONG)1);+ return;+ }+ SleepEx(0, FALSE);+ }+}++#else /* pthreads-based locks */+#define MLOCK_T pthread_mutex_t+#define ACQUIRE_LOCK(lk) pthread_mutex_lock(lk)+#define RELEASE_LOCK(lk) pthread_mutex_unlock(lk)+#define TRY_LOCK(lk) (!pthread_mutex_trylock(lk))+#define INITIAL_LOCK(lk) pthread_init_lock(lk)+#define DESTROY_LOCK(lk) pthread_mutex_destroy(lk)++#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0 && defined(linux) && !defined(PTHREAD_MUTEX_RECURSIVE)+/* Cope with old-style linux recursive lock initialization by adding */+/* skipped internal declaration from pthread.h */+extern int pthread_mutexattr_setkind_np __P ((pthread_mutexattr_t *__attr,+ int __kind));+#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP+#define pthread_mutexattr_settype(x,y) pthread_mutexattr_setkind_np(x,y)+#endif /* USE_RECURSIVE_LOCKS ... */++static MLOCK_T malloc_global_mutex = PTHREAD_MUTEX_INITIALIZER;++static int pthread_init_lock (MLOCK_T *lk) {+ pthread_mutexattr_t attr;+ if (pthread_mutexattr_init(&attr)) return 1;+#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0+ if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1;+#endif+ if (pthread_mutex_init(lk, &attr)) return 1;+ if (pthread_mutexattr_destroy(&attr)) return 1;+ return 0;+}++#endif /* ... lock types ... */++/* Common code for all lock types */+#define USE_LOCK_BIT (2U)++#ifndef ACQUIRE_MALLOC_GLOBAL_LOCK+#define ACQUIRE_MALLOC_GLOBAL_LOCK() ACQUIRE_LOCK(&malloc_global_mutex);+#endif++#ifndef RELEASE_MALLOC_GLOBAL_LOCK+#define RELEASE_MALLOC_GLOBAL_LOCK() RELEASE_LOCK(&malloc_global_mutex);+#endif++#endif /* USE_LOCKS */++/* ----------------------- Chunk representations ------------------------ */++/*+ (The following includes lightly edited explanations by Colin Plumb.)++ The malloc_chunk declaration below is misleading (but accurate and+ necessary). It declares a "view" into memory allowing access to+ necessary fields at known offsets from a given base.++ Chunks of memory are maintained using a `boundary tag' method as+ originally described by Knuth. (See the paper by Paul Wilson+ ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a survey of such+ techniques.) Sizes of free chunks are stored both in the front of+ each chunk and at the end. This makes consolidating fragmented+ chunks into bigger chunks fast. The head fields also hold bits+ representing whether chunks are free or in use.++ Here are some pictures to make it clearer. They are "exploded" to+ show that the state of a chunk can be thought of as extending from+ the high 31 bits of the head field of its header through the+ prev_foot and PINUSE_BIT bit of the following chunk header.++ A chunk that's in use looks like:++ chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Size of previous chunk (if P = 0) |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|+ | Size of this chunk 1| +-++ mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | |+ +- -++ | |+ +- -++ | :+ +- size - sizeof(size_t) available payload bytes -++ : |+ chunk-> +- -++ | |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|+ | Size of next chunk (may or may not be in use) | +-++ mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++ And if it's free, it looks like this:++ chunk-> +- -++ | User payload (must be in use, or we would have merged!) |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|+ | Size of this chunk 0| +-++ mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Next pointer |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Prev pointer |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | :+ +- size - sizeof(struct chunk) unused bytes -++ : |+ chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Size of this chunk |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|+ | Size of next chunk (must be in use, or we would have merged)| +-++ mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | :+ +- User payload -++ : |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ |0|+ +-++ Note that since we always merge adjacent free chunks, the chunks+ adjacent to a free chunk must be in use.++ Given a pointer to a chunk (which can be derived trivially from the+ payload pointer) we can, in O(1) time, find out whether the adjacent+ chunks are free, and if so, unlink them from the lists that they+ are on and merge them with the current chunk.++ Chunks always begin on even word boundaries, so the mem portion+ (which is returned to the user) is also on an even word boundary, and+ thus at least double-word aligned.++ The P (PINUSE_BIT) bit, stored in the unused low-order bit of the+ chunk size (which is always a multiple of two words), is an in-use+ bit for the *previous* chunk. If that bit is *clear*, then the+ word before the current chunk size contains the previous chunk+ size, and can be used to find the front of the previous chunk.+ The very first chunk allocated always has this bit set, preventing+ access to non-existent (or non-owned) memory. If pinuse is set for+ any given chunk, then you CANNOT determine the size of the+ previous chunk, and might even get a memory addressing fault when+ trying to do so.++ The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of+ the chunk size redundantly records whether the current chunk is+ inuse (unless the chunk is mmapped). This redundancy enables usage+ checks within free and realloc, and reduces indirection when freeing+ and consolidating chunks.++ Each freshly allocated chunk must have both cinuse and pinuse set.+ That is, each allocated chunk borders either a previously allocated+ and still in-use chunk, or the base of its memory arena. This is+ ensured by making all allocations from the `lowest' part of any+ found chunk. Further, no free chunk physically borders another one,+ so each free chunk is known to be preceded and followed by either+ inuse chunks or the ends of memory.++ Note that the `foot' of the current chunk is actually represented+ as the prev_foot of the NEXT chunk. This makes it easier to+ deal with alignments etc but can be very confusing when trying+ to extend or adapt this code.++ The exceptions to all this are++ 1. The special chunk `top' is the top-most available chunk (i.e.,+ the one bordering the end of available memory). It is treated+ specially. Top is never included in any bin, is used only if+ no other chunk is available, and is released back to the+ system if it is very large (see M_TRIM_THRESHOLD). In effect,+ the top chunk is treated as larger (and thus less well+ fitting) than any other available chunk. The top chunk+ doesn't update its trailing size field since there is no next+ contiguous chunk that would have to index off it. However,+ space is still allocated for it (TOP_FOOT_SIZE) to enable+ separation or merging when space is extended.++ 3. Chunks allocated via mmap, have both cinuse and pinuse bits+ cleared in their head fields. Because they are allocated+ one-by-one, each must carry its own prev_foot field, which is+ also used to hold the offset this chunk has within its mmapped+ region, which is needed to preserve alignment. Each mmapped+ chunk is trailed by the first two fields of a fake next-chunk+ for sake of usage checks.++*/++struct malloc_chunk {+ size_t prev_foot; /* Size of previous chunk (if free). */+ size_t head; /* Size and inuse bits. */+ struct malloc_chunk* fd; /* double links -- used only if free. */+ struct malloc_chunk* bk;+};++typedef struct malloc_chunk mchunk;+typedef struct malloc_chunk* mchunkptr;+typedef struct malloc_chunk* sbinptr; /* The type of bins of chunks */+typedef unsigned int bindex_t; /* Described below */+typedef unsigned int binmap_t; /* Described below */+typedef unsigned int flag_t; /* The type of various bit flag sets */++/* ------------------- Chunks sizes and alignments ----------------------- */++#define MCHUNK_SIZE (sizeof(mchunk))++#if FOOTERS+#define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES)+#else /* FOOTERS */+#define CHUNK_OVERHEAD (SIZE_T_SIZE)+#endif /* FOOTERS */++/* MMapped chunks need a second word of overhead ... */+#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES)+/* ... and additional padding for fake next-chunk at foot */+#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES)++/* The smallest size we can malloc is an aligned minimal chunk */+#define MIN_CHUNK_SIZE\+ ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)++/* conversion from malloc headers to user pointers, and back */+#define chunk2mem(p) ((void*)((char*)(p) + TWO_SIZE_T_SIZES))+#define mem2chunk(mem) ((mchunkptr)((char*)(mem) - TWO_SIZE_T_SIZES))+/* chunk associated with aligned address A */+#define align_as_chunk(A) (mchunkptr)((A) + align_offset(chunk2mem(A)))++/* Bounds on request (not chunk) sizes. */+#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2)+#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE)++/* pad request bytes into a usable size */+#define pad_request(req) \+ (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)++/* pad request, checking for minimum (but not maximum) */+#define request2size(req) \+ (((req) < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(req))+++/* ------------------ Operations on head and foot fields ----------------- */++/*+ The head field of a chunk is or'ed with PINUSE_BIT when previous+ adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in+ use, unless mmapped, in which case both bits are cleared.++ FLAG4_BIT is not used by this malloc, but might be useful in extensions.+*/++#define PINUSE_BIT (SIZE_T_ONE)+#define CINUSE_BIT (SIZE_T_TWO)+#define FLAG4_BIT (SIZE_T_FOUR)+#define INUSE_BITS (PINUSE_BIT|CINUSE_BIT)+#define FLAG_BITS (PINUSE_BIT|CINUSE_BIT|FLAG4_BIT)++/* Head value for fenceposts */+#define FENCEPOST_HEAD (INUSE_BITS|SIZE_T_SIZE)++/* extraction of fields from head words */+#define cinuse(p) ((p)->head & CINUSE_BIT)+#define pinuse(p) ((p)->head & PINUSE_BIT)+#define flag4inuse(p) ((p)->head & FLAG4_BIT)+#define is_inuse(p) (((p)->head & INUSE_BITS) != PINUSE_BIT)+#define is_mmapped(p) (((p)->head & INUSE_BITS) == 0)++#define chunksize(p) ((p)->head & ~(FLAG_BITS))++#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT)+#define set_flag4(p) ((p)->head |= FLAG4_BIT)+#define clear_flag4(p) ((p)->head &= ~FLAG4_BIT)++/* Treat space at ptr +/- offset as a chunk */+#define chunk_plus_offset(p, s) ((mchunkptr)(((char*)(p)) + (s)))+#define chunk_minus_offset(p, s) ((mchunkptr)(((char*)(p)) - (s)))++/* Ptr to next or previous physical malloc_chunk. */+#define next_chunk(p) ((mchunkptr)( ((char*)(p)) + ((p)->head & ~FLAG_BITS)))+#define prev_chunk(p) ((mchunkptr)( ((char*)(p)) - ((p)->prev_foot) ))++/* extract next chunk's pinuse bit */+#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT)++/* Get/set size at footer */+#define get_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot)+#define set_foot(p, s) (((mchunkptr)((char*)(p) + (s)))->prev_foot = (s))++/* Set size, pinuse bit, and foot */+#define set_size_and_pinuse_of_free_chunk(p, s)\+ ((p)->head = (s|PINUSE_BIT), set_foot(p, s))++/* Set size, pinuse bit, foot, and clear next pinuse */+#define set_free_with_pinuse(p, s, n)\+ (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s))++/* Get the internal overhead associated with chunk p */+#define overhead_for(p)\+ (is_mmapped(p)? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD)++/* Return true if malloced space is not necessarily cleared */+#if MMAP_CLEARS+#define calloc_must_clear(p) (!is_mmapped(p))+#else /* MMAP_CLEARS */+#define calloc_must_clear(p) (1)+#endif /* MMAP_CLEARS */++/* ---------------------- Overlaid data structures ----------------------- */++/*+ When chunks are not in use, they are treated as nodes of either+ lists or trees.++ "Small" chunks are stored in circular doubly-linked lists, and look+ like this:++ chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Size of previous chunk |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ `head:' | Size of chunk, in bytes |P|+ mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Forward pointer to next chunk in list |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Back pointer to previous chunk in list |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Unused space (may be 0 bytes long) .+ . .+ . |+nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ `foot:' | Size of chunk, in bytes |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++ Larger chunks are kept in a form of bitwise digital trees (aka+ tries) keyed on chunksizes. Because malloc_tree_chunks are only for+ free chunks greater than 256 bytes, their size doesn't impose any+ constraints on user chunk sizes. Each node looks like:++ chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Size of previous chunk |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ `head:' | Size of chunk, in bytes |P|+ mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Forward pointer to next chunk of same size |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Back pointer to previous chunk of same size |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Pointer to left child (child[0]) |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Pointer to right child (child[1]) |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Pointer to parent |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | bin index of this chunk |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ | Unused space .+ . |+nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-++ `foot:' | Size of chunk, in bytes |+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++ Each tree holding treenodes is a tree of unique chunk sizes. Chunks+ of the same size are arranged in a circularly-linked list, with only+ the oldest chunk (the next to be used, in our FIFO ordering)+ actually in the tree. (Tree members are distinguished by a non-null+ parent pointer.) If a chunk with the same size an an existing node+ is inserted, it is linked off the existing node using pointers that+ work in the same way as fd/bk pointers of small chunks.++ Each tree contains a power of 2 sized range of chunk sizes (the+ smallest is 0x100 <= x < 0x180), which is is divided in half at each+ tree level, with the chunks in the smaller half of the range (0x100+ <= x < 0x140 for the top nose) in the left subtree and the larger+ half (0x140 <= x < 0x180) in the right subtree. This is, of course,+ done by inspecting individual bits.++ Using these rules, each node's left subtree contains all smaller+ sizes than its right subtree. However, the node at the root of each+ subtree has no particular ordering relationship to either. (The+ dividing line between the subtree sizes is based on trie relation.)+ If we remove the last chunk of a given size from the interior of the+ tree, we need to replace it with a leaf node. The tree ordering+ rules permit a node to be replaced by any leaf below it.++ The smallest chunk in a tree (a common operation in a best-fit+ allocator) can be found by walking a path to the leftmost leaf in+ the tree. Unlike a usual binary tree, where we follow left child+ pointers until we reach a null, here we follow the right child+ pointer any time the left one is null, until we reach a leaf with+ both child pointers null. The smallest chunk in the tree will be+ somewhere along that path.++ The worst case number of steps to add, find, or remove a node is+ bounded by the number of bits differentiating chunks within+ bins. Under current bin calculations, this ranges from 6 up to 21+ (for 32 bit sizes) or up to 53 (for 64 bit sizes). The typical case+ is of course much better.+*/++struct malloc_tree_chunk {+ /* The first four fields must be compatible with malloc_chunk */+ size_t prev_foot;+ size_t head;+ struct malloc_tree_chunk* fd;+ struct malloc_tree_chunk* bk;++ struct malloc_tree_chunk* child[2];+ struct malloc_tree_chunk* parent;+ bindex_t index;+};++typedef struct malloc_tree_chunk tchunk;+typedef struct malloc_tree_chunk* tchunkptr;+typedef struct malloc_tree_chunk* tbinptr; /* The type of bins of trees */++/* A little helper macro for trees */+#define leftmost_child(t) ((t)->child[0] != 0? (t)->child[0] : (t)->child[1])++/* ----------------------------- Segments -------------------------------- */++/*+ Each malloc space may include non-contiguous segments, held in a+ list headed by an embedded malloc_segment record representing the+ top-most space. Segments also include flags holding properties of+ the space. Large chunks that are directly allocated by mmap are not+ included in this list. They are instead independently created and+ destroyed without otherwise keeping track of them.++ Segment management mainly comes into play for spaces allocated by+ MMAP. Any call to MMAP might or might not return memory that is+ adjacent to an existing segment. MORECORE normally contiguously+ extends the current space, so this space is almost always adjacent,+ which is simpler and faster to deal with. (This is why MORECORE is+ used preferentially to MMAP when both are available -- see+ sys_alloc.) When allocating using MMAP, we don't use any of the+ hinting mechanisms (inconsistently) supported in various+ implementations of unix mmap, or distinguish reserving from+ committing memory. Instead, we just ask for space, and exploit+ contiguity when we get it. It is probably possible to do+ better than this on some systems, but no general scheme seems+ to be significantly better.++ Management entails a simpler variant of the consolidation scheme+ used for chunks to reduce fragmentation -- new adjacent memory is+ normally prepended or appended to an existing segment. However,+ there are limitations compared to chunk consolidation that mostly+ reflect the fact that segment processing is relatively infrequent+ (occurring only when getting memory from system) and that we+ don't expect to have huge numbers of segments:++ * Segments are not indexed, so traversal requires linear scans. (It+ would be possible to index these, but is not worth the extra+ overhead and complexity for most programs on most platforms.)+ * New segments are only appended to old ones when holding top-most+ memory; if they cannot be prepended to others, they are held in+ different segments.++ Except for the top-most segment of an mstate, each segment record+ is kept at the tail of its segment. Segments are added by pushing+ segment records onto the list headed by &mstate.seg for the+ containing mstate.++ Segment flags control allocation/merge/deallocation policies:+ * If EXTERN_BIT set, then we did not allocate this segment,+ and so should not try to deallocate or merge with others.+ (This currently holds only for the initial segment passed+ into create_mspace_with_base.)+ * If USE_MMAP_BIT set, the segment may be merged with+ other surrounding mmapped segments and trimmed/de-allocated+ using munmap.+ * If neither bit is set, then the segment was obtained using+ MORECORE so can be merged with surrounding MORECORE'd segments+ and deallocated/trimmed using MORECORE with negative arguments.+*/++struct malloc_segment {+ char* base; /* base address */+ size_t size; /* allocated size */+ struct malloc_segment* next; /* ptr to next segment */+#if FFI_MMAP_EXEC_WRIT+ /* The mmap magic is supposed to store the address of the executable+ segment at the very end of the requested block. */++# define mmap_exec_offset(b,s) (*(ptrdiff_t*)((b)+(s)-sizeof(ptrdiff_t)))++ /* We can only merge segments if their corresponding executable+ segments are at identical offsets. */+# define check_segment_merge(S,b,s) \+ (mmap_exec_offset((b),(s)) == (S)->exec_offset)++# define add_segment_exec_offset(p,S) ((char*)(p) + (S)->exec_offset)+# define sub_segment_exec_offset(p,S) ((char*)(p) - (S)->exec_offset)++ /* The removal of sflags only works with HAVE_MORECORE == 0. */++# define get_segment_flags(S) (USE_MMAP_BIT)+# define set_segment_flags(S,v) \+ (((v) != USE_MMAP_BIT) ? (ABORT, (v)) : \+ (((S)->exec_offset = \+ mmap_exec_offset((S)->base, (S)->size)), \+ (mmap_exec_offset((S)->base + (S)->exec_offset, (S)->size) != \+ (S)->exec_offset) ? (ABORT, (v)) : \+ (mmap_exec_offset((S)->base, (S)->size) = 0), (v)))++ /* We use an offset here, instead of a pointer, because then, when+ base changes, we don't have to modify this. On architectures+ with segmented addresses, this might not work. */+ ptrdiff_t exec_offset;+#else++# define get_segment_flags(S) ((S)->sflags)+# define set_segment_flags(S,v) ((S)->sflags = (v))+# define check_segment_merge(S,b,s) (1)++ flag_t sflags; /* mmap and extern flag */+#endif+};++#define is_mmapped_segment(S) (get_segment_flags(S) & USE_MMAP_BIT)+#define is_extern_segment(S) (get_segment_flags(S) & EXTERN_BIT)++typedef struct malloc_segment msegment;+typedef struct malloc_segment* msegmentptr;++/* ---------------------------- malloc_state ----------------------------- */++/*+ A malloc_state holds all of the bookkeeping for a space.+ The main fields are:++ Top+ The topmost chunk of the currently active segment. Its size is+ cached in topsize. The actual size of topmost space is+ topsize+TOP_FOOT_SIZE, which includes space reserved for adding+ fenceposts and segment records if necessary when getting more+ space from the system. The size at which to autotrim top is+ cached from mparams in trim_check, except that it is disabled if+ an autotrim fails.++ Designated victim (dv)+ This is the preferred chunk for servicing small requests that+ don't have exact fits. It is normally the chunk split off most+ recently to service another small request. Its size is cached in+ dvsize. The link fields of this chunk are not maintained since it+ is not kept in a bin.++ SmallBins+ An array of bin headers for free chunks. These bins hold chunks+ with sizes less than MIN_LARGE_SIZE bytes. Each bin contains+ chunks of all the same size, spaced 8 bytes apart. To simplify+ use in double-linked lists, each bin header acts as a malloc_chunk+ pointing to the real first node, if it exists (else pointing to+ itself). This avoids special-casing for headers. But to avoid+ waste, we allocate only the fd/bk pointers of bins, and then use+ repositioning tricks to treat these as the fields of a chunk.++ TreeBins+ Treebins are pointers to the roots of trees holding a range of+ sizes. There are 2 equally spaced treebins for each power of two+ from TREE_SHIFT to TREE_SHIFT+16. The last bin holds anything+ larger.++ Bin maps+ There is one bit map for small bins ("smallmap") and one for+ treebins ("treemap). Each bin sets its bit when non-empty, and+ clears the bit when empty. Bit operations are then used to avoid+ bin-by-bin searching -- nearly all "search" is done without ever+ looking at bins that won't be selected. The bit maps+ conservatively use 32 bits per map word, even if on 64bit system.+ For a good description of some of the bit-based techniques used+ here, see Henry S. Warren Jr's book "Hacker's Delight" (and+ supplement at http://hackersdelight.org/). Many of these are+ intended to reduce the branchiness of paths through malloc etc, as+ well as to reduce the number of memory locations read or written.++ Segments+ A list of segments headed by an embedded malloc_segment record+ representing the initial space.++ Address check support+ The least_addr field is the least address ever obtained from+ MORECORE or MMAP. Attempted frees and reallocs of any address less+ than this are trapped (unless INSECURE is defined).++ Magic tag+ A cross-check field that should always hold same value as mparams.magic.++ Max allowed footprint+ The maximum allowed bytes to allocate from system (zero means no limit)++ Flags+ Bits recording whether to use MMAP, locks, or contiguous MORECORE++ Statistics+ Each space keeps track of current and maximum system memory+ obtained via MORECORE or MMAP.++ Trim support+ Fields holding the amount of unused topmost memory that should trigger+ trimming, and a counter to force periodic scanning to release unused+ non-topmost segments.++ Locking+ If USE_LOCKS is defined, the "mutex" lock is acquired and released+ around every public call using this mspace.++ Extension support+ A void* pointer and a size_t field that can be used to help implement+ extensions to this malloc.+*/++/* Bin types, widths and sizes */+#define NSMALLBINS (32U)+#define NTREEBINS (32U)+#define SMALLBIN_SHIFT (3U)+#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT)+#define TREEBIN_SHIFT (8U)+#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT)+#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE)+#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD)++struct malloc_state {+ binmap_t smallmap;+ binmap_t treemap;+ size_t dvsize;+ size_t topsize;+ char* least_addr;+ mchunkptr dv;+ mchunkptr top;+ size_t trim_check;+ size_t release_checks;+ size_t magic;+ mchunkptr smallbins[(NSMALLBINS+1)*2];+ tbinptr treebins[NTREEBINS];+ size_t footprint;+ size_t max_footprint;+ size_t footprint_limit; /* zero means no limit */+ flag_t mflags;+#if USE_LOCKS+ MLOCK_T mutex; /* locate lock among fields that rarely change */+#endif /* USE_LOCKS */+ msegment seg;+ void* extp; /* Unused but available for extensions */+ size_t exts;+};++typedef struct malloc_state* mstate;++/* ------------- Global malloc_state and malloc_params ------------------- */++/*+ malloc_params holds global properties, including those that can be+ dynamically set using mallopt. There is a single instance, mparams,+ initialized in init_mparams. Note that the non-zeroness of "magic"+ also serves as an initialization flag.+*/++struct malloc_params {+ size_t magic;+ size_t page_size;+ size_t granularity;+ size_t mmap_threshold;+ size_t trim_threshold;+ flag_t default_mflags;+};++static struct malloc_params mparams;++/* libffi: mparams is initialized exactly once (under the malloc global lock),+ but mparams.magic is read on every allocation's fast path WITHOUT a lock to+ decide whether initialization already happened. Upstream writes magic+ through a `volatile` cast, which is not a synchronizing operation, so+ ThreadSanitizer reports a data race (libffi issue #873) between that one-time+ write and the lock-free readers. Access magic with acquire/release ordering+ instead: a thread that observes magic != 0 via the acquire load is then+ guaranteed to see all the other initialization writes (page_size, mflags,+ ...) performed before the release store. Fall back to the original volatile+ access when no supported compiler atomic operations are available. */+#if USE_LOCKS && defined(__ATOMIC_ACQUIRE)+# define ffi_mparams_magic_load() __atomic_load_n(&mparams.magic, __ATOMIC_ACQUIRE)+# define ffi_mparams_magic_store(v) __atomic_store_n(&mparams.magic, (size_t)(v), __ATOMIC_RELEASE)+#elif USE_LOCKS && defined(_MSC_VER)+# if defined(_WIN64)+# define ffi_mparams_magic_load() \+ ((size_t)_InterlockedCompareExchange64((__int64 volatile *)&mparams.magic, \+ (__int64)0, (__int64)0))+# define ffi_mparams_magic_store(v) \+ ((void)_InterlockedExchange64((__int64 volatile *)&mparams.magic, \+ (__int64)(v)))+# else+# define ffi_mparams_magic_load() \+ ((size_t)_InterlockedCompareExchange((LONG volatile *)&mparams.magic, \+ (LONG)0, (LONG)0))+# define ffi_mparams_magic_store(v) \+ ((void)_InterlockedExchange((LONG volatile *)&mparams.magic, (LONG)(v)))+# endif+#else+# define ffi_mparams_magic_load() (mparams.magic)+# define ffi_mparams_magic_store(v) (*(volatile size_t *)(&(mparams.magic)) = (size_t)(v))+#endif++/* Ensure mparams initialized */+#define ensure_initialization() (void)(ffi_mparams_magic_load() != 0 || init_mparams())++#if !ONLY_MSPACES++/* The global malloc_state used for all non-"mspace" calls */+static struct malloc_state _gm_;+#define gm (&_gm_)+#define is_global(M) ((M) == &_gm_)++#endif /* !ONLY_MSPACES */++#define is_initialized(M) ((M)->top != 0)++/* -------------------------- system alloc setup ------------------------- */++/* Operations on mflags */++#define use_lock(M) ((M)->mflags & USE_LOCK_BIT)+#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT)+#if USE_LOCKS+#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT)+#else+#define disable_lock(M)+#endif++#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT)+#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT)+#if HAVE_MMAP+#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT)+#else+#define disable_mmap(M)+#endif++#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT)+#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT)++#define set_lock(M,L)\+ ((M)->mflags = (L)?\+ ((M)->mflags | USE_LOCK_BIT) :\+ ((M)->mflags & ~USE_LOCK_BIT))++/* page-align a size */+#define page_align(S)\+ (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE))++/* granularity-align a size */+#define granularity_align(S)\+ (((S) + (mparams.granularity - SIZE_T_ONE))\+ & ~(mparams.granularity - SIZE_T_ONE))+++/* For mmap, use granularity alignment on windows, else page-align */+#ifdef WIN32+#define mmap_align(S) granularity_align(S)+#else+#define mmap_align(S) page_align(S)+#endif++/* For sys_alloc, enough padding to ensure can malloc request on success */+#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT)++#define is_page_aligned(S)\+ (((size_t)(S) & (mparams.page_size - SIZE_T_ONE)) == 0)+#define is_granularity_aligned(S)\+ (((size_t)(S) & (mparams.granularity - SIZE_T_ONE)) == 0)++/* True if segment S holds address A */+#define segment_holds(S, A)\+ ((char*)(A) >= S->base && (char*)(A) < S->base + S->size)++/* Return segment holding given address */+static msegmentptr segment_holding(mstate m, char* addr) {+ msegmentptr sp = &m->seg;+ for (;;) {+ if (addr >= sp->base && addr < sp->base + sp->size)+ return sp;+ if ((sp = sp->next) == 0)+ return 0;+ }+}++/* Return true if segment contains a segment link */+static int has_segment_link(mstate m, msegmentptr ss) {+ msegmentptr sp = &m->seg;+ for (;;) {+ if ((char*)sp >= ss->base && (char*)sp < ss->base + ss->size)+ return 1;+ if ((sp = sp->next) == 0)+ return 0;+ }+}++#ifndef MORECORE_CANNOT_TRIM+#define should_trim(M,s) ((s) > (M)->trim_check)+#else /* MORECORE_CANNOT_TRIM */+#define should_trim(M,s) (0)+#endif /* MORECORE_CANNOT_TRIM */++/*+ TOP_FOOT_SIZE is padding at the end of a segment, including space+ that may be needed to place segment records and fenceposts when new+ noncontiguous segments are added.+*/+#define TOP_FOOT_SIZE\+ (align_offset(chunk2mem(0))+pad_request(sizeof(struct malloc_segment))+MIN_CHUNK_SIZE)+++/* ------------------------------- Hooks -------------------------------- */++/*+ PREACTION should be defined to return 0 on success, and nonzero on+ failure. If you are not using locking, you can redefine these to do+ anything you like.+*/++#if USE_LOCKS+#define PREACTION(M) ((use_lock(M))? ACQUIRE_LOCK(&(M)->mutex) : 0)+#define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); }+#else /* USE_LOCKS */++#ifndef PREACTION+#define PREACTION(M) (0)+#endif /* PREACTION */++#ifndef POSTACTION+#define POSTACTION(M)+#endif /* POSTACTION */++#endif /* USE_LOCKS */++/*+ CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses.+ USAGE_ERROR_ACTION is triggered on detected bad frees and+ reallocs. The argument p is an address that might have triggered the+ fault. It is ignored by the two predefined actions, but might be+ useful in custom actions that try to help diagnose errors.+*/++#if PROCEED_ON_ERROR++/* A count of the number of corruption errors causing resets */+int malloc_corruption_error_count;++/* default corruption action */+static void reset_on_error(mstate m);++#define CORRUPTION_ERROR_ACTION(m) reset_on_error(m)+#define USAGE_ERROR_ACTION(m, p)++#else /* PROCEED_ON_ERROR */++#ifndef CORRUPTION_ERROR_ACTION+#define CORRUPTION_ERROR_ACTION(m) ABORT+#endif /* CORRUPTION_ERROR_ACTION */++#ifndef USAGE_ERROR_ACTION+#define USAGE_ERROR_ACTION(m,p) ABORT+#endif /* USAGE_ERROR_ACTION */++#endif /* PROCEED_ON_ERROR */+++/* -------------------------- Debugging setup ---------------------------- */++#if ! DEBUG++#define check_free_chunk(M,P)+#define check_inuse_chunk(M,P)+#define check_malloced_chunk(M,P,N)+#define check_mmapped_chunk(M,P)+#define check_malloc_state(M)+#define check_top_chunk(M,P)++#else /* DEBUG */+#define check_free_chunk(M,P) do_check_free_chunk(M,P)+#define check_inuse_chunk(M,P) do_check_inuse_chunk(M,P)+#define check_top_chunk(M,P) do_check_top_chunk(M,P)+#define check_malloced_chunk(M,P,N) do_check_malloced_chunk(M,P,N)+#define check_mmapped_chunk(M,P) do_check_mmapped_chunk(M,P)+#define check_malloc_state(M) do_check_malloc_state(M)++static void do_check_any_chunk(mstate m, mchunkptr p);+static void do_check_top_chunk(mstate m, mchunkptr p);+static void do_check_mmapped_chunk(mstate m, mchunkptr p);+static void do_check_inuse_chunk(mstate m, mchunkptr p);+static void do_check_free_chunk(mstate m, mchunkptr p);+static void do_check_malloced_chunk(mstate m, void* mem, size_t s);+static void do_check_tree(mstate m, tchunkptr t);+static void do_check_treebin(mstate m, bindex_t i);+static void do_check_smallbin(mstate m, bindex_t i);+static void do_check_malloc_state(mstate m);+static int bin_find(mstate m, mchunkptr x);+static size_t traverse_and_check(mstate m);+#endif /* DEBUG */++/* ---------------------------- Indexing Bins ---------------------------- */++#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS)+#define small_index(s) (bindex_t)((s) >> SMALLBIN_SHIFT)+#define small_index2size(i) ((i) << SMALLBIN_SHIFT)+#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE))++/* addressing by index. See above about smallbin repositioning */+#define smallbin_at(M, i) ((sbinptr)((char*)&((M)->smallbins[(i)<<1])))+#define treebin_at(M,i) (&((M)->treebins[i]))++/* assign tree index for size S to variable I.+ libffi: enable the __builtin_clz path on any GNU-compatible compiler, not+ only x86, so the log2 is an intrinsic rather than the generic C idiom that+ the compiler can't always recognize (libffi #754). */+#if defined(__GNUC__)+#define compute_tree_index(S, I)\+{\+ unsigned int X = S >> TREEBIN_SHIFT;\+ if (X == 0)\+ I = 0;\+ else if (X > 0xFFFF)\+ I = NTREEBINS-1;\+ else {\+ unsigned int K = (unsigned) sizeof(X)*__CHAR_BIT__ - 1 - (unsigned) __builtin_clz(X); \+ I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\+ }\+}++#elif defined (__INTEL_COMPILER)+#define compute_tree_index(S, I)\+{\+ size_t X = S >> TREEBIN_SHIFT;\+ if (X == 0)\+ I = 0;\+ else if (X > 0xFFFF)\+ I = NTREEBINS-1;\+ else {\+ unsigned int K = _bit_scan_reverse (X); \+ I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\+ }\+}++#elif defined(_MSC_VER) && _MSC_VER>=1300+#define compute_tree_index(S, I)\+{\+ size_t X = S >> TREEBIN_SHIFT;\+ if (X == 0)\+ I = 0;\+ else if (X > 0xFFFF)\+ I = NTREEBINS-1;\+ else {\+ unsigned int K;\+ _BitScanReverse((DWORD *) &K, (DWORD) X);\+ I = (bindex_t)((K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1)));\+ }\+}++#else /* GNUC */+#define compute_tree_index(S, I)\+{\+ size_t X = S >> TREEBIN_SHIFT;\+ if (X == 0)\+ I = 0;\+ else if (X > 0xFFFF)\+ I = NTREEBINS-1;\+ else {\+ unsigned int Y = (unsigned int)X;\+ unsigned int N = ((Y - 0x100) >> 16) & 8;\+ unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4;\+ N += K;\+ N += K = (((Y <<= K) - 0x4000) >> 16) & 2;\+ K = 14 - N + ((Y <<= K) >> 15);\+ I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT-1)) & 1));\+ }\+}+#endif /* GNUC */++/* Bit representing maximum resolved size in a treebin at i */+#define bit_for_tree_index(i) \+ (i == NTREEBINS-1)? (SIZE_T_BITSIZE-1) : (((i) >> 1) + TREEBIN_SHIFT - 2)++/* Shift placing maximum resolved bit in a treebin at i as sign bit */+#define leftshift_for_tree_index(i) \+ ((i == NTREEBINS-1)? 0 : \+ ((SIZE_T_BITSIZE-SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2)))++/* The size of the smallest chunk held in bin with index i */+#define minsize_for_tree_index(i) \+ ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) | \+ (((size_t)((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1)))+++/* ------------------------ Operations on bin maps ----------------------- */++/* bit corresponding to given index */+#define idx2bit(i) ((binmap_t)(1) << (i))++/* Mark/Clear bits with given index */+#define mark_smallmap(M,i) ((M)->smallmap |= idx2bit(i))+#define clear_smallmap(M,i) ((M)->smallmap &= ~idx2bit(i))+#define smallmap_is_marked(M,i) ((M)->smallmap & idx2bit(i))++#define mark_treemap(M,i) ((M)->treemap |= idx2bit(i))+#define clear_treemap(M,i) ((M)->treemap &= ~idx2bit(i))+#define treemap_is_marked(M,i) ((M)->treemap & idx2bit(i))++/* isolate the least set bit of a bitmap */+#define least_bit(x) ((x) & -(x))++/* mask with all bits to left of least bit of x on */+#define left_bits(x) ((x<<1) | -(x<<1))++/* mask with all bits to left of or equal to least bit of x on */+#define same_or_left_bits(x) ((x) | -(x))++/* index corresponding to given bit.+ libffi: use __builtin_ctz on any GNU-compatible compiler, not only x86+ (libffi #754). */++#if defined(__GNUC__)+#define compute_bit2idx(X, I)\+{\+ unsigned int J;\+ J = __builtin_ctz(X); \+ I = (bindex_t)J;\+}++#elif defined (__INTEL_COMPILER)+#define compute_bit2idx(X, I)\+{\+ unsigned int J;\+ J = _bit_scan_forward (X); \+ I = (bindex_t)J;\+}++#elif defined(_MSC_VER) && _MSC_VER>=1300+#define compute_bit2idx(X, I)\+{\+ unsigned int J;\+ _BitScanForward((DWORD *) &J, X);\+ I = (bindex_t)J;\+}++#elif USE_BUILTIN_FFS+#define compute_bit2idx(X, I) I = ffs(X)-1++#else+#define compute_bit2idx(X, I)\+{\+ unsigned int Y = X - 1;\+ unsigned int K = Y >> (16-4) & 16;\+ unsigned int N = K; Y >>= K;\+ N += K = Y >> (8-3) & 8; Y >>= K;\+ N += K = Y >> (4-2) & 4; Y >>= K;\+ N += K = Y >> (2-1) & 2; Y >>= K;\+ N += K = Y >> (1-0) & 1; Y >>= K;\+ I = (bindex_t)(N + Y);\+}+#endif /* GNUC */+++/* ----------------------- Runtime Check Support ------------------------- */++/*+ For security, the main invariant is that malloc/free/etc never+ writes to a static address other than malloc_state, unless static+ malloc_state itself has been corrupted, which cannot occur via+ malloc (because of these checks). In essence this means that we+ believe all pointers, sizes, maps etc held in malloc_state, but+ check all of those linked or offsetted from other embedded data+ structures. These checks are interspersed with main code in a way+ that tends to minimize their run-time cost.++ When FOOTERS is defined, in addition to range checking, we also+ verify footer fields of inuse chunks, which can be used guarantee+ that the mstate controlling malloc/free is intact. This is a+ streamlined version of the approach described by William Robertson+ et al in "Run-time Detection of Heap-based Overflows" LISA'03+ http://www.usenix.org/events/lisa03/tech/robertson.html The footer+ of an inuse chunk holds the xor of its mstate and a random seed,+ that is checked upon calls to free() and realloc(). This is+ (probabalistically) unguessable from outside the program, but can be+ computed by any code successfully malloc'ing any chunk, so does not+ itself provide protection against code that has already broken+ security through some other means. Unlike Robertson et al, we+ always dynamically check addresses of all offset chunks (previous,+ next, etc). This turns out to be cheaper than relying on hashes.+*/++#if !INSECURE+/* Check if address a is at least as high as any from MORECORE or MMAP */+#define ok_address(M, a) ((char*)(a) >= (M)->least_addr)+/* Check if address of next chunk n is higher than base chunk p */+#define ok_next(p, n) ((char*)(p) < (char*)(n))+/* Check if p has inuse status */+#define ok_inuse(p) is_inuse(p)+/* Check if p has its pinuse bit on */+#define ok_pinuse(p) pinuse(p)++#else /* !INSECURE */+#define ok_address(M, a) (1)+#define ok_next(b, n) (1)+#define ok_inuse(p) (1)+#define ok_pinuse(p) (1)+#endif /* !INSECURE */++#if (FOOTERS && !INSECURE)+/* Check if (alleged) mstate m has expected magic field */+#define ok_magic(M) ((M)->magic == mparams.magic)+#else /* (FOOTERS && !INSECURE) */+#define ok_magic(M) (1)+#endif /* (FOOTERS && !INSECURE) */++/* In gcc, use __builtin_expect to minimize impact of checks */+#if !INSECURE+#if defined(__GNUC__) && __GNUC__ >= 3+#define RTCHECK(e) __builtin_expect(e, 1)+#else /* GNUC */+#define RTCHECK(e) (e)+#endif /* GNUC */+#else /* !INSECURE */+#define RTCHECK(e) (1)+#endif /* !INSECURE */++/* macros to set up inuse chunks with or without footers */++#if !FOOTERS++#define mark_inuse_foot(M,p,s)++/* Macros for setting head/foot of non-mmapped chunks */++/* Set cinuse bit and pinuse bit of next chunk */+#define set_inuse(M,p,s)\+ ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\+ ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT)++/* Set cinuse and pinuse of this chunk and pinuse of next chunk */+#define set_inuse_and_pinuse(M,p,s)\+ ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\+ ((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT)++/* Set size, cinuse and pinuse bit of this chunk */+#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\+ ((p)->head = (s|PINUSE_BIT|CINUSE_BIT))++#else /* FOOTERS */++/* Set foot of inuse chunk to be xor of mstate and seed */+#define mark_inuse_foot(M,p,s)\+ (((mchunkptr)((char*)(p) + (s)))->prev_foot = ((size_t)(M) ^ mparams.magic))++#define get_mstate_for(p)\+ ((mstate)(((mchunkptr)((char*)(p) +\+ (chunksize(p))))->prev_foot ^ mparams.magic))++#define set_inuse(M,p,s)\+ ((p)->head = (((p)->head & PINUSE_BIT)|s|CINUSE_BIT),\+ (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT), \+ mark_inuse_foot(M,p,s))++#define set_inuse_and_pinuse(M,p,s)\+ ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\+ (((mchunkptr)(((char*)(p)) + (s)))->head |= PINUSE_BIT),\+ mark_inuse_foot(M,p,s))++#define set_size_and_pinuse_of_inuse_chunk(M, p, s)\+ ((p)->head = (s|PINUSE_BIT|CINUSE_BIT),\+ mark_inuse_foot(M, p, s))++#endif /* !FOOTERS */++/* ---------------------------- setting mparams -------------------------- */++#if LOCK_AT_FORK+static void pre_fork(void) { ACQUIRE_LOCK(&(gm)->mutex); }+static void post_fork_parent(void) { RELEASE_LOCK(&(gm)->mutex); }+static void post_fork_child(void) { INITIAL_LOCK(&(gm)->mutex); }+#endif /* LOCK_AT_FORK */++/* Initialize mparams */+static int init_mparams(void) {+#ifdef NEED_GLOBAL_LOCK_INIT+ if (malloc_global_mutex_status <= 0)+ init_malloc_global_mutex();+#endif++ ACQUIRE_MALLOC_GLOBAL_LOCK();+ if (mparams.magic == 0) {+ size_t magic;+ size_t psize;+ size_t gsize;++#if !defined(WIN32) && !defined(__OS2__)+ psize = malloc_getpagesize;+ gsize = ((DEFAULT_GRANULARITY != 0)? DEFAULT_GRANULARITY : psize);+#elif defined (__OS2__)+ /* if low-memory is used, os2munmap() would break+ if it were anything other than 64k */+ psize = 4096u;+ gsize = 65536u;+#else /* WIN32 */+ {+ SYSTEM_INFO system_info;+ GetSystemInfo(&system_info);+ psize = system_info.dwPageSize;+ gsize = ((DEFAULT_GRANULARITY != 0)?+ DEFAULT_GRANULARITY : system_info.dwAllocationGranularity);+ }+#endif /* WIN32 */++ /* Sanity-check configuration:+ size_t must be unsigned and as wide as pointer type.+ ints must be at least 4 bytes.+ alignment must be at least 8.+ Alignment, min chunk size, and page size must all be powers of 2.+ */+ if ((sizeof(size_t) != sizeof(char*)) ||+ (MAX_SIZE_T < MIN_CHUNK_SIZE) ||+ (sizeof(int) < 4) ||+ (MALLOC_ALIGNMENT < (size_t)8U) ||+ ((MALLOC_ALIGNMENT & (MALLOC_ALIGNMENT-SIZE_T_ONE)) != 0) ||+ ((MCHUNK_SIZE & (MCHUNK_SIZE-SIZE_T_ONE)) != 0) ||+ ((gsize & (gsize-SIZE_T_ONE)) != 0) ||+ ((psize & (psize-SIZE_T_ONE)) != 0))+ ABORT;+ mparams.granularity = gsize;+ mparams.page_size = psize;+ mparams.mmap_threshold = DEFAULT_MMAP_THRESHOLD;+ mparams.trim_threshold = DEFAULT_TRIM_THRESHOLD;+#if MORECORE_CONTIGUOUS+ mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT;+#else /* MORECORE_CONTIGUOUS */+ mparams.default_mflags = USE_LOCK_BIT|USE_MMAP_BIT|USE_NONCONTIGUOUS_BIT;+#endif /* MORECORE_CONTIGUOUS */++#if !ONLY_MSPACES+ /* Set up lock for main malloc area */+ gm->mflags = mparams.default_mflags;+ (void)INITIAL_LOCK(&gm->mutex);+#endif+#if LOCK_AT_FORK+ pthread_atfork(&pre_fork, &post_fork_parent, &post_fork_child);+#endif++ {+#if USE_DEV_RANDOM+ int fd;+ unsigned char buf[sizeof(size_t)];+ /* Try to use /dev/urandom, else fall back on using time */+ if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 &&+ read(fd, buf, sizeof(buf)) == sizeof(buf)) {+ magic = *((size_t *) buf);+ close(fd);+ }+ else+#endif /* USE_DEV_RANDOM */+#ifdef WIN32+ magic = (size_t)(GetTickCount() ^ (size_t)0x55555555U);+#elif defined(LACKS_TIME_H)+ magic = (size_t)&magic ^ (size_t)0x55555555U;+#else+ magic = (size_t)(time(0) ^ (size_t)0x55555555U);+#endif+ magic |= (size_t)8U; /* ensure nonzero */+ magic &= ~(size_t)7U; /* improve chances of fault for bad values */+ /* libffi: release-store so any thread that observes magic via the+ acquire load in ensure_initialization() sees the writes above (#873). */+ ffi_mparams_magic_store(magic);+ }+ }++ RELEASE_MALLOC_GLOBAL_LOCK();+ return 1;+}++/* support for mallopt */+static int change_mparam(int param_number, int value) {+ size_t val;+ ensure_initialization();+ val = (value == -1)? MAX_SIZE_T : (size_t)value;+ switch(param_number) {+ case M_TRIM_THRESHOLD:+ mparams.trim_threshold = val;+ return 1;+ case M_GRANULARITY:+ if (val >= mparams.page_size && ((val & (val-1)) == 0)) {+ mparams.granularity = val;+ return 1;+ }+ else+ return 0;+ case M_MMAP_THRESHOLD:+ mparams.mmap_threshold = val;+ return 1;+ default:+ return 0;+ }+}++#if DEBUG+/* ------------------------- Debugging Support --------------------------- */++/* Check properties of any chunk, whether free, inuse, mmapped etc */+static void do_check_any_chunk(mstate m, mchunkptr p) {+ assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));+ assert(ok_address(m, p));+}++/* Check properties of top chunk */+static void do_check_top_chunk(mstate m, mchunkptr p) {+ msegmentptr sp = segment_holding(m, (char*)p);+ size_t sz = p->head & ~INUSE_BITS; /* third-lowest bit can be set! */+ assert(sp != 0);+ assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));+ assert(ok_address(m, p));+ assert(sz == m->topsize);+ assert(sz > 0);+ assert(sz == ((sp->base + sp->size) - (char*)p) - TOP_FOOT_SIZE);+ assert(pinuse(p));+ assert(!pinuse(chunk_plus_offset(p, sz)));+}++/* Check properties of (inuse) mmapped chunks */+static void do_check_mmapped_chunk(mstate m, mchunkptr p) {+ size_t sz = chunksize(p);+ size_t len = (sz + (p->prev_foot) + MMAP_FOOT_PAD);+ assert(is_mmapped(p));+ assert(use_mmap(m));+ assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));+ assert(ok_address(m, p));+ assert(!is_small(sz));+ assert((len & (mparams.page_size-SIZE_T_ONE)) == 0);+ assert(chunk_plus_offset(p, sz)->head == FENCEPOST_HEAD);+ assert(chunk_plus_offset(p, sz+SIZE_T_SIZE)->head == 0);+}++/* Check properties of inuse chunks */+static void do_check_inuse_chunk(mstate m, mchunkptr p) {+ do_check_any_chunk(m, p);+ assert(is_inuse(p));+ assert(next_pinuse(p));+ /* If not pinuse and not mmapped, previous chunk has OK offset */+ assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p);+ if (is_mmapped(p))+ do_check_mmapped_chunk(m, p);+}++/* Check properties of free chunks */+static void do_check_free_chunk(mstate m, mchunkptr p) {+ size_t sz = chunksize(p);+ mchunkptr next = chunk_plus_offset(p, sz);+ do_check_any_chunk(m, p);+ assert(!is_inuse(p));+ assert(!next_pinuse(p));+ assert (!is_mmapped(p));+ if (p != m->dv && p != m->top) {+ if (sz >= MIN_CHUNK_SIZE) {+ assert((sz & CHUNK_ALIGN_MASK) == 0);+ assert(is_aligned(chunk2mem(p)));+ assert(next->prev_foot == sz);+ assert(pinuse(p));+ assert (next == m->top || is_inuse(next));+ assert(p->fd->bk == p);+ assert(p->bk->fd == p);+ }+ else /* markers are always of size SIZE_T_SIZE */+ assert(sz == SIZE_T_SIZE);+ }+}++/* Check properties of malloced chunks at the point they are malloced */+static void do_check_malloced_chunk(mstate m, void* mem, size_t s) {+ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+ size_t sz = p->head & ~INUSE_BITS;+ do_check_inuse_chunk(m, p);+ assert((sz & CHUNK_ALIGN_MASK) == 0);+ assert(sz >= MIN_CHUNK_SIZE);+ assert(sz >= s);+ /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */+ assert(is_mmapped(p) || sz < (s + MIN_CHUNK_SIZE));+ }+}++/* Check a tree and its subtrees. */+static void do_check_tree(mstate m, tchunkptr t) {+ tchunkptr head = 0;+ tchunkptr u = t;+ bindex_t tindex = t->index;+ size_t tsize = chunksize(t);+ bindex_t idx;+ compute_tree_index(tsize, idx);+ assert(tindex == idx);+ assert(tsize >= MIN_LARGE_SIZE);+ assert(tsize >= minsize_for_tree_index(idx));+ assert((idx == NTREEBINS-1) || (tsize < minsize_for_tree_index((idx+1))));++ do { /* traverse through chain of same-sized nodes */+ do_check_any_chunk(m, ((mchunkptr)u));+ assert(u->index == tindex);+ assert(chunksize(u) == tsize);+ assert(!is_inuse(u));+ assert(!next_pinuse(u));+ assert(u->fd->bk == u);+ assert(u->bk->fd == u);+ if (u->parent == 0) {+ assert(u->child[0] == 0);+ assert(u->child[1] == 0);+ }+ else {+ assert(head == 0); /* only one node on chain has parent */+ head = u;+ assert(u->parent != u);+ assert (u->parent->child[0] == u ||+ u->parent->child[1] == u ||+ *((tbinptr*)(u->parent)) == u);+ if (u->child[0] != 0) {+ assert(u->child[0]->parent == u);+ assert(u->child[0] != u);+ do_check_tree(m, u->child[0]);+ }+ if (u->child[1] != 0) {+ assert(u->child[1]->parent == u);+ assert(u->child[1] != u);+ do_check_tree(m, u->child[1]);+ }+ if (u->child[0] != 0 && u->child[1] != 0) {+ assert(chunksize(u->child[0]) < chunksize(u->child[1]));+ }+ }+ u = u->fd;+ } while (u != t);+ assert(head != 0);+}++/* Check all the chunks in a treebin. */+static void do_check_treebin(mstate m, bindex_t i) {+ tbinptr* tb = treebin_at(m, i);+ tchunkptr t = *tb;+ int empty = (m->treemap & (1U << i)) == 0;+ if (t == 0)+ assert(empty);+ if (!empty)+ do_check_tree(m, t);+}++/* Check all the chunks in a smallbin. */+static void do_check_smallbin(mstate m, bindex_t i) {+ sbinptr b = smallbin_at(m, i);+ mchunkptr p = b->bk;+ unsigned int empty = (m->smallmap & (1U << i)) == 0;+ if (p == b)+ assert(empty);+ if (!empty) {+ for (; p != b; p = p->bk) {+ size_t size = chunksize(p);+ mchunkptr q;+ /* each chunk claims to be free */+ do_check_free_chunk(m, p);+ /* chunk belongs in bin */+ assert(small_index(size) == i);+ assert(p->bk == b || chunksize(p->bk) == chunksize(p));+ /* chunk is followed by an inuse chunk */+ q = next_chunk(p);+ if (q->head != FENCEPOST_HEAD)+ do_check_inuse_chunk(m, q);+ }+ }+}++/* Find x in a bin. Used in other check functions. */+static int bin_find(mstate m, mchunkptr x) {+ size_t size = chunksize(x);+ if (is_small(size)) {+ bindex_t sidx = small_index(size);+ sbinptr b = smallbin_at(m, sidx);+ if (smallmap_is_marked(m, sidx)) {+ mchunkptr p = b;+ do {+ if (p == x)+ return 1;+ } while ((p = p->fd) != b);+ }+ }+ else {+ bindex_t tidx;+ compute_tree_index(size, tidx);+ if (treemap_is_marked(m, tidx)) {+ tchunkptr t = *treebin_at(m, tidx);+ size_t sizebits = size << leftshift_for_tree_index(tidx);+ while (t != 0 && chunksize(t) != size) {+ t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1];+ sizebits <<= 1;+ }+ if (t != 0) {+ tchunkptr u = t;+ do {+ if (u == (tchunkptr)x)+ return 1;+ } while ((u = u->fd) != t);+ }+ }+ }+ return 0;+}++/* Traverse each chunk and check it; return total */+static size_t traverse_and_check(mstate m) {+ size_t sum = 0;+ if (is_initialized(m)) {+ msegmentptr s = &m->seg;+ sum += m->topsize + TOP_FOOT_SIZE;+ while (s != 0) {+ mchunkptr q = align_as_chunk(s->base);+ mchunkptr lastq = 0;+ assert(pinuse(q));+ while (segment_holds(s, q) &&+ q != m->top && q->head != FENCEPOST_HEAD) {+ sum += chunksize(q);+ if (is_inuse(q)) {+ assert(!bin_find(m, q));+ do_check_inuse_chunk(m, q);+ }+ else {+ assert(q == m->dv || bin_find(m, q));+ assert(lastq == 0 || is_inuse(lastq)); /* Not 2 consecutive free */+ do_check_free_chunk(m, q);+ }+ lastq = q;+ q = next_chunk(q);+ }+ s = s->next;+ }+ }+ return sum;+}+++/* Check all properties of malloc_state. */+static void do_check_malloc_state(mstate m) {+ bindex_t i;+ size_t total;+ /* check bins */+ for (i = 0; i < NSMALLBINS; ++i)+ do_check_smallbin(m, i);+ for (i = 0; i < NTREEBINS; ++i)+ do_check_treebin(m, i);++ if (m->dvsize != 0) { /* check dv chunk */+ do_check_any_chunk(m, m->dv);+ assert(m->dvsize == chunksize(m->dv));+ assert(m->dvsize >= MIN_CHUNK_SIZE);+ assert(bin_find(m, m->dv) == 0);+ }++ if (m->top != 0) { /* check top chunk */+ do_check_top_chunk(m, m->top);+ /*assert(m->topsize == chunksize(m->top)); redundant */+ assert(m->topsize > 0);+ assert(bin_find(m, m->top) == 0);+ }++ total = traverse_and_check(m);+ assert(total <= m->footprint);+ assert(m->footprint <= m->max_footprint);+}+#endif /* DEBUG */++/* ----------------------------- statistics ------------------------------ */++#if !NO_MALLINFO+static struct mallinfo internal_mallinfo(mstate m) {+ struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };+ ensure_initialization();+ if (!PREACTION(m)) {+ check_malloc_state(m);+ if (is_initialized(m)) {+ size_t nfree = SIZE_T_ONE; /* top always free */+ size_t mfree = m->topsize + TOP_FOOT_SIZE;+ size_t sum = mfree;+ msegmentptr s = &m->seg;+ while (s != 0) {+ mchunkptr q = align_as_chunk(s->base);+ while (segment_holds(s, q) &&+ q != m->top && q->head != FENCEPOST_HEAD) {+ size_t sz = chunksize(q);+ sum += sz;+ if (!is_inuse(q)) {+ mfree += sz;+ ++nfree;+ }+ q = next_chunk(q);+ }+ s = s->next;+ }++ nm.arena = sum;+ nm.ordblks = nfree;+ nm.hblkhd = m->footprint - sum;+ nm.usmblks = m->max_footprint;+ nm.uordblks = m->footprint - mfree;+ nm.fordblks = mfree;+ nm.keepcost = m->topsize;+ }++ POSTACTION(m);+ }+ return nm;+}+#endif /* !NO_MALLINFO */++#if !NO_MALLOC_STATS+static void internal_malloc_stats(mstate m) {+ ensure_initialization();+ if (!PREACTION(m)) {+ size_t maxfp = 0;+ size_t fp = 0;+ size_t used = 0;+ check_malloc_state(m);+ if (is_initialized(m)) {+ msegmentptr s = &m->seg;+ maxfp = m->max_footprint;+ fp = m->footprint;+ used = fp - (m->topsize + TOP_FOOT_SIZE);++ while (s != 0) {+ mchunkptr q = align_as_chunk(s->base);+ while (segment_holds(s, q) &&+ q != m->top && q->head != FENCEPOST_HEAD) {+ if (!is_inuse(q))+ used -= chunksize(q);+ q = next_chunk(q);+ }+ s = s->next;+ }+ }+ POSTACTION(m); /* drop lock */+ fprintf(stderr, "max system bytes = %10lu\n", (unsigned long)(maxfp));+ fprintf(stderr, "system bytes = %10lu\n", (unsigned long)(fp));+ fprintf(stderr, "in use bytes = %10lu\n", (unsigned long)(used));+ }+}+#endif /* NO_MALLOC_STATS */++/* ----------------------- Operations on smallbins ----------------------- */++/*+ Various forms of linking and unlinking are defined as macros. Even+ the ones for trees, which are very long but have very short typical+ paths. This is ugly but reduces reliance on inlining support of+ compilers.+*/++/* Link a free chunk into a smallbin */+#define insert_small_chunk(M, P, S) {\+ bindex_t I = small_index(S);\+ mchunkptr B = smallbin_at(M, I);\+ mchunkptr F = B;\+ assert(S >= MIN_CHUNK_SIZE);\+ if (!smallmap_is_marked(M, I))\+ mark_smallmap(M, I);\+ else if (RTCHECK(ok_address(M, B->fd)))\+ F = B->fd;\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ B->fd = P;\+ F->bk = P;\+ P->fd = F;\+ P->bk = B;\+}++/* Unlink a chunk from a smallbin */+#define unlink_small_chunk(M, P, S) {\+ mchunkptr F = P->fd;\+ mchunkptr B = P->bk;\+ bindex_t I = small_index(S);\+ assert(P != B);\+ assert(P != F);\+ assert(chunksize(P) == small_index2size(I));\+ if (RTCHECK(F == smallbin_at(M,I) || (ok_address(M, F) && F->bk == P))) { \+ if (B == F) {\+ clear_smallmap(M, I);\+ }\+ else if (RTCHECK(B == smallbin_at(M,I) ||\+ (ok_address(M, B) && B->fd == P))) {\+ F->bk = B;\+ B->fd = F;\+ }\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ }\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ }\+}++/* Unlink the first chunk from a smallbin */+#define unlink_first_small_chunk(M, B, P, I) {\+ mchunkptr F = P->fd;\+ assert(P != B);\+ assert(P != F);\+ assert(chunksize(P) == small_index2size(I));\+ if (B == F) {\+ clear_smallmap(M, I);\+ }\+ else if (RTCHECK(ok_address(M, F) && F->bk == P)) {\+ F->bk = B;\+ B->fd = F;\+ }\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ }\+}++/* Replace dv node, binning the old one */+/* Used only when dvsize known to be small */+#define replace_dv(M, P, S) {\+ size_t DVS = M->dvsize;\+ assert(is_small(DVS));\+ if (DVS != 0) {\+ mchunkptr DV = M->dv;\+ insert_small_chunk(M, DV, DVS);\+ }\+ M->dvsize = S;\+ M->dv = P;\+}++/* ------------------------- Operations on trees ------------------------- */++/* Insert chunk into tree */+#define insert_large_chunk(M, X, S) {\+ tbinptr* H;\+ bindex_t I;\+ compute_tree_index(S, I);\+ H = treebin_at(M, I);\+ X->index = I;\+ X->child[0] = X->child[1] = 0;\+ if (!treemap_is_marked(M, I)) {\+ mark_treemap(M, I);\+ *H = X;\+ X->parent = (tchunkptr)H;\+ X->fd = X->bk = X;\+ }\+ else {\+ tchunkptr T = *H;\+ size_t K = S << leftshift_for_tree_index(I);\+ for (;;) {\+ if (chunksize(T) != S) {\+ tchunkptr* C = &(T->child[(K >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1]);\+ K <<= 1;\+ if (*C != 0)\+ T = *C;\+ else if (RTCHECK(ok_address(M, C))) {\+ *C = X;\+ X->parent = T;\+ X->fd = X->bk = X;\+ break;\+ }\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ break;\+ }\+ }\+ else {\+ tchunkptr F = T->fd;\+ if (RTCHECK(ok_address(M, T) && ok_address(M, F))) {\+ T->fd = F->bk = X;\+ X->fd = F;\+ X->bk = T;\+ X->parent = 0;\+ break;\+ }\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ break;\+ }\+ }\+ }\+ }\+}++/*+ Unlink steps:++ 1. If x is a chained node, unlink it from its same-sized fd/bk links+ and choose its bk node as its replacement.+ 2. If x was the last node of its size, but not a leaf node, it must+ be replaced with a leaf node (not merely one with an open left or+ right), to make sure that lefts and rights of descendants+ correspond properly to bit masks. We use the rightmost descendant+ of x. We could use any other leaf, but this is easy to locate and+ tends to counteract removal of leftmosts elsewhere, and so keeps+ paths shorter than minimally guaranteed. This doesn't loop much+ because on average a node in a tree is near the bottom.+ 3. If x is the base of a chain (i.e., has parent links) relink+ x's parent and children to x's replacement (or null if none).+*/++#define unlink_large_chunk(M, X) {\+ tchunkptr XP = X->parent;\+ tchunkptr R;\+ if (X->bk != X) {\+ tchunkptr F = X->fd;\+ R = X->bk;\+ if (RTCHECK(ok_address(M, F) && F->bk == X && R->fd == X)) {\+ F->bk = R;\+ R->fd = F;\+ }\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ }\+ else {\+ tchunkptr* RP;\+ if (((R = *(RP = &(X->child[1]))) != 0) ||\+ ((R = *(RP = &(X->child[0]))) != 0)) {\+ tchunkptr* CP;\+ while ((*(CP = &(R->child[1])) != 0) ||\+ (*(CP = &(R->child[0])) != 0)) {\+ R = *(RP = CP);\+ }\+ if (RTCHECK(ok_address(M, RP)))\+ *RP = 0;\+ else {\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ }\+ }\+ if (XP != 0) {\+ tbinptr* H = treebin_at(M, X->index);\+ if (X == *H) {\+ if ((*H = R) == 0) \+ clear_treemap(M, X->index);\+ }\+ else if (RTCHECK(ok_address(M, XP))) {\+ if (XP->child[0] == X) \+ XP->child[0] = R;\+ else \+ XP->child[1] = R;\+ }\+ else\+ CORRUPTION_ERROR_ACTION(M);\+ if (R != 0) {\+ if (RTCHECK(ok_address(M, R))) {\+ tchunkptr C0, C1;\+ R->parent = XP;\+ if ((C0 = X->child[0]) != 0) {\+ if (RTCHECK(ok_address(M, C0))) {\+ R->child[0] = C0;\+ C0->parent = R;\+ }\+ else\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ if ((C1 = X->child[1]) != 0) {\+ if (RTCHECK(ok_address(M, C1))) {\+ R->child[1] = C1;\+ C1->parent = R;\+ }\+ else\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ }\+ else\+ CORRUPTION_ERROR_ACTION(M);\+ }\+ }\+}++/* Relays to large vs small bin operations */++#define insert_chunk(M, P, S)\+ if (is_small(S)) insert_small_chunk(M, P, S)\+ else { tchunkptr TP = (tchunkptr)(P); insert_large_chunk(M, TP, S); }++#define unlink_chunk(M, P, S)\+ if (is_small(S)) unlink_small_chunk(M, P, S)\+ else { tchunkptr TP = (tchunkptr)(P); unlink_large_chunk(M, TP); }+++/* Relays to internal calls to malloc/free from realloc, memalign etc */++#if ONLY_MSPACES+#define internal_malloc(m, b) mspace_malloc(m, b)+#define internal_free(m, mem) mspace_free(m,mem);+#else /* ONLY_MSPACES */+#if MSPACES+#define internal_malloc(m, b)\+ ((m == gm)? dlmalloc(b) : mspace_malloc(m, b))+#define internal_free(m, mem)\+ if (m == gm) dlfree(mem); else mspace_free(m,mem);+#else /* MSPACES */+#define internal_malloc(m, b) dlmalloc(b)+#define internal_free(m, mem) dlfree(mem)+#endif /* MSPACES */+#endif /* ONLY_MSPACES */++/* ----------------------- Direct-mmapping chunks ----------------------- */++/*+ Directly mmapped chunks are set up with an offset to the start of+ the mmapped region stored in the prev_foot field of the chunk. This+ allows reconstruction of the required argument to MUNMAP when freed,+ and also allows adjustment of the returned chunk to meet alignment+ requirements (especially in memalign).+*/++/* Malloc using mmap */+static void* mmap_alloc(mstate m, size_t nb) {+ size_t mmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK);+ if (m->footprint_limit != 0) {+ size_t fp = m->footprint + mmsize;+ if (fp <= m->footprint || fp > m->footprint_limit)+ return 0;+ }+ if (mmsize > nb) { /* Check for wrap around 0 */+ char* mm = (char*)(CALL_DIRECT_MMAP(mmsize));+ if (mm != CMFAIL) {+ size_t offset = align_offset(chunk2mem(mm));+ size_t psize = mmsize - offset - MMAP_FOOT_PAD;+ mchunkptr p = (mchunkptr)(mm + offset);+ p->prev_foot = offset;+ p->head = psize;+ mark_inuse_foot(m, p, psize);+ chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD;+ chunk_plus_offset(p, psize+SIZE_T_SIZE)->head = 0;++ if (m->least_addr == 0 || mm < m->least_addr)+ m->least_addr = mm;+ if ((m->footprint += mmsize) > m->max_footprint)+ m->max_footprint = m->footprint;+ assert(is_aligned(chunk2mem(p)));+ check_mmapped_chunk(m, p);+ return chunk2mem(p);+ }+ }+ return 0;+}++/* Realloc using mmap */+static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb, int flags) {+ size_t oldsize = chunksize(oldp);+ (void)flags; /* placate people compiling -Wunused */+ if (is_small(nb)) /* Can't shrink mmap regions below small size */+ return 0;+ /* Keep old chunk if big enough but not too big */+ if (oldsize >= nb + SIZE_T_SIZE &&+ (oldsize - nb) <= (mparams.granularity << 1))+ return oldp;+ else {+ size_t offset = oldp->prev_foot;+ size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD;+ size_t newmmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK);+ char* cp = (char*)CALL_MREMAP((char*)oldp - offset,+ oldmmsize, newmmsize, flags);+ if (cp != CMFAIL) {+ mchunkptr newp = (mchunkptr)(cp + offset);+ size_t psize = newmmsize - offset - MMAP_FOOT_PAD;+ newp->head = psize;+ mark_inuse_foot(m, newp, psize);+ chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD;+ chunk_plus_offset(newp, psize+SIZE_T_SIZE)->head = 0;++ if (cp < m->least_addr)+ m->least_addr = cp;+ if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint)+ m->max_footprint = m->footprint;+ check_mmapped_chunk(m, newp);+ return newp;+ }+ }+ return 0;+}+++/* -------------------------- mspace management -------------------------- */++/* Initialize top chunk and its size */+static void init_top(mstate m, mchunkptr p, size_t psize) {+ /* Ensure alignment */+ size_t offset = align_offset(chunk2mem(p));+ p = (mchunkptr)((char*)p + offset);+ psize -= offset;++ m->top = p;+ m->topsize = psize;+ p->head = psize | PINUSE_BIT;+ /* set size of fake trailing chunk holding overhead space only once */+ chunk_plus_offset(p, psize)->head = TOP_FOOT_SIZE;+ m->trim_check = mparams.trim_threshold; /* reset on each update */+}++/* Initialize bins for a new mstate that is otherwise zeroed out */+static void init_bins(mstate m) {+ /* Establish circular links for smallbins */+ bindex_t i;+ for (i = 0; i < NSMALLBINS; ++i) {+ sbinptr bin = smallbin_at(m,i);+ bin->fd = bin->bk = bin;+ }+}++#if PROCEED_ON_ERROR++/* default corruption action */+static void reset_on_error(mstate m) {+ int i;+ ++malloc_corruption_error_count;+ /* Reinitialize fields to forget about all memory */+ m->smallmap = m->treemap = 0;+ m->dvsize = m->topsize = 0;+ m->seg.base = 0;+ m->seg.size = 0;+ m->seg.next = 0;+ m->top = m->dv = 0;+ for (i = 0; i < NTREEBINS; ++i)+ *treebin_at(m, i) = 0;+ init_bins(m);+}+#endif /* PROCEED_ON_ERROR */++/* Allocate chunk and prepend remainder with chunk in successor base. */+static void* prepend_alloc(mstate m, char* newbase, char* oldbase,+ size_t nb) {+ mchunkptr p = align_as_chunk(newbase);+ mchunkptr oldfirst = align_as_chunk(oldbase);+ size_t psize = (char*)oldfirst - (char*)p;+ mchunkptr q = chunk_plus_offset(p, nb);+ size_t qsize = psize - nb;+ set_size_and_pinuse_of_inuse_chunk(m, p, nb);++ assert((char*)oldfirst > (char*)q);+ assert(pinuse(oldfirst));+ assert(qsize >= MIN_CHUNK_SIZE);++ /* consolidate remainder with first chunk of old base */+ if (oldfirst == m->top) {+ size_t tsize = m->topsize += qsize;+ m->top = q;+ q->head = tsize | PINUSE_BIT;+ check_top_chunk(m, q);+ }+ else if (oldfirst == m->dv) {+ size_t dsize = m->dvsize += qsize;+ m->dv = q;+ set_size_and_pinuse_of_free_chunk(q, dsize);+ }+ else {+ if (!is_inuse(oldfirst)) {+ size_t nsize = chunksize(oldfirst);+ unlink_chunk(m, oldfirst, nsize);+ oldfirst = chunk_plus_offset(oldfirst, nsize);+ qsize += nsize;+ }+ set_free_with_pinuse(q, qsize, oldfirst);+ insert_chunk(m, q, qsize);+ check_free_chunk(m, q);+ }++ check_malloced_chunk(m, chunk2mem(p), nb);+ return chunk2mem(p);+}++/* Add a segment to hold a new noncontiguous region */+static void add_segment(mstate m, char* tbase, size_t tsize, flag_t mmapped) {+ /* Determine locations and sizes of segment, fenceposts, old top */+ char* old_top = (char*)m->top;+ msegmentptr oldsp = segment_holding(m, old_top);+ char* old_end = oldsp->base + oldsp->size;+ size_t ssize = pad_request(sizeof(struct malloc_segment));+ char* rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK);+ size_t offset = align_offset(chunk2mem(rawsp));+ char* asp = rawsp + offset;+ char* csp = (asp < (old_top + MIN_CHUNK_SIZE))? old_top : asp;+ mchunkptr sp = (mchunkptr)csp;+ msegmentptr ss = (msegmentptr)(chunk2mem(sp));+ mchunkptr tnext = chunk_plus_offset(sp, ssize);+ mchunkptr p = tnext;+ int nfences = 0;+ (void)nfences; /* Suppress unused variable warning */++ /* reset top to new space */+ init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE);++ /* Set up segment record */+ assert(is_aligned(ss));+ set_size_and_pinuse_of_inuse_chunk(m, sp, ssize);+ *ss = m->seg; /* Push current record */+ m->seg.base = tbase;+ m->seg.size = tsize;+ (void)set_segment_flags(&m->seg, mmapped);+ m->seg.next = ss;++ /* Insert trailing fenceposts */+ for (;;) {+ mchunkptr nextp = chunk_plus_offset(p, SIZE_T_SIZE);+ p->head = FENCEPOST_HEAD;+ ++nfences;+ if ((char*)(&(nextp->head)) < old_end)+ p = nextp;+ else+ break;+ }+ assert(nfences >= 2);++ /* Insert the rest of old top into a bin as an ordinary free chunk */+ if (csp != old_top) {+ mchunkptr q = (mchunkptr)old_top;+ size_t psize = csp - old_top;+ mchunkptr tn = chunk_plus_offset(q, psize);+ set_free_with_pinuse(q, psize, tn);+ insert_chunk(m, q, psize);+ }++ check_top_chunk(m, m->top);+}++/* -------------------------- System allocation -------------------------- */++/* Get memory from system using MORECORE or MMAP */+static void* sys_alloc(mstate m, size_t nb) {+ char* tbase = CMFAIL;+ size_t tsize = 0;+ flag_t mmap_flag = 0;+ size_t asize; /* allocation size */++ ensure_initialization();++ /* Directly map large chunks, but only if already initialized */+ if (use_mmap(m) && nb >= mparams.mmap_threshold && m->topsize != 0) {+ void* mem = mmap_alloc(m, nb);+ if (mem != 0)+ return mem;+ }++ asize = granularity_align(nb + SYS_ALLOC_PADDING);+ if (asize <= nb)+ return 0; /* wraparound */+ if (m->footprint_limit != 0) {+ size_t fp = m->footprint + asize;+ if (fp <= m->footprint || fp > m->footprint_limit)+ return 0;+ }++ /*+ Try getting memory in any of three ways (in most-preferred to+ least-preferred order):+ 1. A call to MORECORE that can normally contiguously extend memory.+ (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or+ or main space is mmapped or a previous contiguous call failed)+ 2. A call to MMAP new space (disabled if not HAVE_MMAP).+ Note that under the default settings, if MORECORE is unable to+ fulfill a request, and HAVE_MMAP is true, then mmap is+ used as a noncontiguous system allocator. This is a useful backup+ strategy for systems with holes in address spaces -- in this case+ sbrk cannot contiguously expand the heap, but mmap may be able to+ find space.+ 3. A call to MORECORE that cannot usually contiguously extend memory.+ (disabled if not HAVE_MORECORE)++ In all cases, we need to request enough bytes from system to ensure+ we can malloc nb bytes upon success, so pad with enough space for+ top_foot, plus alignment-pad to make sure we don't lose bytes if+ not on boundary, and round this up to a granularity unit.+ */++ if (MORECORE_CONTIGUOUS && !use_noncontiguous(m)) {+ char* br = CMFAIL;+ size_t ssize = asize; /* sbrk call size */+ msegmentptr ss = (m->top == 0)? 0 : segment_holding(m, (char*)m->top);+ ACQUIRE_MALLOC_GLOBAL_LOCK();++ if (ss == 0) { /* First time through or recovery */+ char* base = (char*)CALL_MORECORE(0);+ if (base != CMFAIL) {+ size_t fp;+ /* Adjust to end on a page boundary */+ if (!is_page_aligned(base))+ ssize += (page_align((size_t)base) - (size_t)base);+ fp = m->footprint + ssize; /* recheck limits */+ if (ssize > nb && ssize < HALF_MAX_SIZE_T &&+ (m->footprint_limit == 0 ||+ (fp > m->footprint && fp <= m->footprint_limit)) &&+ (br = (char*)(CALL_MORECORE(ssize))) == base) {+ tbase = base;+ tsize = ssize;+ }+ }+ }+ else {+ /* Subtract out existing available top space from MORECORE request. */+ ssize = granularity_align(nb - m->topsize + SYS_ALLOC_PADDING);+ /* Use mem here only if it did continuously extend old space */+ if (ssize < HALF_MAX_SIZE_T &&+ (br = (char*)(CALL_MORECORE(ssize))) == ss->base+ss->size) {+ tbase = br;+ tsize = ssize;+ }+ }++ if (tbase == CMFAIL) { /* Cope with partial failure */+ if (br != CMFAIL) { /* Try to use/extend the space we did get */+ if (ssize < HALF_MAX_SIZE_T &&+ ssize < nb + SYS_ALLOC_PADDING) {+ size_t esize = granularity_align(nb + SYS_ALLOC_PADDING - ssize);+ if (esize < HALF_MAX_SIZE_T) {+ char* end = (char*)CALL_MORECORE(esize);+ if (end != CMFAIL)+ ssize += esize;+ else { /* Can't use; try to release */+ (void) CALL_MORECORE(-ssize);+ br = CMFAIL;+ }+ }+ }+ }+ if (br != CMFAIL) { /* Use the space we did get */+ tbase = br;+ tsize = ssize;+ }+ else+ disable_contiguous(m); /* Don't try contiguous path in the future */+ }++ RELEASE_MALLOC_GLOBAL_LOCK();+ }++ if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */+ char* mp = (char*)(CALL_MMAP(asize));+ if (mp != CMFAIL) {+ tbase = mp;+ tsize = asize;+ mmap_flag = USE_MMAP_BIT;+ }+ }++ if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */+ if (asize < HALF_MAX_SIZE_T) {+ char* br = CMFAIL;+ char* end = CMFAIL;+ ACQUIRE_MALLOC_GLOBAL_LOCK();+ br = (char*)(CALL_MORECORE(asize));+ end = (char*)(CALL_MORECORE(0));+ RELEASE_MALLOC_GLOBAL_LOCK();+ if (br != CMFAIL && end != CMFAIL && br < end) {+ size_t ssize = end - br;+ if (ssize > nb + TOP_FOOT_SIZE) {+ tbase = br;+ tsize = ssize;+ }+ }+ }+ }++ if (tbase != CMFAIL) {++ if ((m->footprint += tsize) > m->max_footprint)+ m->max_footprint = m->footprint;++ if (!is_initialized(m)) { /* first-time initialization */+ if (m->least_addr == 0 || tbase < m->least_addr)+ m->least_addr = tbase;+ m->seg.base = tbase;+ m->seg.size = tsize;+ (void)set_segment_flags(&m->seg, mmap_flag);+ m->magic = mparams.magic;+ m->release_checks = MAX_RELEASE_CHECK_RATE;+ init_bins(m);+#if !ONLY_MSPACES+ if (is_global(m))+ init_top(m, (mchunkptr)tbase, tsize - TOP_FOOT_SIZE);+ else+#endif+ {+ /* Offset top by embedded malloc_state */+ mchunkptr mn = next_chunk(mem2chunk(m));+ init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) -TOP_FOOT_SIZE);+ }+ }++ else {+ /* Try to merge with an existing segment */+ msegmentptr sp = &m->seg;+ /* Only consider most recent segment if traversal suppressed */+ while (sp != 0 && tbase != sp->base + sp->size)+ sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next;+ if (sp != 0 &&+ !is_extern_segment(sp) &&+ check_segment_merge(sp, tbase, tsize) &&+ (get_segment_flags(sp) & USE_MMAP_BIT) == mmap_flag &&+ segment_holds(sp, m->top)) { /* append */+ sp->size += tsize;+ init_top(m, m->top, m->topsize + tsize);+ }+ else {+ if (tbase < m->least_addr)+ m->least_addr = tbase;+ sp = &m->seg;+ while (sp != 0 && sp->base != tbase + tsize)+ sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next;+ if (sp != 0 &&+ !is_extern_segment(sp) &&+ check_segment_merge(sp, tbase, tsize) &&+ (get_segment_flags(sp) & USE_MMAP_BIT) == mmap_flag) {+ char* oldbase = sp->base;+ sp->base = tbase;+ sp->size += tsize;+ return prepend_alloc(m, tbase, oldbase, nb);+ }+ else+ add_segment(m, tbase, tsize, mmap_flag);+ }+ }++ if (nb < m->topsize) { /* Allocate from new or extended top space */+ size_t rsize = m->topsize -= nb;+ mchunkptr p = m->top;+ mchunkptr r = m->top = chunk_plus_offset(p, nb);+ r->head = rsize | PINUSE_BIT;+ set_size_and_pinuse_of_inuse_chunk(m, p, nb);+ check_top_chunk(m, m->top);+ check_malloced_chunk(m, chunk2mem(p), nb);+ return chunk2mem(p);+ }+ }++ MALLOC_FAILURE_ACTION;+ return 0;+}++/* ----------------------- system deallocation -------------------------- */++/* Unmap and unlink any mmapped segments that don't contain used chunks */+static size_t release_unused_segments(mstate m) {+ size_t released = 0;+ int nsegs = 0;+ msegmentptr pred = &m->seg;+ msegmentptr sp = pred->next;+ while (sp != 0) {+ char* base = sp->base;+ size_t size = sp->size;+ msegmentptr next = sp->next;+ ++nsegs;+ if (is_mmapped_segment(sp) && !is_extern_segment(sp)) {+ mchunkptr p = align_as_chunk(base);+ size_t psize = chunksize(p);+ /* Can unmap if first chunk holds entire segment and not pinned */+ if (!is_inuse(p) && (char*)p + psize >= base + size - TOP_FOOT_SIZE) {+ tchunkptr tp = (tchunkptr)p;+ assert(segment_holds(sp, (char*)sp));+ if (p == m->dv) {+ m->dv = 0;+ m->dvsize = 0;+ }+ else {+ unlink_large_chunk(m, tp);+ }+ if (CALL_MUNMAP(base, size) == 0) {+ released += size;+ m->footprint -= size;+ /* unlink obsoleted record */+ sp = pred;+ sp->next = next;+ }+ else { /* back out if cannot unmap */+ insert_large_chunk(m, tp, psize);+ }+ }+ }+ if (NO_SEGMENT_TRAVERSAL) /* scan only first segment */+ break;+ pred = sp;+ sp = next;+ }+ /* Reset check counter */+ m->release_checks = (((size_t) nsegs > (size_t) MAX_RELEASE_CHECK_RATE)?+ (size_t) nsegs : (size_t) MAX_RELEASE_CHECK_RATE);+ return released;+}++static int sys_trim(mstate m, size_t pad) {+ size_t released = 0;+ ensure_initialization();+ if (pad < MAX_REQUEST && is_initialized(m)) {+ pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */++ if (m->topsize > pad) {+ /* Shrink top space in granularity-size units, keeping at least one */+ size_t unit = mparams.granularity;+ size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit -+ SIZE_T_ONE) * unit;+ msegmentptr sp = segment_holding(m, (char*)m->top);++ if (sp == 0)+ CORRUPTION_ERROR_ACTION(m);+ if (!is_extern_segment(sp)) {+ if (is_mmapped_segment(sp)) {+ if (HAVE_MMAP &&+ sp->size >= extra &&+ !has_segment_link(m, sp)) { /* can't shrink if pinned */+ size_t newsize = sp->size - extra;+ (void)newsize; /* placate people compiling -Wunused-variable */+ /* Prefer mremap, fall back to munmap */+ if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) ||+ (CALL_MUNMAP(sp->base + newsize, extra) == 0)) {+ released = extra;+ }+ }+ }+ else if (HAVE_MORECORE) {+ if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */+ extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit;+ ACQUIRE_MALLOC_GLOBAL_LOCK();+ {+ /* Make sure end of memory is where we last set it. */+ char* old_br = (char*)(CALL_MORECORE(0));+ if (old_br == sp->base + sp->size) {+ char* rel_br = (char*)(CALL_MORECORE(-extra));+ char* new_br = (char*)(CALL_MORECORE(0));+ if (rel_br != CMFAIL && new_br < old_br)+ released = old_br - new_br;+ }+ }+ RELEASE_MALLOC_GLOBAL_LOCK();+ }+ }++ if (released != 0) {+ sp->size -= released;+ m->footprint -= released;+ init_top(m, m->top, m->topsize - released);+ check_top_chunk(m, m->top);+ }+ }++ /* Unmap any unused mmapped segments */+ if (HAVE_MMAP)+ released += release_unused_segments(m);++ /* On failure, disable autotrim to avoid repeated failed future calls */+ if (released == 0 && m->topsize > m->trim_check)+ m->trim_check = MAX_SIZE_T;+ }++ return (released != 0)? 1 : 0;+}++/* Consolidate and bin a chunk. Differs from exported versions+ of free mainly in that the chunk need not be marked as inuse.+*/+static void dispose_chunk(mstate m, mchunkptr p, size_t psize) {+ mchunkptr next = chunk_plus_offset(p, psize);+ if (!pinuse(p)) {+ mchunkptr prev;+ size_t prevsize = p->prev_foot;+ if (is_mmapped(p)) {+ psize += prevsize + MMAP_FOOT_PAD;+ if (CALL_MUNMAP((char*)p - prevsize, psize) == 0)+ m->footprint -= psize;+ return;+ }+ prev = chunk_minus_offset(p, prevsize);+ psize += prevsize;+ p = prev;+ if (RTCHECK(ok_address(m, prev))) { /* consolidate backward */+ if (p != m->dv) {+ unlink_chunk(m, p, prevsize);+ }+ else if ((next->head & INUSE_BITS) == INUSE_BITS) {+ m->dvsize = psize;+ set_free_with_pinuse(p, psize, next);+ return;+ }+ }+ else {+ CORRUPTION_ERROR_ACTION(m);+ return;+ }+ }+ if (RTCHECK(ok_address(m, next))) {+ if (!cinuse(next)) { /* consolidate forward */+ if (next == m->top) {+ size_t tsize = m->topsize += psize;+ m->top = p;+ p->head = tsize | PINUSE_BIT;+ if (p == m->dv) {+ m->dv = 0;+ m->dvsize = 0;+ }+ return;+ }+ else if (next == m->dv) {+ size_t dsize = m->dvsize += psize;+ m->dv = p;+ set_size_and_pinuse_of_free_chunk(p, dsize);+ return;+ }+ else {+ size_t nsize = chunksize(next);+ psize += nsize;+ unlink_chunk(m, next, nsize);+ set_size_and_pinuse_of_free_chunk(p, psize);+ if (p == m->dv) {+ m->dvsize = psize;+ return;+ }+ }+ }+ else {+ set_free_with_pinuse(p, psize, next);+ }+ insert_chunk(m, p, psize);+ }+ else {+ CORRUPTION_ERROR_ACTION(m);+ }+}++/* ---------------------------- malloc --------------------------- */++/* allocate a large request from the best fitting chunk in a treebin */+static void* tmalloc_large(mstate m, size_t nb) {+ tchunkptr v = 0;+ size_t rsize = -nb; /* Unsigned negation */+ tchunkptr t;+ bindex_t idx;+ compute_tree_index(nb, idx);+ if ((t = *treebin_at(m, idx)) != 0) {+ /* Traverse tree for this bin looking for node with size == nb */+ size_t sizebits = nb << leftshift_for_tree_index(idx);+ tchunkptr rst = 0; /* The deepest untaken right subtree */+ for (;;) {+ tchunkptr rt;+ size_t trem = chunksize(t) - nb;+ if (trem < rsize) {+ v = t;+ if ((rsize = trem) == 0)+ break;+ }+ rt = t->child[1];+ t = t->child[(sizebits >> (SIZE_T_BITSIZE-SIZE_T_ONE)) & 1];+ if (rt != 0 && rt != t)+ rst = rt;+ if (t == 0) {+ t = rst; /* set t to least subtree holding sizes > nb */+ break;+ }+ sizebits <<= 1;+ }+ }+ if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */+ binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap;+ if (leftbits != 0) {+ bindex_t i;+ binmap_t leastbit = least_bit(leftbits);+ compute_bit2idx(leastbit, i);+ t = *treebin_at(m, i);+ }+ }++ while (t != 0) { /* find smallest of tree or subtree */+ size_t trem = chunksize(t) - nb;+ if (trem < rsize) {+ rsize = trem;+ v = t;+ }+ t = leftmost_child(t);+ }++ /* If dv is a better fit, return 0 so malloc will use it */+ if (v != 0 && rsize < (size_t)(m->dvsize - nb)) {+ if (RTCHECK(ok_address(m, v))) { /* split */+ mchunkptr r = chunk_plus_offset(v, nb);+ assert(chunksize(v) == rsize + nb);+ if (RTCHECK(ok_next(v, r))) {+ unlink_large_chunk(m, v);+ if (rsize < MIN_CHUNK_SIZE)+ set_inuse_and_pinuse(m, v, (rsize + nb));+ else {+ set_size_and_pinuse_of_inuse_chunk(m, v, nb);+ set_size_and_pinuse_of_free_chunk(r, rsize);+ insert_chunk(m, r, rsize);+ }+ return chunk2mem(v);+ }+ }+ CORRUPTION_ERROR_ACTION(m);+ }+ return 0;+}++/* allocate a small request from the best fitting chunk in a treebin */+static void* tmalloc_small(mstate m, size_t nb) {+ tchunkptr t, v;+ size_t rsize;+ bindex_t i;+ binmap_t leastbit = least_bit(m->treemap);+ compute_bit2idx(leastbit, i);+ v = t = *treebin_at(m, i);+ rsize = chunksize(t) - nb;++ while ((t = leftmost_child(t)) != 0) {+ size_t trem = chunksize(t) - nb;+ if (trem < rsize) {+ rsize = trem;+ v = t;+ }+ }++ if (RTCHECK(ok_address(m, v))) {+ mchunkptr r = chunk_plus_offset(v, nb);+ assert(chunksize(v) == rsize + nb);+ if (RTCHECK(ok_next(v, r))) {+ unlink_large_chunk(m, v);+ if (rsize < MIN_CHUNK_SIZE)+ set_inuse_and_pinuse(m, v, (rsize + nb));+ else {+ set_size_and_pinuse_of_inuse_chunk(m, v, nb);+ set_size_and_pinuse_of_free_chunk(r, rsize);+ replace_dv(m, r, rsize);+ }+ return chunk2mem(v);+ }+ }++ CORRUPTION_ERROR_ACTION(m);+ return 0;+}++#if !ONLY_MSPACES++void* dlmalloc(size_t bytes) {+ /*+ Basic algorithm:+ If a small request (< 256 bytes minus per-chunk overhead):+ 1. If one exists, use a remainderless chunk in associated smallbin.+ (Remainderless means that there are too few excess bytes to+ represent as a chunk.)+ 2. If it is big enough, use the dv chunk, which is normally the+ chunk adjacent to the one used for the most recent small request.+ 3. If one exists, split the smallest available chunk in a bin,+ saving remainder in dv.+ 4. If it is big enough, use the top chunk.+ 5. If available, get memory from system and use it+ Otherwise, for a large request:+ 1. Find the smallest available binned chunk that fits, and use it+ if it is better fitting than dv chunk, splitting if necessary.+ 2. If better fitting than any binned chunk, use the dv chunk.+ 3. If it is big enough, use the top chunk.+ 4. If request size >= mmap threshold, try to directly mmap this chunk.+ 5. If available, get memory from system and use it++ The ugly goto's here ensure that postaction occurs along all paths.+ */++#if USE_LOCKS+ ensure_initialization(); /* initialize in sys_alloc if not using locks */+#endif++ if (!PREACTION(gm)) {+ void* mem;+ size_t nb;+ if (bytes <= MAX_SMALL_REQUEST) {+ bindex_t idx;+ binmap_t smallbits;+ nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes);+ idx = small_index(nb);+ smallbits = gm->smallmap >> idx;++ if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */+ mchunkptr b, p;+ idx += ~smallbits & 1; /* Uses next bin if idx empty */+ b = smallbin_at(gm, idx);+ p = b->fd;+ assert(chunksize(p) == small_index2size(idx));+ unlink_first_small_chunk(gm, b, p, idx);+ set_inuse_and_pinuse(gm, p, small_index2size(idx));+ mem = chunk2mem(p);+ check_malloced_chunk(gm, mem, nb);+ goto postaction;+ }++ else if (nb > gm->dvsize) {+ if (smallbits != 0) { /* Use chunk in next nonempty smallbin */+ mchunkptr b, p, r;+ size_t rsize;+ bindex_t i;+ binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx));+ binmap_t leastbit = least_bit(leftbits);+ compute_bit2idx(leastbit, i);+ b = smallbin_at(gm, i);+ p = b->fd;+ assert(chunksize(p) == small_index2size(i));+ unlink_first_small_chunk(gm, b, p, i);+ rsize = small_index2size(i) - nb;+ /* Fit here cannot be remainderless if 4byte sizes */+ if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE)+ set_inuse_and_pinuse(gm, p, small_index2size(i));+ else {+ set_size_and_pinuse_of_inuse_chunk(gm, p, nb);+ r = chunk_plus_offset(p, nb);+ set_size_and_pinuse_of_free_chunk(r, rsize);+ replace_dv(gm, r, rsize);+ }+ mem = chunk2mem(p);+ check_malloced_chunk(gm, mem, nb);+ goto postaction;+ }++ else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) {+ check_malloced_chunk(gm, mem, nb);+ goto postaction;+ }+ }+ }+ else if (bytes >= MAX_REQUEST)+ nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */+ else {+ nb = pad_request(bytes);+ if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) {+ check_malloced_chunk(gm, mem, nb);+ goto postaction;+ }+ }++ if (nb <= gm->dvsize) {+ size_t rsize = gm->dvsize - nb;+ mchunkptr p = gm->dv;+ if (rsize >= MIN_CHUNK_SIZE) { /* split dv */+ mchunkptr r = gm->dv = chunk_plus_offset(p, nb);+ gm->dvsize = rsize;+ set_size_and_pinuse_of_free_chunk(r, rsize);+ set_size_and_pinuse_of_inuse_chunk(gm, p, nb);+ }+ else { /* exhaust dv */+ size_t dvs = gm->dvsize;+ gm->dvsize = 0;+ gm->dv = 0;+ set_inuse_and_pinuse(gm, p, dvs);+ }+ mem = chunk2mem(p);+ check_malloced_chunk(gm, mem, nb);+ goto postaction;+ }++ else if (nb < gm->topsize) { /* Split top */+ size_t rsize = gm->topsize -= nb;+ mchunkptr p = gm->top;+ mchunkptr r = gm->top = chunk_plus_offset(p, nb);+ r->head = rsize | PINUSE_BIT;+ set_size_and_pinuse_of_inuse_chunk(gm, p, nb);+ mem = chunk2mem(p);+ check_top_chunk(gm, gm->top);+ check_malloced_chunk(gm, mem, nb);+ goto postaction;+ }++ mem = sys_alloc(gm, nb);++ postaction:+ POSTACTION(gm);+ return mem;+ }++ return 0;+}++/* ---------------------------- free --------------------------- */++void dlfree(void* mem) {+ /*+ Consolidate freed chunks with preceding or succeeding bordering+ free chunks, if they exist, and then place in a bin. Intermixed+ with special cases for top, dv, mmapped chunks, and usage errors.+ */++ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+#if FOOTERS+ mstate fm = get_mstate_for(p);+ if (!ok_magic(fm)) {+ USAGE_ERROR_ACTION(fm, p);+ return;+ }+#else /* FOOTERS */+#define fm gm+#endif /* FOOTERS */+ if (!PREACTION(fm)) {+ check_inuse_chunk(fm, p);+ if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) {+ size_t psize = chunksize(p);+ mchunkptr next = chunk_plus_offset(p, psize);+ if (!pinuse(p)) {+ size_t prevsize = p->prev_foot;+ if (is_mmapped(p)) {+ psize += prevsize + MMAP_FOOT_PAD;+ if (CALL_MUNMAP((char*)p - prevsize, psize) == 0)+ fm->footprint -= psize;+ goto postaction;+ }+ else {+ mchunkptr prev = chunk_minus_offset(p, prevsize);+ psize += prevsize;+ p = prev;+ if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */+ if (p != fm->dv) {+ unlink_chunk(fm, p, prevsize);+ }+ else if ((next->head & INUSE_BITS) == INUSE_BITS) {+ fm->dvsize = psize;+ set_free_with_pinuse(p, psize, next);+ goto postaction;+ }+ }+ else+ goto erroraction;+ }+ }++ if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) {+ if (!cinuse(next)) { /* consolidate forward */+ if (next == fm->top) {+ size_t tsize = fm->topsize += psize;+ fm->top = p;+ p->head = tsize | PINUSE_BIT;+ if (p == fm->dv) {+ fm->dv = 0;+ fm->dvsize = 0;+ }+ if (should_trim(fm, tsize))+ sys_trim(fm, 0);+ goto postaction;+ }+ else if (next == fm->dv) {+ size_t dsize = fm->dvsize += psize;+ fm->dv = p;+ set_size_and_pinuse_of_free_chunk(p, dsize);+ goto postaction;+ }+ else {+ size_t nsize = chunksize(next);+ psize += nsize;+ unlink_chunk(fm, next, nsize);+ set_size_and_pinuse_of_free_chunk(p, psize);+ if (p == fm->dv) {+ fm->dvsize = psize;+ goto postaction;+ }+ }+ }+ else+ set_free_with_pinuse(p, psize, next);++ if (is_small(psize)) {+ insert_small_chunk(fm, p, psize);+ check_free_chunk(fm, p);+ }+ else {+ tchunkptr tp = (tchunkptr)p;+ insert_large_chunk(fm, tp, psize);+ check_free_chunk(fm, p);+ if (--fm->release_checks == 0)+ release_unused_segments(fm);+ }+ goto postaction;+ }+ }+ erroraction:+ USAGE_ERROR_ACTION(fm, p);+ postaction:+ POSTACTION(fm);+ }+ }+#if !FOOTERS+#undef fm+#endif /* FOOTERS */+}++void* dlcalloc(size_t n_elements, size_t elem_size) {+ void* mem;+ size_t req = 0;+ if (n_elements != 0) {+ req = n_elements * elem_size;+ if (((n_elements | elem_size) & ~(size_t)0xffff) &&+ (req / n_elements != elem_size))+ req = MAX_SIZE_T; /* force downstream failure on overflow */+ }+ mem = dlmalloc(req);+ if (mem != 0 && calloc_must_clear(mem2chunk(mem)))+ memset(mem, 0, req);+ return mem;+}++#endif /* !ONLY_MSPACES */++/* ------------ Internal support for realloc, memalign, etc -------------- */++/* Try to realloc; only in-place unless can_move true */+static mchunkptr try_realloc_chunk(mstate m, mchunkptr p, size_t nb,+ int can_move) {+ mchunkptr newp = 0;+ size_t oldsize = chunksize(p);+ mchunkptr next = chunk_plus_offset(p, oldsize);+ if (RTCHECK(ok_address(m, p) && ok_inuse(p) &&+ ok_next(p, next) && ok_pinuse(next))) {+ if (is_mmapped(p)) {+ newp = mmap_resize(m, p, nb, can_move);+ }+ else if (oldsize >= nb) { /* already big enough */+ size_t rsize = oldsize - nb;+ if (rsize >= MIN_CHUNK_SIZE) { /* split off remainder */+ mchunkptr r = chunk_plus_offset(p, nb);+ set_inuse(m, p, nb);+ set_inuse(m, r, rsize);+ dispose_chunk(m, r, rsize);+ }+ newp = p;+ }+ else if (next == m->top) { /* extend into top */+ if (oldsize + m->topsize > nb) {+ size_t newsize = oldsize + m->topsize;+ size_t newtopsize = newsize - nb;+ mchunkptr newtop = chunk_plus_offset(p, nb);+ set_inuse(m, p, nb);+ newtop->head = newtopsize |PINUSE_BIT;+ m->top = newtop;+ m->topsize = newtopsize;+ newp = p;+ }+ }+ else if (next == m->dv) { /* extend into dv */+ size_t dvs = m->dvsize;+ if (oldsize + dvs >= nb) {+ size_t dsize = oldsize + dvs - nb;+ if (dsize >= MIN_CHUNK_SIZE) {+ mchunkptr r = chunk_plus_offset(p, nb);+ mchunkptr n = chunk_plus_offset(r, dsize);+ set_inuse(m, p, nb);+ set_size_and_pinuse_of_free_chunk(r, dsize);+ clear_pinuse(n);+ m->dvsize = dsize;+ m->dv = r;+ }+ else { /* exhaust dv */+ size_t newsize = oldsize + dvs;+ set_inuse(m, p, newsize);+ m->dvsize = 0;+ m->dv = 0;+ }+ newp = p;+ }+ }+ else if (!cinuse(next)) { /* extend into next free chunk */+ size_t nextsize = chunksize(next);+ if (oldsize + nextsize >= nb) {+ size_t rsize = oldsize + nextsize - nb;+ unlink_chunk(m, next, nextsize);+ if (rsize < MIN_CHUNK_SIZE) {+ size_t newsize = oldsize + nextsize;+ set_inuse(m, p, newsize);+ }+ else {+ mchunkptr r = chunk_plus_offset(p, nb);+ set_inuse(m, p, nb);+ set_inuse(m, r, rsize);+ dispose_chunk(m, r, rsize);+ }+ newp = p;+ }+ }+ }+ else {+ USAGE_ERROR_ACTION(m, chunk2mem(p));+ }+ return newp;+}++static void* internal_memalign(mstate m, size_t alignment, size_t bytes) {+ void* mem = 0;+ if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */+ alignment = MIN_CHUNK_SIZE;+ if ((alignment & (alignment-SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */+ size_t a = MALLOC_ALIGNMENT << 1;+ while (a < alignment) a <<= 1;+ alignment = a;+ }+ if (bytes >= MAX_REQUEST - alignment) {+ if (m != 0) { /* Test isn't needed but avoids compiler warning */+ MALLOC_FAILURE_ACTION;+ }+ }+ else {+ size_t nb = request2size(bytes);+ size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD;+ mem = internal_malloc(m, req);+ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+ if (PREACTION(m))+ return 0;+ if ((((size_t)(mem)) & (alignment - 1)) != 0) { /* misaligned */+ /*+ Find an aligned spot inside chunk. Since we need to give+ back leading space in a chunk of at least MIN_CHUNK_SIZE, if+ the first calculation places us at a spot with less than+ MIN_CHUNK_SIZE leader, we can move to the next aligned spot.+ We've allocated enough total room so that this is always+ possible.+ */+ char* br = (char*)mem2chunk((size_t)(((size_t)((char*)mem + alignment -+ SIZE_T_ONE)) &+ -alignment));+ char* pos = ((size_t)(br - (char*)(p)) >= MIN_CHUNK_SIZE)?+ br : br+alignment;+ mchunkptr newp = (mchunkptr)pos;+ size_t leadsize = pos - (char*)(p);+ size_t newsize = chunksize(p) - leadsize;++ if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */+ newp->prev_foot = p->prev_foot + leadsize;+ newp->head = newsize;+ }+ else { /* Otherwise, give back leader, use the rest */+ set_inuse(m, newp, newsize);+ set_inuse(m, p, leadsize);+ dispose_chunk(m, p, leadsize);+ }+ p = newp;+ }++ /* Give back spare room at the end */+ if (!is_mmapped(p)) {+ size_t size = chunksize(p);+ if (size > nb + MIN_CHUNK_SIZE) {+ size_t remainder_size = size - nb;+ mchunkptr remainder = chunk_plus_offset(p, nb);+ set_inuse(m, p, nb);+ set_inuse(m, remainder, remainder_size);+ dispose_chunk(m, remainder, remainder_size);+ }+ }++ mem = chunk2mem(p);+ assert (chunksize(p) >= nb);+ assert(((size_t)mem & (alignment - 1)) == 0);+ check_inuse_chunk(m, p);+ POSTACTION(m);+ }+ }+ return mem;+}++/*+ Common support for independent_X routines, handling+ all of the combinations that can result.+ The opts arg has:+ bit 0 set if all elements are same size (using sizes[0])+ bit 1 set if elements should be zeroed+*/+static void** ialloc(mstate m,+ size_t n_elements,+ size_t* sizes,+ int opts,+ void* chunks[]) {++ size_t element_size; /* chunksize of each element, if all same */+ size_t contents_size; /* total size of elements */+ size_t array_size; /* request size of pointer array */+ void* mem; /* malloced aggregate space */+ mchunkptr p; /* corresponding chunk */+ size_t remainder_size; /* remaining bytes while splitting */+ void** marray; /* either "chunks" or malloced ptr array */+ mchunkptr array_chunk; /* chunk for malloced ptr array */+ flag_t was_enabled; /* to disable mmap */+ size_t size;+ size_t i;++ ensure_initialization();+ /* compute array length, if needed */+ if (chunks != 0) {+ if (n_elements == 0)+ return chunks; /* nothing to do */+ marray = chunks;+ array_size = 0;+ }+ else {+ /* if empty req, must still return chunk representing empty array */+ if (n_elements == 0)+ return (void**)internal_malloc(m, 0);+ marray = 0;+ array_size = request2size(n_elements * (sizeof(void*)));+ }++ /* compute total element size */+ if (opts & 0x1) { /* all-same-size */+ element_size = request2size(*sizes);+ contents_size = n_elements * element_size;+ }+ else { /* add up all the sizes */+ element_size = 0;+ contents_size = 0;+ for (i = 0; i != n_elements; ++i)+ contents_size += request2size(sizes[i]);+ }++ size = contents_size + array_size;++ /*+ Allocate the aggregate chunk. First disable direct-mmapping so+ malloc won't use it, since we would not be able to later+ free/realloc space internal to a segregated mmap region.+ */+ was_enabled = use_mmap(m);+ disable_mmap(m);+ mem = internal_malloc(m, size - CHUNK_OVERHEAD);+ if (was_enabled)+ enable_mmap(m);+ if (mem == 0)+ return 0;++ if (PREACTION(m)) return 0;+ p = mem2chunk(mem);+ remainder_size = chunksize(p);++ assert(!is_mmapped(p));++ if (opts & 0x2) { /* optionally clear the elements */+ memset((size_t*)mem, 0, remainder_size - SIZE_T_SIZE - array_size);+ }++ /* If not provided, allocate the pointer array as final part of chunk */+ if (marray == 0) {+ size_t array_chunk_size;+ array_chunk = chunk_plus_offset(p, contents_size);+ array_chunk_size = remainder_size - contents_size;+ marray = (void**) (chunk2mem(array_chunk));+ set_size_and_pinuse_of_inuse_chunk(m, array_chunk, array_chunk_size);+ remainder_size = contents_size;+ }++ /* split out elements */+ for (i = 0; ; ++i) {+ marray[i] = chunk2mem(p);+ if (i != n_elements-1) {+ if (element_size != 0)+ size = element_size;+ else+ size = request2size(sizes[i]);+ remainder_size -= size;+ set_size_and_pinuse_of_inuse_chunk(m, p, size);+ p = chunk_plus_offset(p, size);+ }+ else { /* the final element absorbs any overallocation slop */+ set_size_and_pinuse_of_inuse_chunk(m, p, remainder_size);+ break;+ }+ }++#if DEBUG+ if (marray != chunks) {+ /* final element must have exactly exhausted chunk */+ if (element_size != 0) {+ assert(remainder_size == element_size);+ }+ else {+ assert(remainder_size == request2size(sizes[i]));+ }+ check_inuse_chunk(m, mem2chunk(marray));+ }+ for (i = 0; i != n_elements; ++i)+ check_inuse_chunk(m, mem2chunk(marray[i]));++#endif /* DEBUG */++ POSTACTION(m);+ return marray;+}++/* Try to free all pointers in the given array.+ Note: this could be made faster, by delaying consolidation,+ at the price of disabling some user integrity checks, We+ still optimize some consolidations by combining adjacent+ chunks before freeing, which will occur often if allocated+ with ialloc or the array is sorted.+*/+static size_t internal_bulk_free(mstate m, void* array[], size_t nelem) {+ size_t unfreed = 0;+ if (!PREACTION(m)) {+ void** a;+ void** fence = &(array[nelem]);+ for (a = array; a != fence; ++a) {+ void* mem = *a;+ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+ size_t psize = chunksize(p);+#if FOOTERS+ if (get_mstate_for(p) != m) {+ ++unfreed;+ continue;+ }+#endif+ check_inuse_chunk(m, p);+ *a = 0;+ if (RTCHECK(ok_address(m, p) && ok_inuse(p))) {+ void ** b = a + 1; /* try to merge with next chunk */+ mchunkptr next = next_chunk(p);+ if (b != fence && *b == chunk2mem(next)) {+ size_t newsize = chunksize(next) + psize;+ set_inuse(m, p, newsize);+ *b = chunk2mem(p);+ }+ else+ dispose_chunk(m, p, psize);+ }+ else {+ CORRUPTION_ERROR_ACTION(m);+ break;+ }+ }+ }+ if (should_trim(m, m->topsize))+ sys_trim(m, 0);+ POSTACTION(m);+ }+ return unfreed;+}++/* Traversal */+#if MALLOC_INSPECT_ALL+static void internal_inspect_all(mstate m,+ void(*handler)(void *start,+ void *end,+ size_t used_bytes,+ void* callback_arg),+ void* arg) {+ if (is_initialized(m)) {+ mchunkptr top = m->top;+ msegmentptr s;+ for (s = &m->seg; s != 0; s = s->next) {+ mchunkptr q = align_as_chunk(s->base);+ while (segment_holds(s, q) && q->head != FENCEPOST_HEAD) {+ mchunkptr next = next_chunk(q);+ size_t sz = chunksize(q);+ size_t used;+ void* start;+ if (is_inuse(q)) {+ used = sz - CHUNK_OVERHEAD; /* must not be mmapped */+ start = chunk2mem(q);+ }+ else {+ used = 0;+ if (is_small(sz)) { /* offset by possible bookkeeping */+ start = (void*)((char*)q + sizeof(struct malloc_chunk));+ }+ else {+ start = (void*)((char*)q + sizeof(struct malloc_tree_chunk));+ }+ }+ if (start < (void*)next) /* skip if all space is bookkeeping */+ handler(start, next, used, arg);+ if (q == top)+ break;+ q = next;+ }+ }+ }+}+#endif /* MALLOC_INSPECT_ALL */++/* ------------------ Exported realloc, memalign, etc -------------------- */++#if !ONLY_MSPACES++void* dlrealloc(void* oldmem, size_t bytes) {+ void* mem = 0;+ if (oldmem == 0) {+ mem = dlmalloc(bytes);+ }+ else if (bytes >= MAX_REQUEST) {+ MALLOC_FAILURE_ACTION;+ }+#ifdef REALLOC_ZERO_BYTES_FREES+ else if (bytes == 0) {+ dlfree(oldmem);+ }+#endif /* REALLOC_ZERO_BYTES_FREES */+ else {+ size_t nb = request2size(bytes);+ mchunkptr oldp = mem2chunk(oldmem);+#if ! FOOTERS+ mstate m = gm;+#else /* FOOTERS */+ mstate m = get_mstate_for(oldp);+ if (!ok_magic(m)) {+ USAGE_ERROR_ACTION(m, oldmem);+ return 0;+ }+#endif /* FOOTERS */+ if (!PREACTION(m)) {+ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1);+ POSTACTION(m);+ if (newp != 0) {+ check_inuse_chunk(m, newp);+ mem = chunk2mem(newp);+ }+ else {+ mem = internal_malloc(m, bytes);+ if (mem != 0) {+ size_t oc = chunksize(oldp) - overhead_for(oldp);+ memcpy(mem, oldmem, (oc < bytes)? oc : bytes);+ internal_free(m, oldmem);+ }+ }+ }+ }+ return mem;+}++void* dlrealloc_in_place(void* oldmem, size_t bytes) {+ void* mem = 0;+ if (oldmem != 0) {+ if (bytes >= MAX_REQUEST) {+ MALLOC_FAILURE_ACTION;+ }+ else {+ size_t nb = request2size(bytes);+ mchunkptr oldp = mem2chunk(oldmem);+#if ! FOOTERS+ mstate m = gm;+#else /* FOOTERS */+ mstate m = get_mstate_for(oldp);+ if (!ok_magic(m)) {+ USAGE_ERROR_ACTION(m, oldmem);+ return 0;+ }+#endif /* FOOTERS */+ if (!PREACTION(m)) {+ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0);+ POSTACTION(m);+ if (newp == oldp) {+ check_inuse_chunk(m, newp);+ mem = oldmem;+ }+ }+ }+ }+ return mem;+}++void* dlmemalign(size_t alignment, size_t bytes) {+ if (alignment <= MALLOC_ALIGNMENT) {+ return dlmalloc(bytes);+ }+ return internal_memalign(gm, alignment, bytes);+}++int dlposix_memalign(void** pp, size_t alignment, size_t bytes) {+ void* mem = 0;+ if (alignment == MALLOC_ALIGNMENT)+ mem = dlmalloc(bytes);+ else {+ size_t d = alignment / sizeof(void*);+ size_t r = alignment % sizeof(void*);+ if (r != 0 || d == 0 || (d & (d-SIZE_T_ONE)) != 0)+ return EINVAL;+ else if (bytes <= MAX_REQUEST - alignment) {+ if (alignment < MIN_CHUNK_SIZE)+ alignment = MIN_CHUNK_SIZE;+ mem = internal_memalign(gm, alignment, bytes);+ }+ }+ if (mem == 0)+ return ENOMEM;+ else {+ *pp = mem;+ return 0;+ }+}++void* dlvalloc(size_t bytes) {+ size_t pagesz;+ ensure_initialization();+ pagesz = mparams.page_size;+ return dlmemalign(pagesz, bytes);+}++void* dlpvalloc(size_t bytes) {+ size_t pagesz;+ ensure_initialization();+ pagesz = mparams.page_size;+ return dlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE));+}++void** dlindependent_calloc(size_t n_elements, size_t elem_size,+ void* chunks[]) {+ size_t sz = elem_size; /* serves as 1-element array */+ return ialloc(gm, n_elements, &sz, 3, chunks);+}++void** dlindependent_comalloc(size_t n_elements, size_t sizes[],+ void* chunks[]) {+ return ialloc(gm, n_elements, sizes, 0, chunks);+}++size_t dlbulk_free(void* array[], size_t nelem) {+ return internal_bulk_free(gm, array, nelem);+}++#if MALLOC_INSPECT_ALL+void dlmalloc_inspect_all(void(*handler)(void *start,+ void *end,+ size_t used_bytes,+ void* callback_arg),+ void* arg) {+ ensure_initialization();+ if (!PREACTION(gm)) {+ internal_inspect_all(gm, handler, arg);+ POSTACTION(gm);+ }+}+#endif /* MALLOC_INSPECT_ALL */++int dlmalloc_trim(size_t pad) {+ int result = 0;+ ensure_initialization();+ if (!PREACTION(gm)) {+ result = sys_trim(gm, pad);+ POSTACTION(gm);+ }+ return result;+}++size_t dlmalloc_footprint(void) {+ return gm->footprint;+}++size_t dlmalloc_max_footprint(void) {+ return gm->max_footprint;+}++size_t dlmalloc_footprint_limit(void) {+ size_t maf = gm->footprint_limit;+ return maf == 0 ? MAX_SIZE_T : maf;+}++size_t dlmalloc_set_footprint_limit(size_t bytes) {+ size_t result; /* invert sense of 0 */+ if (bytes == 0)+ result = granularity_align(1); /* Use minimal size */+ if (bytes == MAX_SIZE_T)+ result = 0; /* disable */+ else+ result = granularity_align(bytes);+ return gm->footprint_limit = result;+}++#if !NO_MALLINFO+struct mallinfo dlmallinfo(void) {+ return internal_mallinfo(gm);+}+#endif /* NO_MALLINFO */++#if !NO_MALLOC_STATS+void dlmalloc_stats(void) {+ internal_malloc_stats(gm);+}+#endif /* NO_MALLOC_STATS */++int dlmallopt(int param_number, int value) {+ return change_mparam(param_number, value);+}++size_t dlmalloc_usable_size(void* mem) {+ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+ if (is_inuse(p))+ return chunksize(p) - overhead_for(p);+ }+ return 0;+}++#endif /* !ONLY_MSPACES */++/* ----------------------------- user mspaces ---------------------------- */++#if MSPACES++static mstate init_user_mstate(char* tbase, size_t tsize) {+ size_t msize = pad_request(sizeof(struct malloc_state));+ mchunkptr mn;+ mchunkptr msp = align_as_chunk(tbase);+ mstate m = (mstate)(chunk2mem(msp));+ memset(m, 0, msize);+ (void)INITIAL_LOCK(&m->mutex);+ msp->head = (msize|INUSE_BITS);+ m->seg.base = m->least_addr = tbase;+ m->seg.size = m->footprint = m->max_footprint = tsize;+ m->magic = mparams.magic;+ m->release_checks = MAX_RELEASE_CHECK_RATE;+ m->mflags = mparams.default_mflags;+ m->extp = 0;+ m->exts = 0;+ disable_contiguous(m);+ init_bins(m);+ mn = next_chunk(mem2chunk(m));+ init_top(m, mn, (size_t)((tbase + tsize) - (char*)mn) - TOP_FOOT_SIZE);+ check_top_chunk(m, m->top);+ return m;+}++mspace create_mspace(size_t capacity, int locked) {+ mstate m = 0;+ size_t msize;+ ensure_initialization();+ msize = pad_request(sizeof(struct malloc_state));+ if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) {+ size_t rs = ((capacity == 0)? mparams.granularity :+ (capacity + TOP_FOOT_SIZE + msize));+ size_t tsize = granularity_align(rs);+ char* tbase = (char*)(CALL_MMAP(tsize));+ if (tbase != CMFAIL) {+ m = init_user_mstate(tbase, tsize);+ set_segment_flags(&m->seg, USE_MMAP_BIT);+ set_lock(m, locked);+ }+ }+ return (mspace)m;+}++mspace create_mspace_with_base(void* base, size_t capacity, int locked) {+ mstate m = 0;+ size_t msize;+ ensure_initialization();+ msize = pad_request(sizeof(struct malloc_state));+ if (capacity > msize + TOP_FOOT_SIZE &&+ capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) {+ m = init_user_mstate((char*)base, capacity);+ set_segment_flags(&m->seg, EXTERN_BIT);+ set_lock(m, locked);+ }+ return (mspace)m;+}++int mspace_track_large_chunks(mspace msp, int enable) {+ int ret = 0;+ mstate ms = (mstate)msp;+ if (!PREACTION(ms)) {+ if (!use_mmap(ms)) {+ ret = 1;+ }+ if (!enable) {+ enable_mmap(ms);+ } else {+ disable_mmap(ms);+ }+ POSTACTION(ms);+ }+ return ret;+}++size_t destroy_mspace(mspace msp) {+ size_t freed = 0;+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ msegmentptr sp = &ms->seg;+ (void)DESTROY_LOCK(&ms->mutex); /* destroy before unmapped */+ while (sp != 0) {+ char* base = sp->base;+ size_t size = sp->size;+ flag_t flag = get_segment_flags(sp);+ (void)base; /* placate people compiling -Wunused-variable */+ sp = sp->next;+ if ((flag & USE_MMAP_BIT) && !(flag & EXTERN_BIT) &&+ CALL_MUNMAP(base, size) == 0)+ freed += size;+ }+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return freed;+}++/*+ mspace versions of routines are near-clones of the global+ versions. This is not so nice but better than the alternatives.+*/++void* mspace_malloc(mspace msp, size_t bytes) {+ mstate ms = (mstate)msp;+ if (!ok_magic(ms)) {+ USAGE_ERROR_ACTION(ms,ms);+ return 0;+ }+ if (!PREACTION(ms)) {+ void* mem;+ size_t nb;+ if (bytes <= MAX_SMALL_REQUEST) {+ bindex_t idx;+ binmap_t smallbits;+ nb = (bytes < MIN_REQUEST)? MIN_CHUNK_SIZE : pad_request(bytes);+ idx = small_index(nb);+ smallbits = ms->smallmap >> idx;++ if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */+ mchunkptr b, p;+ idx += ~smallbits & 1; /* Uses next bin if idx empty */+ b = smallbin_at(ms, idx);+ p = b->fd;+ assert(chunksize(p) == small_index2size(idx));+ unlink_first_small_chunk(ms, b, p, idx);+ set_inuse_and_pinuse(ms, p, small_index2size(idx));+ mem = chunk2mem(p);+ check_malloced_chunk(ms, mem, nb);+ goto postaction;+ }++ else if (nb > ms->dvsize) {+ if (smallbits != 0) { /* Use chunk in next nonempty smallbin */+ mchunkptr b, p, r;+ size_t rsize;+ bindex_t i;+ binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx));+ binmap_t leastbit = least_bit(leftbits);+ compute_bit2idx(leastbit, i);+ b = smallbin_at(ms, i);+ p = b->fd;+ assert(chunksize(p) == small_index2size(i));+ unlink_first_small_chunk(ms, b, p, i);+ rsize = small_index2size(i) - nb;+ /* Fit here cannot be remainderless if 4byte sizes */+ if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE)+ set_inuse_and_pinuse(ms, p, small_index2size(i));+ else {+ set_size_and_pinuse_of_inuse_chunk(ms, p, nb);+ r = chunk_plus_offset(p, nb);+ set_size_and_pinuse_of_free_chunk(r, rsize);+ replace_dv(ms, r, rsize);+ }+ mem = chunk2mem(p);+ check_malloced_chunk(ms, mem, nb);+ goto postaction;+ }++ else if (ms->treemap != 0 && (mem = tmalloc_small(ms, nb)) != 0) {+ check_malloced_chunk(ms, mem, nb);+ goto postaction;+ }+ }+ }+ else if (bytes >= MAX_REQUEST)+ nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */+ else {+ nb = pad_request(bytes);+ if (ms->treemap != 0 && (mem = tmalloc_large(ms, nb)) != 0) {+ check_malloced_chunk(ms, mem, nb);+ goto postaction;+ }+ }++ if (nb <= ms->dvsize) {+ size_t rsize = ms->dvsize - nb;+ mchunkptr p = ms->dv;+ if (rsize >= MIN_CHUNK_SIZE) { /* split dv */+ mchunkptr r = ms->dv = chunk_plus_offset(p, nb);+ ms->dvsize = rsize;+ set_size_and_pinuse_of_free_chunk(r, rsize);+ set_size_and_pinuse_of_inuse_chunk(ms, p, nb);+ }+ else { /* exhaust dv */+ size_t dvs = ms->dvsize;+ ms->dvsize = 0;+ ms->dv = 0;+ set_inuse_and_pinuse(ms, p, dvs);+ }+ mem = chunk2mem(p);+ check_malloced_chunk(ms, mem, nb);+ goto postaction;+ }++ else if (nb < ms->topsize) { /* Split top */+ size_t rsize = ms->topsize -= nb;+ mchunkptr p = ms->top;+ mchunkptr r = ms->top = chunk_plus_offset(p, nb);+ r->head = rsize | PINUSE_BIT;+ set_size_and_pinuse_of_inuse_chunk(ms, p, nb);+ mem = chunk2mem(p);+ check_top_chunk(ms, ms->top);+ check_malloced_chunk(ms, mem, nb);+ goto postaction;+ }++ mem = sys_alloc(ms, nb);++ postaction:+ POSTACTION(ms);+ return mem;+ }++ return 0;+}++void mspace_free(mspace msp, void* mem) {+ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+#if FOOTERS+ mstate fm = get_mstate_for(p);+ (void)msp; /* placate people compiling -Wunused */+#else /* FOOTERS */+ mstate fm = (mstate)msp;+#endif /* FOOTERS */+ if (!ok_magic(fm)) {+ USAGE_ERROR_ACTION(fm, p);+ return;+ }+ if (!PREACTION(fm)) {+ check_inuse_chunk(fm, p);+ if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) {+ size_t psize = chunksize(p);+ mchunkptr next = chunk_plus_offset(p, psize);+ if (!pinuse(p)) {+ size_t prevsize = p->prev_foot;+ if (is_mmapped(p)) {+ psize += prevsize + MMAP_FOOT_PAD;+ if (CALL_MUNMAP((char*)p - prevsize, psize) == 0)+ fm->footprint -= psize;+ goto postaction;+ }+ else {+ mchunkptr prev = chunk_minus_offset(p, prevsize);+ psize += prevsize;+ p = prev;+ if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */+ if (p != fm->dv) {+ unlink_chunk(fm, p, prevsize);+ }+ else if ((next->head & INUSE_BITS) == INUSE_BITS) {+ fm->dvsize = psize;+ set_free_with_pinuse(p, psize, next);+ goto postaction;+ }+ }+ else+ goto erroraction;+ }+ }++ if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) {+ if (!cinuse(next)) { /* consolidate forward */+ if (next == fm->top) {+ size_t tsize = fm->topsize += psize;+ fm->top = p;+ p->head = tsize | PINUSE_BIT;+ if (p == fm->dv) {+ fm->dv = 0;+ fm->dvsize = 0;+ }+ if (should_trim(fm, tsize))+ sys_trim(fm, 0);+ goto postaction;+ }+ else if (next == fm->dv) {+ size_t dsize = fm->dvsize += psize;+ fm->dv = p;+ set_size_and_pinuse_of_free_chunk(p, dsize);+ goto postaction;+ }+ else {+ size_t nsize = chunksize(next);+ psize += nsize;+ unlink_chunk(fm, next, nsize);+ set_size_and_pinuse_of_free_chunk(p, psize);+ if (p == fm->dv) {+ fm->dvsize = psize;+ goto postaction;+ }+ }+ }+ else+ set_free_with_pinuse(p, psize, next);++ if (is_small(psize)) {+ insert_small_chunk(fm, p, psize);+ check_free_chunk(fm, p);+ }+ else {+ tchunkptr tp = (tchunkptr)p;+ insert_large_chunk(fm, tp, psize);+ check_free_chunk(fm, p);+ if (--fm->release_checks == 0)+ release_unused_segments(fm);+ }+ goto postaction;+ }+ }+ erroraction:+ USAGE_ERROR_ACTION(fm, p);+ postaction:+ POSTACTION(fm);+ }+ }+}++void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size) {+ void* mem;+ size_t req = 0;+ mstate ms = (mstate)msp;+ if (!ok_magic(ms)) {+ USAGE_ERROR_ACTION(ms,ms);+ return 0;+ }+ if (n_elements != 0) {+ req = n_elements * elem_size;+ if (((n_elements | elem_size) & ~(size_t)0xffff) &&+ (req / n_elements != elem_size))+ req = MAX_SIZE_T; /* force downstream failure on overflow */+ }+ mem = internal_malloc(ms, req);+ if (mem != 0 && calloc_must_clear(mem2chunk(mem)))+ memset(mem, 0, req);+ return mem;+}++void* mspace_realloc(mspace msp, void* oldmem, size_t bytes) {+ void* mem = 0;+ if (oldmem == 0) {+ mem = mspace_malloc(msp, bytes);+ }+ else if (bytes >= MAX_REQUEST) {+ MALLOC_FAILURE_ACTION;+ }+#ifdef REALLOC_ZERO_BYTES_FREES+ else if (bytes == 0) {+ mspace_free(msp, oldmem);+ }+#endif /* REALLOC_ZERO_BYTES_FREES */+ else {+ size_t nb = request2size(bytes);+ mchunkptr oldp = mem2chunk(oldmem);+#if ! FOOTERS+ mstate m = (mstate)msp;+#else /* FOOTERS */+ mstate m = get_mstate_for(oldp);+ if (!ok_magic(m)) {+ USAGE_ERROR_ACTION(m, oldmem);+ return 0;+ }+#endif /* FOOTERS */+ if (!PREACTION(m)) {+ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1);+ POSTACTION(m);+ if (newp != 0) {+ check_inuse_chunk(m, newp);+ mem = chunk2mem(newp);+ }+ else {+ mem = mspace_malloc(m, bytes);+ if (mem != 0) {+ size_t oc = chunksize(oldp) - overhead_for(oldp);+ memcpy(mem, oldmem, (oc < bytes)? oc : bytes);+ mspace_free(m, oldmem);+ }+ }+ }+ }+ return mem;+}++void* mspace_realloc_in_place(mspace msp, void* oldmem, size_t bytes) {+ void* mem = 0;+ if (oldmem != 0) {+ if (bytes >= MAX_REQUEST) {+ MALLOC_FAILURE_ACTION;+ }+ else {+ size_t nb = request2size(bytes);+ mchunkptr oldp = mem2chunk(oldmem);+#if ! FOOTERS+ mstate m = (mstate)msp;+#else /* FOOTERS */+ mstate m = get_mstate_for(oldp);+ (void)msp; /* placate people compiling -Wunused */+ if (!ok_magic(m)) {+ USAGE_ERROR_ACTION(m, oldmem);+ return 0;+ }+#endif /* FOOTERS */+ if (!PREACTION(m)) {+ mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0);+ POSTACTION(m);+ if (newp == oldp) {+ check_inuse_chunk(m, newp);+ mem = oldmem;+ }+ }+ }+ }+ return mem;+}++void* mspace_memalign(mspace msp, size_t alignment, size_t bytes) {+ mstate ms = (mstate)msp;+ if (!ok_magic(ms)) {+ USAGE_ERROR_ACTION(ms,ms);+ return 0;+ }+ if (alignment <= MALLOC_ALIGNMENT)+ return mspace_malloc(msp, bytes);+ return internal_memalign(ms, alignment, bytes);+}++void** mspace_independent_calloc(mspace msp, size_t n_elements,+ size_t elem_size, void* chunks[]) {+ size_t sz = elem_size; /* serves as 1-element array */+ mstate ms = (mstate)msp;+ if (!ok_magic(ms)) {+ USAGE_ERROR_ACTION(ms,ms);+ return 0;+ }+ return ialloc(ms, n_elements, &sz, 3, chunks);+}++void** mspace_independent_comalloc(mspace msp, size_t n_elements,+ size_t sizes[], void* chunks[]) {+ mstate ms = (mstate)msp;+ if (!ok_magic(ms)) {+ USAGE_ERROR_ACTION(ms,ms);+ return 0;+ }+ return ialloc(ms, n_elements, sizes, 0, chunks);+}++size_t mspace_bulk_free(mspace msp, void* array[], size_t nelem) {+ return internal_bulk_free((mstate)msp, array, nelem);+}++#if MALLOC_INSPECT_ALL+void mspace_inspect_all(mspace msp,+ void(*handler)(void *start,+ void *end,+ size_t used_bytes,+ void* callback_arg),+ void* arg) {+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ if (!PREACTION(ms)) {+ internal_inspect_all(ms, handler, arg);+ POSTACTION(ms);+ }+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+}+#endif /* MALLOC_INSPECT_ALL */++int mspace_trim(mspace msp, size_t pad) {+ int result = 0;+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ if (!PREACTION(ms)) {+ result = sys_trim(ms, pad);+ POSTACTION(ms);+ }+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return result;+}++#if !NO_MALLOC_STATS+void mspace_malloc_stats(mspace msp) {+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ internal_malloc_stats(ms);+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+}+#endif /* NO_MALLOC_STATS */++size_t mspace_footprint(mspace msp) {+ size_t result = 0;+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ result = ms->footprint;+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return result;+}++size_t mspace_max_footprint(mspace msp) {+ size_t result = 0;+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ result = ms->max_footprint;+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return result;+}++size_t mspace_footprint_limit(mspace msp) {+ size_t result = 0;+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ size_t maf = ms->footprint_limit;+ result = (maf == 0) ? MAX_SIZE_T : maf;+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return result;+}++size_t mspace_set_footprint_limit(mspace msp, size_t bytes) {+ size_t result = 0;+ mstate ms = (mstate)msp;+ if (ok_magic(ms)) {+ if (bytes == 0)+ result = granularity_align(1); /* Use minimal size */+ if (bytes == MAX_SIZE_T)+ result = 0; /* disable */+ else+ result = granularity_align(bytes);+ ms->footprint_limit = result;+ }+ else {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return result;+}++#if !NO_MALLINFO+struct mallinfo mspace_mallinfo(mspace msp) {+ mstate ms = (mstate)msp;+ if (!ok_magic(ms)) {+ USAGE_ERROR_ACTION(ms,ms);+ }+ return internal_mallinfo(ms);+}+#endif /* NO_MALLINFO */++size_t mspace_usable_size(const void* mem) {+ if (mem != 0) {+ mchunkptr p = mem2chunk(mem);+ if (is_inuse(p))+ return chunksize(p) - overhead_for(p);+ }+ return 0;+}++int mspace_mallopt(int param_number, int value) {+ return change_mparam(param_number, value);+}++#endif /* MSPACES */+++/* -------------------- Alternative MORECORE functions ------------------- */++/*+ Guidelines for creating a custom version of MORECORE:++ * For best performance, MORECORE should allocate in multiples of pagesize.+ * MORECORE may allocate more memory than requested. (Or even less,+ but this will usually result in a malloc failure.)+ * MORECORE must not allocate memory when given argument zero, but+ instead return one past the end address of memory from previous+ nonzero call.+ * For best performance, consecutive calls to MORECORE with positive+ arguments should return increasing addresses, indicating that+ space has been contiguously extended.+ * Even though consecutive calls to MORECORE need not return contiguous+ addresses, it must be OK for malloc'ed chunks to span multiple+ regions in those cases where they do happen to be contiguous.+ * MORECORE need not handle negative arguments -- it may instead+ just return MFAIL when given negative arguments.+ Negative arguments are always multiples of pagesize. MORECORE+ must not misinterpret negative args as large positive unsigned+ args. You can suppress all such calls from even occurring by defining+ MORECORE_CANNOT_TRIM,++ As an example alternative MORECORE, here is a custom allocator+ kindly contributed for pre-OSX macOS. It uses virtually but not+ necessarily physically contiguous non-paged memory (locked in,+ present and won't get swapped out). You can use it by uncommenting+ this section, adding some #includes, and setting up the appropriate+ defines above:++ #define MORECORE osMoreCore++ There is also a shutdown routine that should somehow be called for+ cleanup upon program exit.++ #define MAX_POOL_ENTRIES 100+ #define MINIMUM_MORECORE_SIZE (64 * 1024U)+ static int next_os_pool;+ void *our_os_pools[MAX_POOL_ENTRIES];++ void *osMoreCore(int size)+ {+ void *ptr = 0;+ static void *sbrk_top = 0;++ if (size > 0)+ {+ if (size < MINIMUM_MORECORE_SIZE)+ size = MINIMUM_MORECORE_SIZE;+ if (CurrentExecutionLevel() == kTaskLevel)+ ptr = PoolAllocateResident(size + RM_PAGE_SIZE, 0);+ if (ptr == 0)+ {+ return (void *) MFAIL;+ }+ // save ptrs so they can be freed during cleanup+ our_os_pools[next_os_pool] = ptr;+ next_os_pool++;+ ptr = (void *) ((((size_t) ptr) + RM_PAGE_MASK) & ~RM_PAGE_MASK);+ sbrk_top = (char *) ptr + size;+ return ptr;+ }+ else if (size < 0)+ {+ // we don't currently support shrink behavior+ return (void *) MFAIL;+ }+ else+ {+ return sbrk_top;+ }+ }++ // cleanup any allocated memory pools+ // called as last thing before shutting down driver++ void osCleanupMem(void)+ {+ void **ptr;++ for (ptr = our_os_pools; ptr < &our_os_pools[MAX_POOL_ENTRIES]; ptr++)+ if (*ptr)+ {+ PoolDeallocate(*ptr);+ *ptr = 0;+ }+ }++*/+++/* -----------------------------------------------------------------------+History:+ v2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea+ * fix bad comparison in dlposix_memalign+ * don't reuse adjusted asize in sys_alloc+ * add LOCK_AT_FORK -- thanks to Kirill Artamonov for the suggestion+ * reduce compiler warnings -- thanks to all who reported/suggested these++ v2.8.5 Sun May 22 10:26:02 2011 Doug Lea (dl at gee)+ * Always perform unlink checks unless INSECURE+ * Add posix_memalign.+ * Improve realloc to expand in more cases; expose realloc_in_place.+ Thanks to Peter Buhr for the suggestion.+ * Add footprint_limit, inspect_all, bulk_free. Thanks+ to Barry Hayes and others for the suggestions.+ * Internal refactorings to avoid calls while holding locks+ * Use non-reentrant locks by default. Thanks to Roland McGrath+ for the suggestion.+ * Small fixes to mspace_destroy, reset_on_error.+ * Various configuration extensions/changes. Thanks+ to all who contributed these.++ V2.8.4a Thu Apr 28 14:39:43 2011 (dl at gee.cs.oswego.edu)+ * Update Creative Commons URL++ V2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee)+ * Use zeros instead of prev foot for is_mmapped+ * Add mspace_track_large_chunks; thanks to Jean Brouwers+ * Fix set_inuse in internal_realloc; thanks to Jean Brouwers+ * Fix insufficient sys_alloc padding when using 16byte alignment+ * Fix bad error check in mspace_footprint+ * Adaptations for ptmalloc; thanks to Wolfram Gloger.+ * Reentrant spin locks; thanks to Earl Chew and others+ * Win32 improvements; thanks to Niall Douglas and Earl Chew+ * Add NO_SEGMENT_TRAVERSAL and MAX_RELEASE_CHECK_RATE options+ * Extension hook in malloc_state+ * Various small adjustments to reduce warnings on some compilers+ * Various configuration extensions/changes for more platforms. Thanks+ to all who contributed these.++ V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee)+ * Add max_footprint functions+ * Ensure all appropriate literals are size_t+ * Fix conditional compilation problem for some #define settings+ * Avoid concatenating segments with the one provided+ in create_mspace_with_base+ * Rename some variables to avoid compiler shadowing warnings+ * Use explicit lock initialization.+ * Better handling of sbrk interference.+ * Simplify and fix segment insertion, trimming and mspace_destroy+ * Reinstate REALLOC_ZERO_BYTES_FREES option from 2.7.x+ * Thanks especially to Dennis Flanagan for help on these.++ V2.8.2 Sun Jun 12 16:01:10 2005 Doug Lea (dl at gee)+ * Fix memalign brace error.++ V2.8.1 Wed Jun 8 16:11:46 2005 Doug Lea (dl at gee)+ * Fix improper #endif nesting in C+++ * Add explicit casts needed for C++++ V2.8.0 Mon May 30 14:09:02 2005 Doug Lea (dl at gee)+ * Use trees for large bins+ * Support mspaces+ * Use segments to unify sbrk-based and mmap-based system allocation,+ removing need for emulation on most platforms without sbrk.+ * Default safety checks+ * Optional footer checks. Thanks to William Robertson for the idea.+ * Internal code refactoring+ * Incorporate suggestions and platform-specific changes.+ Thanks to Dennis Flanagan, Colin Plumb, Niall Douglas,+ Aaron Bachmann, Emery Berger, and others.+ * Speed up non-fastbin processing enough to remove fastbins.+ * Remove useless cfree() to avoid conflicts with other apps.+ * Remove internal memcpy, memset. Compilers handle builtins better.+ * Remove some options that no one ever used and rename others.++ V2.7.2 Sat Aug 17 09:07:30 2002 Doug Lea (dl at gee)+ * Fix malloc_state bitmap array misdeclaration++ V2.7.1 Thu Jul 25 10:58:03 2002 Doug Lea (dl at gee)+ * Allow tuning of FIRST_SORTED_BIN_SIZE+ * Use PTR_UINT as type for all ptr->int casts. Thanks to John Belmonte.+ * Better detection and support for non-contiguousness of MORECORE.+ Thanks to Andreas Mueller, Conal Walsh, and Wolfram Gloger+ * Bypass most of malloc if no frees. Thanks To Emery Berger.+ * Fix freeing of old top non-contiguous chunk im sysmalloc.+ * Raised default trim and map thresholds to 256K.+ * Fix mmap-related #defines. Thanks to Lubos Lunak.+ * Fix copy macros; added LACKS_FCNTL_H. Thanks to Neal Walfield.+ * Branch-free bin calculation+ * Default trim and mmap thresholds now 256K.++ V2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee)+ * Introduce independent_comalloc and independent_calloc.+ Thanks to Michael Pachos for motivation and help.+ * Make optional .h file available+ * Allow > 2GB requests on 32bit systems.+ * new WIN32 sbrk, mmap, munmap, lock code from <Walter@GeNeSys-e.de>.+ Thanks also to Andreas Mueller <a.mueller at paradatec.de>,+ and Anonymous.+ * Allow override of MALLOC_ALIGNMENT (Thanks to Ruud Waij for+ helping test this.)+ * memalign: check alignment arg+ * realloc: don't try to shift chunks backwards, since this+ leads to more fragmentation in some programs and doesn't+ seem to help in any others.+ * Collect all cases in malloc requiring system memory into sysmalloc+ * Use mmap as backup to sbrk+ * Place all internal state in malloc_state+ * Introduce fastbins (although similar to 2.5.1)+ * Many minor tunings and cosmetic improvements+ * Introduce USE_PUBLIC_MALLOC_WRAPPERS, USE_MALLOC_LOCK+ * Introduce MALLOC_FAILURE_ACTION, MORECORE_CONTIGUOUS+ Thanks to Tony E. Bennett <tbennett@nvidia.com> and others.+ * Include errno.h to support default failure action.++ V2.6.6 Sun Dec 5 07:42:19 1999 Doug Lea (dl at gee)+ * return null for negative arguments+ * Added Several WIN32 cleanups from Martin C. Fong <mcfong at yahoo.com>+ * Add 'LACKS_SYS_PARAM_H' for those systems without 'sys/param.h'+ (e.g. WIN32 platforms)+ * Cleanup header file inclusion for WIN32 platforms+ * Cleanup code to avoid Microsoft Visual C++ compiler complaints+ * Add 'USE_DL_PREFIX' to quickly allow co-existence with existing+ memory allocation routines+ * Set 'malloc_getpagesize' for WIN32 platforms (needs more work)+ * Use 'assert' rather than 'ASSERT' in WIN32 code to conform to+ usage of 'assert' in non-WIN32 code+ * Improve WIN32 'sbrk()' emulation's 'findRegion()' routine to+ avoid infinite loop+ * Always call 'fREe()' rather than 'free()'++ V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee)+ * Fixed ordering problem with boundary-stamping++ V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee)+ * Added pvalloc, as recommended by H.J. Liu+ * Added 64bit pointer support mainly from Wolfram Gloger+ * Added anonymously donated WIN32 sbrk emulation+ * Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen+ * malloc_extend_top: fix mask error that caused wastage after+ foreign sbrks+ * Add linux mremap support code from HJ Liu++ V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee)+ * Integrated most documentation with the code.+ * Add support for mmap, with help from+ Wolfram Gloger (Gloger@lrz.uni-muenchen.de).+ * Use last_remainder in more cases.+ * Pack bins using idea from colin@nyx10.cs.du.edu+ * Use ordered bins instead of best-fit threshold+ * Eliminate block-local decls to simplify tracing and debugging.+ * Support another case of realloc via move into top+ * Fix error occurring when initial sbrk_base not word-aligned.+ * Rely on page size for units instead of SBRK_UNIT to+ avoid surprises about sbrk alignment conventions.+ * Add mallinfo, mallopt. Thanks to Raymond Nijssen+ (raymond@es.ele.tue.nl) for the suggestion.+ * Add `pad' argument to malloc_trim and top_pad mallopt parameter.+ * More precautions for cases where other routines call sbrk,+ courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de).+ * Added macros etc., allowing use in linux libc from+ H.J. Lu (hjl@gnu.ai.mit.edu)+ * Inverted this history list++ V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee)+ * Re-tuned and fixed to behave more nicely with V2.6.0 changes.+ * Removed all preallocation code since under current scheme+ the work required to undo bad preallocations exceeds+ the work saved in good cases for most test programs.+ * No longer use return list or unconsolidated bins since+ no scheme using them consistently outperforms those that don't+ given above changes.+ * Use best fit for very large chunks to prevent some worst-cases.+ * Added some support for debugging++ V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee)+ * Removed footers when chunks are in use. Thanks to+ Paul Wilson (wilson@cs.texas.edu) for the suggestion.++ V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee)+ * Added malloc_trim, with help from Wolfram Gloger+ (wmglo@Dent.MED.Uni-Muenchen.DE).++ V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g)++ V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g)+ * realloc: try to expand in both directions+ * malloc: swap order of clean-bin strategy;+ * realloc: only conditionally expand backwards+ * Try not to scavenge used bins+ * Use bin counts as a guide to preallocation+ * Occasionally bin return list chunks in first scan+ * Add a few optimizations from colin@nyx10.cs.du.edu++ V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g)+ * faster bin computation & slightly different binning+ * merged all consolidations to one part of malloc proper+ (eliminating old malloc_find_space & malloc_clean_bin)+ * Scan 2 returns chunks (not just 1)+ * Propagate failure in realloc if malloc returns 0+ * Add stuff to allow compilation on non-ANSI compilers+ from kpv@research.att.com++ V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu)+ * removed potential for odd address access in prev_chunk+ * removed dependency on getpagesize.h+ * misc cosmetics and a bit more internal documentation+ * anticosmetics: mangled names in macros to evade debugger strangeness+ * tested on sparc, hp-700, dec-mips, rs6000+ with gcc & native cc (hp, dec only) allowing+ Detlefs & Zorn comparison study (in SIGPLAN Notices.)++ Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu)+ * Based loosely on libg++-1.2X malloc. (It retains some of the overall+ structure of old version, but most details differ.)+ */
src/frv/ffi.c view
@@ -240,8 +240,8 @@ /* Functions return 4-byte or smaller results in gr8. 8-byte values also use gr9. We fill the both, even for small return values, just to avoid a branch. */ - asm ("ldi @(%0, #0), gr8" : : "r" (&rvalue));- asm ("ldi @(%0, #0), gr9" : : "r" (&((int *) &rvalue)[1]));+ __asm__ ("ldi @(%0, #0), gr8" : : "r" (&rvalue));+ __asm__ ("ldi @(%0, #0), gr9" : : "r" (&((int *) &rvalue)[1])); } }
src/ia64/ffi.c view
@@ -84,7 +84,7 @@ #define stf_spill(addr, value) #else #define stf_spill(addr, value) \- asm ("stf.spill %0 = %1%P0" : "=m" (*addr) : "f"(value));+ __asm__ ("stf.spill %0 = %1%P0" : "=m" (*addr) : "f"(value)); #endif /* Load a value from ADDR, which is in the current cpu implementation's@@ -94,7 +94,7 @@ #define ldf_fill(result, addr) #else #define ldf_fill(result, addr) \- asm ("ldf.fill %0 = %1%P1" : "=f"(result) : "m"(*addr));+ __asm__ ("ldf.fill %0 = %1%P1" : "=f"(result) : "m"(*addr)); #endif /* Return the size of the C type associated with with TYPE. Which will
+ src/loongarch/ffi.c view
@@ -0,0 +1,628 @@+/* -----------------------------------------------------------------------+ ffi.c - Copyright (c) 2022 Xu Chenghua <xuchenghua@loongson.cn>+ 2022 Cheng Lulu <chenglulu@loongson.cn>+ Based on RISC-V port++ LoongArch Foreign Function Interface++ Permission is hereby granted, free of charge, to any person obtaining+ a copy of this software and associated documentation files (the+ ``Software''), to deal in the Software without restriction, including+ without limitation the rights to use, copy, modify, merge, publish,+ distribute, sublicense, and/or sell copies of the Software, and to+ permit persons to whom the Software is furnished to do so, subject to+ the following conditions:++ The above copyright notice and this permission notice shall be included+ in all copies or substantial portions of the Software.++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER+ DEALINGS IN THE SOFTWARE.+ ----------------------------------------------------------------------- */++#include <ffi.h>+#include <ffi_common.h>+#include <tramp.h>++#include <stdlib.h>+#include <stdint.h>++#if defined(__loongarch_soft_float)+# define ABI_FRLEN 0+#elif defined(__loongarch_single_float)+# define ABI_FRLEN 32+# define ABI_FLOAT float+#elif defined(__loongarch_double_float)+# define ABI_FRLEN 64+# define ABI_FLOAT double+#else+#error unsupported LoongArch floating-point ABI+#endif++#define NARGREG 8+#define STKALIGN 16+#define MAXCOPYARG (2 * sizeof (double))++/* call_context registers+ - 8 floating point parameter/result registers.+ - 8 integer parameter/result registers.+ - 2 registers used by the assembly code to in-place construct its own+ stack frame+ - frame register+ - return register+*/+typedef struct call_context+{+#if !defined(__loongarch_soft_float)+ ABI_FLOAT fa[8];+#endif+ size_t a[10];+} call_context;++typedef struct call_builder+{+ call_context *aregs;+ int used_integer;+ int used_float;+ size_t *used_stack; /* Stack pointer. */+ size_t *stack; /* Place for arguments pass by reference. */+ size_t next_struct_area; /* Offset for arguments pass by reference. */+} call_builder;++/* Integer (not pointer) less than ABI GRLEN. */+/* FFI_TYPE_INT does not appear to be used. */+#if __SIZEOF_POINTER__ == 8+# define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT64)+#else+# define IS_INT(type) ((type) >= FFI_TYPE_UINT8 && (type) <= FFI_TYPE_SINT32)+#endif++#if ABI_FRLEN+typedef struct float_struct_info+{+ char as_elements;+ char type1;+ char offset2;+ char type2;+} float_struct_info;++#if ABI_FRLEN >= 64+# define IS_FLOAT(type) ((type) >= FFI_TYPE_FLOAT && (type) <= FFI_TYPE_DOUBLE)+#else+# define IS_FLOAT(type) ((type) == FFI_TYPE_FLOAT)+#endif++static ffi_type **+flatten_struct (ffi_type *in, ffi_type **out, ffi_type **out_end)+{+ int i;++ if (out == out_end)+ return out;+ if (in->type != FFI_TYPE_STRUCT)+ *(out++) = in;+ else+ for (i = 0; in->elements[i]; i++)+ out = flatten_struct (in->elements[i], out, out_end);+ return out;+}++/* Structs with at most two fields after flattening, one of which is of+ floating point type, are passed in multiple registers if sufficient+ registers are available. */+static float_struct_info+struct_passed_as_elements (call_builder *cb, ffi_type *top)+{+ float_struct_info ret = {0, 0, 0, 0};+ ffi_type *fields[3];+ int num_floats, num_ints;+ int num_fields = flatten_struct (top, fields, fields + 3) - fields;++ if (num_fields == 1)+ {+ if (IS_FLOAT (fields[0]->type))+ {+ ret.as_elements = 1;+ ret.type1 = fields[0]->type;+ }+ }+ else if (num_fields == 2)+ {+ num_floats = IS_FLOAT (fields[0]->type) + IS_FLOAT (fields[1]->type);+ num_ints = IS_INT (fields[0]->type) + IS_INT (fields[1]->type);+ if (num_floats == 0 || num_floats + num_ints != 2)+ return ret;+ if (cb->used_float + num_floats > NARGREG+ || cb->used_integer + (2 - num_floats) > NARGREG)+ return ret;+ if (!IS_FLOAT (fields[0]->type) && !IS_FLOAT (fields[1]->type))+ return ret;++ ret.type1 = fields[0]->type;+ ret.type2 = fields[1]->type;+ ret.offset2 = FFI_ALIGN (fields[0]->size, fields[1]->alignment);+ ret.as_elements = 1;+ }+ return ret;+}+#endif++/* Allocates a single register, float register, or GRLEN-sized stack slot to a+ datum. */+static void+marshal_atom (call_builder *cb, int type, void *data)+{+ size_t value = 0;+ switch (type)+ {+ case FFI_TYPE_UINT8:+ value = *(uint8_t *) data;+ break;+ case FFI_TYPE_SINT8:+ value = *(int8_t *) data;+ break;+ case FFI_TYPE_UINT16:+ value = *(uint16_t *) data;+ break;+ case FFI_TYPE_SINT16:+ value = *(int16_t *) data;+ break;+ /* 32-bit quantities are always sign-extended in the ABI. */+ case FFI_TYPE_UINT32:+ value = *(int32_t *) data;+ break;+ case FFI_TYPE_SINT32:+ value = *(int32_t *) data;+ break;+#if __SIZEOF_POINTER__ == 8+ case FFI_TYPE_UINT64:+ value = *(uint64_t *) data;+ break;+ case FFI_TYPE_SINT64:+ value = *(int64_t *) data;+ break;+#endif+ case FFI_TYPE_POINTER:+ value = *(size_t *) data;+ break;++#if ABI_FRLEN >= 32+ case FFI_TYPE_FLOAT:+ *(float *)(cb->aregs->fa + cb->used_float++) = *(float *) data;+ return;+#endif+#if ABI_FRLEN >= 64+ case FFI_TYPE_DOUBLE:+ (cb->aregs->fa[cb->used_float++]) = *(double *) data;+ return;+#endif+ default:+ FFI_ASSERT (0);+ break;+ }++ if (cb->used_integer == NARGREG)+ *cb->used_stack++ = value;+ else+ cb->aregs->a[cb->used_integer++] = value;+}++static void+unmarshal_atom (call_builder *cb, int type, void *data)+{+ size_t value;+ switch (type)+ {+#if ABI_FRLEN >= 32+ case FFI_TYPE_FLOAT:+ *(float *) data = *(float *)(cb->aregs->fa + cb->used_float++);+ return;+#endif+#if ABI_FRLEN >= 64+ case FFI_TYPE_DOUBLE:+ *(double *) data = cb->aregs->fa[cb->used_float++];+ return;+#endif+ }++ if (cb->used_integer == NARGREG)+ value = *cb->used_stack++;+ else+ value = cb->aregs->a[cb->used_integer++];++ switch (type)+ {+ case FFI_TYPE_UINT8:+ case FFI_TYPE_SINT8:+ case FFI_TYPE_UINT16:+ case FFI_TYPE_SINT16:+ case FFI_TYPE_UINT32:+ case FFI_TYPE_SINT32:+#if __SIZEOF_POINTER__ == 8+ case FFI_TYPE_UINT64:+ case FFI_TYPE_SINT64:+#endif+ case FFI_TYPE_POINTER:+ *(ffi_arg *)data = value;+ break;+ default:+ FFI_ASSERT (0);+ break;+ }+}++/* Allocate and copy a structure that is passed by value on the stack and+ return a pointer to it. */+static void *+allocate_and_copy_struct_to_stack (call_builder *cb, void *data,+ ffi_type *type)+{+ size_t dest = cb->next_struct_area - type->size;++ dest = FFI_ALIGN_DOWN (dest, type->alignment);+ cb->next_struct_area = dest;++ return memcpy ((char *)cb->stack + dest, data, type->size);+}++/* Adds an argument to a call, or a not by reference return value. */+static void+marshal (call_builder *cb, ffi_type *type, int var, void *data)+{+ size_t realign[2];++#if ABI_FRLEN+ if (!var && type->type == FFI_TYPE_STRUCT)+ {+ float_struct_info fsi = struct_passed_as_elements (cb, type);+ if (fsi.as_elements)+ {+ marshal_atom (cb, fsi.type1, data);+ if (fsi.offset2)+ marshal_atom (cb, fsi.type2, ((char *) data) + fsi.offset2);+ return;+ }+ }++ if (!var && cb->used_float < NARGREG+ && IS_FLOAT (type->type))+ {+ marshal_atom (cb, type->type, data);+ return;+ }++ double promoted;+ if (var && type->type == FFI_TYPE_FLOAT)+ {+ /* C standard requires promoting float -> double for variable arg. */+ promoted = *(float *) data;+ type = &ffi_type_double;+ data = &promoted;+ }+#endif++ if (type->size > 2 * __SIZEOF_POINTER__)+ /* Pass by reference. */+ {+ allocate_and_copy_struct_to_stack (cb, data, type);+ data = (char *)cb->stack + cb->next_struct_area;+ marshal_atom (cb, FFI_TYPE_POINTER, &data);+ }+ else if (IS_INT (type->type) || type->type == FFI_TYPE_POINTER)+ marshal_atom (cb, type->type, data);+ else+ {+ /* Overlong integers, soft-float floats, and structs without special+ float handling are treated identically from this point on. */++ /* Variadics are aligned even in registers. */+ if (type->alignment > __SIZEOF_POINTER__)+ {+ if (var)+ cb->used_integer = FFI_ALIGN (cb->used_integer, 2);+ cb->used_stack+ = (size_t *) FFI_ALIGN (cb->used_stack, 2 * __SIZEOF_POINTER__);+ }++ memcpy (realign, data, type->size);+ if (type->size > 0)+ marshal_atom (cb, FFI_TYPE_POINTER, realign);+ if (type->size > __SIZEOF_POINTER__)+ marshal_atom (cb, FFI_TYPE_POINTER, realign + 1);+ }+}++/* For arguments passed by reference returns the pointer, otherwise the arg+ is copied (up to MAXCOPYARG bytes). */+static void *+unmarshal (call_builder *cb, ffi_type *type, int var, void *data)+{+ size_t realign[2];+ void *pointer;++#if ABI_FRLEN+ if (!var && type->type == FFI_TYPE_STRUCT)+ {+ float_struct_info fsi = struct_passed_as_elements (cb, type);+ if (fsi.as_elements)+ {+ unmarshal_atom (cb, fsi.type1, data);+ if (fsi.offset2)+ unmarshal_atom (cb, fsi.type2, ((char *) data) + fsi.offset2);+ return data;+ }+ }++ if (!var && cb->used_float < NARGREG+ && IS_FLOAT (type->type))+ {+ unmarshal_atom (cb, type->type, data);+ return data;+ }++ if (var && type->type == FFI_TYPE_FLOAT)+ {+ int m = cb->used_integer;+ void *promoted+ = m < NARGREG ? cb->aregs->a + m : cb->used_stack + m - NARGREG + 1;+ *(float *) promoted = *(double *) promoted;+ }+#endif++ if (type->size > 2 * __SIZEOF_POINTER__)+ {+ /* Pass by reference. */+ unmarshal_atom (cb, FFI_TYPE_POINTER, (char *) &pointer);+ return pointer;+ }+ else if (IS_INT (type->type) || type->type == FFI_TYPE_POINTER)+ {+ unmarshal_atom (cb, type->type, data);+ return data;+ }+ else+ {+ /* Overlong integers, soft-float floats, and structs without special+ float handling are treated identically from this point on. */++ /* Variadics are aligned even in registers. */+ if (type->alignment > __SIZEOF_POINTER__)+ {+ if (var)+ cb->used_integer = FFI_ALIGN (cb->used_integer, 2);+ cb->used_stack+ = (size_t *) FFI_ALIGN (cb->used_stack, 2 * __SIZEOF_POINTER__);+ }++ if (type->size > 0)+ unmarshal_atom (cb, FFI_TYPE_POINTER, realign);+ if (type->size > __SIZEOF_POINTER__)+ unmarshal_atom (cb, FFI_TYPE_POINTER, realign + 1);+ memcpy (data, realign, type->size);+ return data;+ }+}++static int+passed_by_ref (call_builder *cb, ffi_type *type, int var)+{+#if ABI_FRLEN+ if (!var && type->type == FFI_TYPE_STRUCT)+ {+ float_struct_info fsi = struct_passed_as_elements (cb, type);+ if (fsi.as_elements)+ return 0;+ }+#endif++ return type->size > 2 * __SIZEOF_POINTER__;+}++/* Perform machine dependent cif processing. */+ffi_status+ffi_prep_cif_machdep (ffi_cif *cif)+{+ cif->loongarch_nfixedargs = cif->nargs;+ return FFI_OK;+}++/* Perform machine dependent cif processing when we have a variadic+ function. */+ffi_status+ffi_prep_cif_machdep_var (ffi_cif *cif, unsigned int nfixedargs,+ unsigned int ntotalargs)+{+ cif->loongarch_nfixedargs = nfixedargs;+ return FFI_OK;+}++/* Low level routine for calling functions. */+extern void ffi_call_asm (void *stack, struct call_context *regs,+ void (*fn) (void), void *closure) FFI_HIDDEN;++static void+ffi_call_int (ffi_cif *cif, void (*fn) (void), void *rvalue, void **avalue,+ void *closure)+{+ size_t arg_bytes = FFI_ALIGN (cif->bytes, STKALIGN);++ /* This is a conservative estimate, assuming a complex return value and+ that all remaining arguments are long long / __int128 */+ size_t extra_bytes = cif->nargs <= 3 ? 0 :+ FFI_ALIGN(2 * sizeof(size_t) * (cif->nargs - 3), STKALIGN);++ size_t rval_bytes = 0;+ if (rvalue == NULL && cif->rtype->size > 2 * __SIZEOF_POINTER__)+ rval_bytes = FFI_ALIGN (cif->rtype->size, STKALIGN);+ size_t alloc_size = arg_bytes + extra_bytes + rval_bytes + sizeof (call_context);++ /* The assembly code will deallocate all stack data at lower addresses+ than the argument region, so we need to allocate the frame and the+ return value after the arguments in a single allocation. */+ size_t alloc_base;+ /* Argument region must be 16-byte aligned in LP64 ABIs. */+ if (_Alignof(max_align_t) >= STKALIGN)+ /* Since sizeof long double is normally 16, the compiler will+ guarantee alloca alignment to at least that much. */+ alloc_base = (size_t) alloca (alloc_size);+ else+ alloc_base = FFI_ALIGN (alloca (alloc_size + STKALIGN - 1), STKALIGN);++ if (rval_bytes)+ rvalue = (void *) (alloc_base + arg_bytes);++ call_builder cb;+ cb.used_float = cb.used_integer = 0;+ cb.aregs = (call_context *) (alloc_base + arg_bytes + extra_bytes + rval_bytes);+ cb.used_stack = (size_t *)((char *) alloc_base);+ cb.stack = (size_t *)((char *) alloc_base + extra_bytes + rval_bytes);+ cb.next_struct_area = arg_bytes;++ int return_by_ref = passed_by_ref (&cb, cif->rtype, 0);+ if (return_by_ref)+ cb.aregs->a[cb.used_integer++] = (size_t)rvalue;++ int i;+ for (i = 0; i < cif->nargs; i++)+ marshal (&cb, cif->arg_types[i], i >= cif->loongarch_nfixedargs,+ avalue[i]);++ ffi_call_asm ((void *) alloc_base, cb.aregs, fn, closure);++ cb.used_float = cb.used_integer = 0;+ if (!return_by_ref && rvalue)+ unmarshal (&cb, cif->rtype, 0, rvalue);+}++void+ffi_call (ffi_cif *cif, void (*fn) (void), void *rvalue, void **avalue)+{+ ffi_call_int (cif, fn, rvalue, avalue, NULL);+}++void+ffi_call_go (ffi_cif *cif, void (*fn) (void), void *rvalue, void **avalue,+ void *closure)+{+ ffi_call_int (cif, fn, rvalue, avalue, closure);+}++extern void ffi_closure_asm (void) FFI_HIDDEN;++ffi_status+ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif,+ void (*fun) (ffi_cif *, void *, void **, void *),+ void *user_data, void *codeloc)+{+ uint32_t *tramp = (uint32_t *) &closure->tramp[0];+ uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm;++ if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI)+ return FFI_BAD_ABI;++#if defined(FFI_EXEC_STATIC_TRAMP)+ if (ffi_tramp_is_present(closure))+ {+ ffi_tramp_set_parms (closure->ftramp, ffi_closure_asm, closure);+ goto out;+ }+#endif++ /* Fill the dynamic trampoline. We will call ffi_closure_inner with codeloc,+ not closure, but as long as the memory is readable it should work. */+ tramp[0] = 0x1800000c; /* pcaddi $t0, 0 (i.e. $t0 <- tramp) */+ tramp[1] = 0x28c0418d; /* ld.d $t1, $t0, 16 */+ tramp[2] = 0x4c0001a0; /* jirl $zero, $t1, 0 */+ tramp[3] = 0x03400000; /* nop */+ tramp[4] = fn;+ tramp[5] = fn >> 32;++ __builtin___clear_cache (codeloc, codeloc + FFI_TRAMPOLINE_SIZE);++#if defined(FFI_EXEC_STATIC_TRAMP)+out:+#endif+ closure->cif = cif;+ closure->fun = fun;+ closure->user_data = user_data;++ return FFI_OK;+}++extern void ffi_go_closure_asm (void) FFI_HIDDEN;++ffi_status+ffi_prep_go_closure (ffi_go_closure *closure, ffi_cif *cif,+ void (*fun) (ffi_cif *, void *, void **, void *))+{+ if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI)+ return FFI_BAD_ABI;++ closure->tramp = (void *) ffi_go_closure_asm;+ closure->cif = cif;+ closure->fun = fun;+ return FFI_OK;+}++/* Called by the assembly code with aregs pointing to saved argument registers+ and stack pointing to the stacked arguments. Return values passed in+ registers will be reloaded from aregs. */+void FFI_HIDDEN+ffi_closure_inner (ffi_cif *cif,+ void (*fun) (ffi_cif *, void *, void **, void *),+ void *user_data, size_t *stack, call_context *aregs)+{+ void **avalue = alloca (cif->nargs * sizeof (void *));+ /* Storage for arguments which will be copied by unmarshal(). We could+ theoretically avoid the copies in many cases and use at most 128 bytes+ of memory, but allocating disjoint storage for each argument is+ simpler. */+ char *astorage = alloca (cif->nargs * MAXCOPYARG);+ void *rvalue;+ call_builder cb;+ int return_by_ref;+ int i;++ cb.aregs = aregs;+ cb.used_integer = cb.used_float = 0;+ cb.used_stack = stack;++ return_by_ref = passed_by_ref (&cb, cif->rtype, 0);+ if (return_by_ref)+ unmarshal (&cb, &ffi_type_pointer, 0, &rvalue);+ else+ rvalue = alloca (cif->rtype->size);++ for (i = 0; i < cif->nargs; i++)+ avalue[i]+ = unmarshal (&cb, cif->arg_types[i], i >= cif->loongarch_nfixedargs,+ astorage + i * MAXCOPYARG);++ fun (cif, rvalue, avalue, user_data);++ if (!return_by_ref && cif->rtype->type != FFI_TYPE_VOID)+ {+ cb.used_integer = cb.used_float = 0;+ marshal (&cb, cif->rtype, 0, rvalue);+ }+}++#if defined(FFI_EXEC_STATIC_TRAMP)+void *+ffi_tramp_arch (size_t *tramp_size, size_t *map_size)+{+ extern void *trampoline_code_table;++ *tramp_size = 16;+ /* A mapping size of 64K is chosen to cover the page sizes of 4K, 16K, and+ 64K. */+ *map_size = 1 << 16;+ return &trampoline_code_table;+}+#endif
+ src/loongarch/ffitarget.h view
@@ -0,0 +1,97 @@+/* -----------------------------------------------------------------*-C-*-+ ffitarget.h - Copyright (c) 2022 Xu Chenghua <xuchenghua@loongson.cn>+ 2022 Cheng Lulu <chenglulu@loongson.cn>++ Target configuration macros for LoongArch.++ Permission is hereby granted, free of charge, to any person obtaining+ a copy of this software and associated documentation files (the+ ``Software''), to deal in the Software without restriction, including+ without limitation the rights to use, copy, modify, merge, publish,+ distribute, sublicense, and/or sell copies of the Software, and to+ permit persons to whom the Software is furnished to do so, subject to+ the following conditions:++ The above copyright notice and this permission notice shall be included+ in all copies or substantial portions of the Software.++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER+ DEALINGS IN THE SOFTWARE.++ ----------------------------------------------------------------------- */++#ifndef LIBFFI_TARGET_H+#define LIBFFI_TARGET_H++#ifndef LIBFFI_H+#error \+ "Please do not include ffitarget.h directly into your source. Use ffi.h instead."+#endif++#ifndef __loongarch__+#error \+ "libffi was configured for a LoongArch target but this does not appear to be a LoongArch compiler."+#endif++#ifndef LIBFFI_ASM++typedef unsigned long ffi_arg;+typedef signed long ffi_sarg;++typedef enum ffi_abi+{+ FFI_FIRST_ABI = 0,+ FFI_LP64S,+ FFI_LP64F,+ FFI_LP64D,+ FFI_ILP32S,+ FFI_ILP32F,+ FFI_ILP32D,+ FFI_LAST_ABI,++#if __loongarch_grlen == 64+ #if defined(__loongarch_soft_float)+ FFI_DEFAULT_ABI = FFI_LP64S+ #elif defined(__loongarch_single_float)+ FFI_DEFAULT_ABI = FFI_LP64F+ #elif defined(__loongarch_double_float)+ FFI_DEFAULT_ABI = FFI_LP64D+ #else+ #error unsupported LoongArch floating-point ABI+ #endif+#elif __loongarch_grlen == 32+ #if defined(__loongarch_soft_float)+ FFI_DEFAULT_ABI = FFI_ILP32S+ #elif defined(__loongarch_single_float)+ FFI_DEFAULT_ABI = FFI_ILP32F+ #elif defined(__loongarch_double_float)+ FFI_DEFAULT_ABI = FFI_ILP32D+ #else+ #error unsupported LoongArch floating-point ABI+ #endif+#else+ #error unsupported LoongArch base architecture+#endif+} ffi_abi;++#endif /* LIBFFI_ASM */++#define FFI_TARGET_HAS_INT128++/* ---- Definitions for closures ----------------------------------------- */++#define FFI_CLOSURES 1+#define FFI_GO_CLOSURES 1+#define FFI_TRAMPOLINE_SIZE 24+#define FFI_NATIVE_RAW_API 0+#define FFI_EXTRA_CIF_FIELDS \+ unsigned loongarch_nfixedargs; \+ unsigned loongarch_unused+#define FFI_TARGET_SPECIFIC_VARIADIC+#endif
+ src/loongarch/sysv.S view
@@ -0,0 +1,329 @@+/* -----------------------------------------------------------------------+ sysv.S - Copyright (c) 2022 Xu Chenghua <xuchenghua@loongson.cn>+ 2022 Cheng Lulu <chenglulu@loongson.cn>++ LoongArch Foreign Function Interface++ Permission is hereby granted, free of charge, to any person obtaining+ a copy of this software and associated documentation files (the+ ``Software''), to deal in the Software without restriction, including+ without limitation the rights to use, copy, modify, merge, publish,+ distribute, sublicense, and/or sell copies of the Software, and to+ permit persons to whom the Software is furnished to do so, subject to+ the following conditions:++ The above copyright notice and this permission notice shall be included+ in all copies or substantial portions of the Software.++ THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY KIND,+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER+ DEALINGS IN THE SOFTWARE.+ ----------------------------------------------------------------------- */++#define LIBFFI_ASM+#include <fficonfig.h>+#include <ffi.h>++/* Define aliases so that we can handle all ABIs uniformly. */++#if __SIZEOF_POINTER__ == 8+# define PTRS 8+# define LARG ld.d+# define SARG st.d+# define ADDI addi.d+#else+# define PTRS 4+# define LARG ld.w+# define SARG st.w+# define ADDI addi.w+#endif++#if defined(__loongarch_single_float)+# define FLTS 4+# define FLD fld.w+# define FST fst.w+#elif defined(__loongarch_double_float)+# define FLTS 8+# define FLARG fld.d+# define FSARG fst.d+#elif defined(__loongarch_soft_float)+# define FLTS 0+#else+#error unsupported LoongArch floating-point ABI+#endif++ .text+ .globl ffi_call_asm+ .type ffi_call_asm, @function+ .hidden ffi_call_asm+/* struct call_context+ {+ ABI_FLOAT fa[8];+ size_t a[10];+ }++ - 8 floating point parameter/result registers (fa[0] - fa[7])+ - 8 integer parameter/result registers (a[0] - a[7])+ - 2 registers used by the assembly code to in-place construct its own stack+ frame.+ - frame pointer (a[8])+ - return address (a[9])++ void ffi_call_asm (size_t *stackargs, struct call_context *regargs,+ void (*fn)(void), void *closure); */++#define FRAME_LEN (8 * FLTS + 10 * PTRS)++ffi_call_asm:+ .cfi_startproc++ /* We are NOT going to set up an ordinary stack frame. In order to pass+ the stacked args to the called function, we adjust our stack pointer+ to a0, which is in the _caller's_ alloca area. We establish our own+ stack frame at the end of the call_context.++ Anything below the arguments will be freed at this point, although+ we preserve the call_context so that it can be read back in the+ caller. */++ .cfi_def_cfa 5, FRAME_LEN /* Interim CFA based on a1. */+ SARG $fp, $a1, FRAME_LEN - 2*PTRS+ .cfi_offset 22, -2*PTRS+ SARG $ra, $a1, FRAME_LEN - 1*PTRS+ .cfi_offset 1, -1*PTRS++ ADDI $fp, $a1, FRAME_LEN+ move $sp, $a0+ .cfi_def_cfa 22, 0 /* Our frame is fully set up. */++ /* Load arguments. */+ move $t1, $a2+ move $t2, $a3++#if FLTS+ FLARG $fa0, $fp, -FRAME_LEN+0*FLTS+ FLARG $fa1, $fp, -FRAME_LEN+1*FLTS+ FLARG $fa2, $fp, -FRAME_LEN+2*FLTS+ FLARG $fa3, $fp, -FRAME_LEN+3*FLTS+ FLARG $fa4, $fp, -FRAME_LEN+4*FLTS+ FLARG $fa5, $fp, -FRAME_LEN+5*FLTS+ FLARG $fa6, $fp, -FRAME_LEN+6*FLTS+ FLARG $fa7, $fp, -FRAME_LEN+7*FLTS+#endif++ LARG $a0, $fp, -FRAME_LEN+8*FLTS+0*PTRS+ LARG $a1, $fp, -FRAME_LEN+8*FLTS+1*PTRS+ LARG $a2, $fp, -FRAME_LEN+8*FLTS+2*PTRS+ LARG $a3, $fp, -FRAME_LEN+8*FLTS+3*PTRS+ LARG $a4, $fp, -FRAME_LEN+8*FLTS+4*PTRS+ LARG $a5, $fp, -FRAME_LEN+8*FLTS+5*PTRS+ LARG $a6, $fp, -FRAME_LEN+8*FLTS+6*PTRS+ LARG $a7, $fp, -FRAME_LEN+8*FLTS+7*PTRS++ /* Call */+ jirl $ra, $t1, 0++#if FLTS+ /* Save return values - only a0/a1 (fa0/fa1) are used. */+ FSARG $fa0, $fp, -FRAME_LEN+0*FLTS+ FSARG $fa1, $fp, -FRAME_LEN+1*FLTS+#endif++ SARG $a0, $fp, -FRAME_LEN+8*FLTS+0*PTRS+ SARG $a1, $fp, -FRAME_LEN+8*FLTS+1*PTRS++ /* Restore and return. */+ ADDI $sp, $fp, -FRAME_LEN+ .cfi_def_cfa 3, FRAME_LEN+ LARG $ra, $fp, -1*PTRS+ .cfi_restore 1+ LARG $fp, $fp, -2*PTRS+ .cfi_restore 22+ jr $ra+ .cfi_endproc+ .size ffi_call_asm, .-ffi_call_asm+++/* ffi_closure_asm. Expects address of the passed-in ffi_closure in t0.+ void ffi_closure_inner (ffi_cif *cif,+ void (*fun)(ffi_cif *, void *, void **, void *),+ void *user_data,+ size_t *stackargs, struct call_context *regargs) */++ .globl ffi_closure_asm+ .hidden ffi_closure_asm+ .type ffi_closure_asm, @function++ffi_closure_asm:+ .cfi_startproc+ ADDI $sp, $sp, -FRAME_LEN+ .cfi_def_cfa_offset FRAME_LEN++ /* Make a frame. */+ SARG $fp, $sp, FRAME_LEN - 2*PTRS+ .cfi_offset 22, -2*PTRS+ SARG $ra, $sp, FRAME_LEN - 1*PTRS+ .cfi_offset 1, -1*PTRS+ ADDI $fp, $sp, FRAME_LEN++ /* Save arguments. */+#if FLTS+ FSARG $fa0, $sp, 0*FLTS+ FSARG $fa1, $sp, 1*FLTS+ FSARG $fa2, $sp, 2*FLTS+ FSARG $fa3, $sp, 3*FLTS+ FSARG $fa4, $sp, 4*FLTS+ FSARG $fa5, $sp, 5*FLTS+ FSARG $fa6, $sp, 6*FLTS+ FSARG $fa7, $sp, 7*FLTS+#endif++ SARG $a0, $sp, 8*FLTS+0*PTRS+ SARG $a1, $sp, 8*FLTS+1*PTRS+ SARG $a2, $sp, 8*FLTS+2*PTRS+ SARG $a3, $sp, 8*FLTS+3*PTRS+ SARG $a4, $sp, 8*FLTS+4*PTRS+ SARG $a5, $sp, 8*FLTS+5*PTRS+ SARG $a6, $sp, 8*FLTS+6*PTRS+ SARG $a7, $sp, 8*FLTS+7*PTRS++ /* Enter C */+ LARG $a0, $t0, FFI_TRAMPOLINE_SIZE+0*PTRS+ LARG $a1, $t0, FFI_TRAMPOLINE_SIZE+1*PTRS+ LARG $a2, $t0, FFI_TRAMPOLINE_SIZE+2*PTRS+ ADDI $a3, $sp, FRAME_LEN+ move $a4, $sp++ bl ffi_closure_inner++ /* Return values. */+#if FLTS+ FLARG $fa0, $sp, 0*FLTS+ FLARG $fa1, $sp, 1*FLTS+#endif++ LARG $a0, $sp, 8*FLTS+0*PTRS+ LARG $a1, $sp, 8*FLTS+1*PTRS++ /* Restore and return. */+ LARG $ra, $sp, FRAME_LEN-1*PTRS+ .cfi_restore 1+ LARG $fp, $sp, FRAME_LEN-2*PTRS+ .cfi_restore 22+ ADDI $sp, $sp, FRAME_LEN+ .cfi_def_cfa_offset 0+ jr $ra+ .cfi_endproc+ .size ffi_closure_asm, .-ffi_closure_asm++/* Static trampoline code table, in which each element is a trampoline.++ The trampoline clobbers t0 and t1, but we don't save them on the stack+ because our psABI explicitly says they are scratch registers, at least for+ ELF. Our dynamic trampoline is already clobbering them anyway.++ The trampoline has two parameters - target code to jump to and data for+ the target code. The trampoline extracts the parameters from its parameter+ block (see tramp_table_map()). The trampoline saves the data address in+ t0 and jumps to the target code. As ffi_closure_asm() already expects the+ data address to be in t0, we don't need a "ffi_closure_asm_alt". */++#if defined(FFI_EXEC_STATIC_TRAMP)+ .align 16+ .globl trampoline_code_table+ .hidden trampoline_code_table+ .type trampoline_code_table, @function++trampoline_code_table:++ .rept 65536 / 16+ pcaddu12i $t1, 16 # 65536 >> 12+ LARG $t0, $t1, 0+ LARG $t1, $t1, PTRS+ jirl $zero, $t1, 0+ .endr+ .size trampoline_code_table, .-trampoline_code_table++ .align 2+#endif++/* ffi_go_closure_asm. Expects address of the passed-in ffi_go_closure in t2.+ void ffi_closure_inner (ffi_cif *cif,+ void (*fun)(ffi_cif *, void *, void **, void *),+ void *user_data,+ size_t *stackargs, struct call_context *regargs) */++ .globl ffi_go_closure_asm+ .hidden ffi_go_closure_asm+ .type ffi_go_closure_asm, @function++ffi_go_closure_asm:+ .cfi_startproc+ ADDI $sp, $sp, -FRAME_LEN+ .cfi_def_cfa_offset FRAME_LEN++ /* Make a frame. */+ SARG $fp, $sp, FRAME_LEN - 2*PTRS+ .cfi_offset 22, -2*PTRS+ SARG $ra, $sp, FRAME_LEN - 1*PTRS+ .cfi_offset 1, -1*PTRS+ ADDI $fp, $sp, FRAME_LEN++ /* Save arguments. */+#if FLTS+ FSARG $fa0, $sp, 0*FLTS+ FSARG $fa1, $sp, 1*FLTS+ FSARG $fa2, $sp, 2*FLTS+ FSARG $fa3, $sp, 3*FLTS+ FSARG $fa4, $sp, 4*FLTS+ FSARG $fa5, $sp, 5*FLTS+ FSARG $fa6, $sp, 6*FLTS+ FSARG $fa7, $sp, 7*FLTS+#endif++ SARG $a0, $sp, 8*FLTS+0*PTRS+ SARG $a1, $sp, 8*FLTS+1*PTRS+ SARG $a2, $sp, 8*FLTS+2*PTRS+ SARG $a3, $sp, 8*FLTS+3*PTRS+ SARG $a4, $sp, 8*FLTS+4*PTRS+ SARG $a5, $sp, 8*FLTS+5*PTRS+ SARG $a6, $sp, 8*FLTS+6*PTRS+ SARG $a7, $sp, 8*FLTS+7*PTRS++ /* Enter C */+ LARG $a0, $t2, 1*PTRS+ LARG $a1, $t2, 2*PTRS+ move $a2, $t2+ ADDI $a3, $sp, FRAME_LEN+ move $a4, $sp++ bl ffi_closure_inner++ /* Return values. */+#if FLTS+ FLARG $fa0, $sp, 0*FLTS+ FLARG $fa1, $sp, 1*FLTS+#endif++ LARG $a0, $sp, 8*FLTS+0*PTRS+ LARG $a1, $sp, 8*FLTS+1*PTRS++ /* Restore and return. */+ LARG $ra, $sp, FRAME_LEN-1*PTRS+ .cfi_restore 1+ LARG $fp, $sp, FRAME_LEN-2*PTRS+ .cfi_restore 22+ ADDI $sp, $sp, FRAME_LEN+ .cfi_def_cfa_offset 0+ jr $ra+ .cfi_endproc+ .size ffi_go_closure_asm, .-ffi_go_closure_asm++#if defined __ELF__ && defined __linux__+ .section .note.GNU-stack,"",%progbits+#endif
src/moxie/ffi.c view
@@ -275,7 +275,7 @@ /* Allocate space for the return value and call the function. */ long long rvalue; (closure->fun) (cif, &rvalue, avalue, closure->user_data);- asm ("mov $r12, %0\n ld.l $r0, ($r12)\n ldo.l $r1, 4($r12)" : : "r" (&rvalue));+ __asm__ ("mov $r12, %0\n ld.l $r0, ($r12)\n ldo.l $r1, 4($r12)" : : "r" (&rvalue)); } }
src/or1k/ffi.c view
@@ -269,7 +269,7 @@ long long rvalue; (closure->fun) (cif, &rvalue, avalue, closure->user_data); if (cif->rtype)- asm ("l.ori r12, %0, 0x0\n l.lwz r11, 0(r12)\n l.lwz r12, 4(r12)" : : "r" (&rvalue));+ __asm__ ("l.ori r12, %0, 0x0\n l.lwz r11, 0(r12)\n l.lwz r12, 4(r12)" : : "r" (&rvalue)); } }
src/or1k/ffitarget.h view
@@ -52,7 +52,7 @@ #define FFI_TRAMPOLINE_SIZE (24) #define FFI_TARGET_SPECIFIC_VARIADIC 1-#define FFI_EXTRA_CIF_FIELDS unsigned nfixedargs;+#define FFI_EXTRA_CIF_FIELDS unsigned nfixedargs #endif
src/pa/ffi.c view
@@ -429,7 +429,7 @@ char *tmp; int i, avn; unsigned int slot = FIRST_ARG_SLOT;- register UINT32 r28 asm("r28");+ register UINT32 r28 __asm__("r28"); cif = closure->cif;
src/powerpc/aix_closure.S view
@@ -174,12 +174,12 @@ /* look up the proper starting point in table */ /* by using return type as offset */- lhz r3, 10(r3) /* load type from return type */ ld r4, LC..60(2) /* get address of jump table */ sldi r3, r3, 4 /* now multiply return type by 16 */ ld r0, 240+16(r1) /* load return address */ add r3, r3, r4 /* add contents of table to table address */ mtctr r3+ mtlr r0 bctr /* jump to it */ /* Each fragment must be exactly 16 bytes long (4 instructions).@@ -187,96 +187,78 @@ .align 4 L..60:-/* case FFI_TYPE_VOID */- mtlr r0+/* case PPC_LD_NONE */ addi r1, r1, 240 blr nop+ nop -/* case FFI_TYPE_INT */- lwa r3, 112+4(r1)- mtlr r0+/* case PPC_LD_R3 */+ ld r3, 112+0(r1) addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_FLOAT */+/* case PPC_LD_R3R4 */+ ld r3, 112+0(r1)+ ld r4, 112+8(r1)+ addi r1, r1, 240+ blr++/* case PPC_LD_F32 */ lfs f1, 112+0(r1)- mtlr r0 addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_DOUBLE */+/* case PPC_LD_F64 */ lfd f1, 112+0(r1)- mtlr r0 addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_LONGDOUBLE */+/* case PPC_LD_F128 */ lfd f1, 112+0(r1)- mtlr r0 lfd f2, 112+8(r1)- b L..finish+ addi r1, r1, 240+ blr -/* case FFI_TYPE_UINT8 */+/* case PPC_LD_U8 */ lbz r3, 112+7(r1)- mtlr r0 addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_SINT8 */+/* case PPC_LD_S8 */ lbz r3, 112+7(r1)- mtlr r0 extsb r3, r3- b L..finish+ addi r1, r1, 240+ blr -/* case FFI_TYPE_UINT16 */+/* case PPC_LD_U16 */ lhz r3, 112+6(r1)- mtlr r0-L..finish: addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_SINT16 */+/* case PPC_LD_S16 */ lha r3, 112+6(r1)- mtlr r0 addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_UINT32 */+/* case PPC_LD_U32 */ lwz r3, 112+4(r1)- mtlr r0 addi r1, r1, 240 blr+ nop -/* case FFI_TYPE_SINT32 */+/* case PPC_LD_S32 */ lwa r3, 112+4(r1)- mtlr r0 addi r1, r1, 240 blr--/* case FFI_TYPE_UINT64 */- ld r3, 112+0(r1)- mtlr r0- addi r1, r1, 240- blr--/* case FFI_TYPE_SINT64 */- ld r3, 112+0(r1)- mtlr r0- addi r1, r1, 240- blr--/* case FFI_TYPE_STRUCT */- mtlr r0- addi r1, r1, 240- blr nop -/* case FFI_TYPE_POINTER */- ld r3, 112+0(r1)- mtlr r0- addi r1, r1, 240- blr LFE..0: #else /* ! __64BIT__ */@@ -355,12 +337,12 @@ /* look up the proper starting point in table */ /* by using return type as offset */- lhz r3, 6(r3) /* load type from return type */ lwz r4, LC..60(2) /* get address of jump table */ slwi r3, r3, 4 /* now multiply return type by 16 */ lwz r0, 176+8(r1) /* load return address */ add r3, r3, r4 /* add contents of table to table address */ mtctr r3+ mtlr r0 bctr /* jump to it */ /* Each fragment must be exactly 16 bytes long (4 instructions).@@ -368,96 +350,66 @@ .align 4 L..60:-/* case FFI_TYPE_VOID */- mtlr r0+/* case PPC_LD_NONE */ addi r1, r1, 176 blr nop+ nop -/* case FFI_TYPE_INT */+/* case PPC_LD_R3 */ lwz r3, 56+0(r1)- mtlr r0 addi r1, r1, 176 blr+ nop -/* case FFI_TYPE_FLOAT */+/* case PPC_LD_R3R4 */+ lwz r3, 56+0(r1)+ lwz r4, 56+4(r1)+ addi r1, r1, 176+ blr++/* case PPC_LD_F32 */ lfs f1, 56+0(r1)- mtlr r0 addi r1, r1, 176 blr+ nop -/* case FFI_TYPE_DOUBLE */+/* case PPC_LD_F64 */ lfd f1, 56+0(r1)- mtlr r0 addi r1, r1, 176 blr+ nop -/* case FFI_TYPE_LONGDOUBLE */+/* case PPC_LD_F128 */ lfd f1, 56+0(r1)- mtlr r0 lfd f2, 56+8(r1)- b L..finish--/* case FFI_TYPE_UINT8 */- lbz r3, 56+3(r1)- mtlr r0 addi r1, r1, 176 blr -/* case FFI_TYPE_SINT8 */+/* case PPC_LD_U8 */ lbz r3, 56+3(r1)- mtlr r0- extsb r3, r3- b L..finish--/* case FFI_TYPE_UINT16 */- lhz r3, 56+2(r1)- mtlr r0 addi r1, r1, 176 blr--/* case FFI_TYPE_SINT16 */- lha r3, 56+2(r1)- mtlr r0- addi r1, r1, 176- blr+ nop -/* case FFI_TYPE_UINT32 */- lwz r3, 56+0(r1)- mtlr r0+/* case PPC_LD_S8 */+ lbz r3, 56+3(r1)+ extsb r3, r3 addi r1, r1, 176 blr -/* case FFI_TYPE_SINT32 */- lwz r3, 56+0(r1)- mtlr r0+/* case PPC_LD_U16 */+ lhz r3, 56+2(r1) addi r1, r1, 176 blr--/* case FFI_TYPE_UINT64 */- lwz r3, 56+0(r1)- mtlr r0- lwz r4, 56+4(r1)- b L..finish--/* case FFI_TYPE_SINT64 */- lwz r3, 56+0(r1)- mtlr r0- lwz r4, 56+4(r1)- b L..finish+ nop -/* case FFI_TYPE_STRUCT */- mtlr r0+/* case PPC_LD_S16 */+ lha r3, 56+2(r1) addi r1, r1, 176 blr nop -/* case FFI_TYPE_POINTER */- lwz r3, 56+0(r1)- mtlr r0-L..finish:- addi r1, r1, 176- blr LFE..0: #endif .ef __LINE__
src/powerpc/ffi.c view
@@ -114,6 +114,26 @@ if (rvalue && ecif.rvalue == smst_buffer) { unsigned int rsize = cif->rtype->size;+#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ /* Integer-typed _Complex: the .Lsmall_struct return path stored+ r3 at buffer offset 0 and r4 at offset 8. Extract one inner-+ sized half from each slot — right-justified on BE, low-address+ on LE — and lay them out as the natural packed complex value+ the caller expects (real@0, imag@hsize). */+ if (cif->rtype->type == FFI_TYPE_COMPLEX+ && (cif->flags & (FLAG_RETURNS_FP | FLAG_RETURNS_VEC)) == 0)+ {+ size_t hsize = cif->rtype->elements[0]->size;+#ifndef __LITTLE_ENDIAN__+ size_t off = 8 - hsize;+#else+ size_t off = 0;+#endif+ memcpy ((char *) rvalue, (char *) smst_buffer + off, hsize);+ memcpy ((char *) rvalue + hsize, (char *) smst_buffer + 8 + off, hsize);+ }+ else+#endif #ifndef __LITTLE_ENDIAN__ /* The SYSV ABI returns a structure of up to 4 bytes in size left-padded in r3. */
src/powerpc/ffi_darwin.c view
@@ -32,6 +32,13 @@ #include <stdlib.h> ++struct ffi_aix_trampoline_struct {+ void * code_pointer; /* Pointer to ffi_closure_ASM */+ void * toc; /* TOC */+ void * static_chain; /* Pointer to closure */+};+ extern void ffi_closure_ASM (void); #if defined (FFI_GO_CLOSURES)@@ -1442,7 +1449,40 @@ (fun) (cif, rvalue, avalue, user_data); /* Tell ffi_closure_ASM to perform return type promotions. */- return cif->rtype;+ switch (cif->rtype->type)+ {+ case FFI_TYPE_VOID:+ case FFI_TYPE_STRUCT:+ return PPC_LD_NONE;+ case FFI_TYPE_FLOAT:+ return PPC_LD_F32;+ case FFI_TYPE_DOUBLE:+ return PPC_LD_F64;+#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE+ case FFI_TYPE_LONGDOUBLE:+ return PPC_LD_F128;+#endif+ case FFI_TYPE_UINT8:+ return PPC_LD_U8;+ case FFI_TYPE_SINT8:+ return PPC_LD_S8;+ case FFI_TYPE_UINT16:+ return PPC_LD_U16;+ case FFI_TYPE_SINT16:+ return PPC_LD_S16;+ case FFI_TYPE_UINT32:+ return PPC_LD_U32;+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT32:+ return PPC_LD_S32;+ case FFI_TYPE_POINTER:+ return PPC_LD_PTR;+ case FFI_TYPE_UINT64:+ case FFI_TYPE_SINT64:+ return PPC_LD_I64;+ default:+ abort();+ } } ffi_type *
src/powerpc/ffi_linux64.c view
@@ -30,6 +30,7 @@ #include "ffi.h" #include <tramp.h>+#include <stdlib.h> #ifdef POWERPC64 #include "ffi_common.h"@@ -95,6 +96,26 @@ *elnum = 1; return (int) t->type; +#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ case FFI_TYPE_COMPLEX:+ /* Count complex of an FP base as two elements of that base, so a+ struct containing complex members is recognised as an HFA. This+ only affects FFI_TYPE_COMPLEX *inside* structs; the top-level+ complex arg path has its own case in the cif/args/closure loops+ and never reaches the FFI_TYPE_STRUCT branches. */+ {+ unsigned int inner_elnum = 0;+ unsigned int inner+ = discover_homogeneous_aggregate (abi, t->elements[0], &inner_elnum);+ if (inner == FFI_TYPE_FLOAT || inner == FFI_TYPE_DOUBLE)+ {+ *elnum = 2 * inner_elnum;+ return inner;+ }+ return 0;+ }+#endif+ case FFI_TYPE_STRUCT:; { unsigned int base_elt = 0, total_elnum = 0;@@ -195,9 +216,6 @@ flags |= FLAG_RETURNS_FP; break; - case FFI_TYPE_UINT128:- flags |= FLAG_RETURNS_128BITS;- /* Fall through. */ case FFI_TYPE_UINT64: case FFI_TYPE_SINT64: case FFI_TYPE_POINTER:@@ -226,6 +244,46 @@ flags |= FLAG_RETURNS_NOTHING; break; +#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ case FFI_TYPE_COMPLEX:+ rtype = cif->rtype->elements[0]->type;+ switch (rtype)+ {+ case FFI_TYPE_FLOAT:+ case FFI_TYPE_DOUBLE:+ /* float/double _Complex are returned in (f1, f2), matching+ the assembly path for a 2-element FP HFA. */+ flags |= FLAG_RETURNS_SMST;+ goto homogeneous;+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ case FFI_TYPE_LONGDOUBLE:+ /* Only the 64-bit long double case is wired up; IBM-128 and+ IEEE-binary128 _Complex are left as a follow-up. */+ if ((cif->abi & (FFI_LINUX_LONG_DOUBLE_128+ | FFI_LINUX_LONG_DOUBLE_IEEE128)) != 0)+ return FFI_BAD_TYPEDEF;+ flags |= FLAG_RETURNS_SMST;+ rtype = FFI_TYPE_DOUBLE;+ goto homogeneous;+#endif+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT8: case FFI_TYPE_UINT8:+ case FFI_TYPE_SINT16: case FFI_TYPE_UINT16:+ case FFI_TYPE_SINT32: case FFI_TYPE_UINT32:+ case FFI_TYPE_SINT64: case FFI_TYPE_UINT64:+ case FFI_TYPE_POINTER:+ /* Integer-typed _Complex: real returned in r3, imag in r4.+ Take the .Lsmall_struct return path (FLAG_RETURNS_SMST+ without FP/VEC) and let the bounce-buffer logic in+ ffi_call_int repack the two halves. */+ flags |= FLAG_RETURNS_SMST;+ break;+ default:+ return FFI_BAD_TYPEDEF;+ }+ break;+#endif+ default: /* Returns 32-bit integer, or similar. Nothing to do here. */ break;@@ -315,6 +373,51 @@ if (intarg_count > NUM_GPR_ARG_REGISTERS64) flags |= FLAG_ARG_NEEDS_PSAVE; break;++#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ case FFI_TYPE_COMPLEX:+ /* Each half of a _Complex argument is passed independently: an FP+ half in its own FPR (and its own GPR shadow slot); an integer+ half in its own GPR slot. This matches GCC's split_complex_arg+ under ELFv2, and is what differentiates _Complex from a+ same-sized struct{T;T;} which uses fewer GPR shadow slots. */+ elt = (*ptr)->elements[0]->type;+ switch (elt)+ {+ case FFI_TYPE_FLOAT:+ case FFI_TYPE_DOUBLE:+ fparg_count += 2;+ intarg_count += 2;+ if (fparg_count > NUM_FPR_ARG_REGISTERS64)+ flags |= FLAG_ARG_NEEDS_PSAVE;+ break;+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ case FFI_TYPE_LONGDOUBLE:+ if ((cif->abi & (FFI_LINUX_LONG_DOUBLE_128+ | FFI_LINUX_LONG_DOUBLE_IEEE128)) != 0)+ return FFI_BAD_TYPEDEF;+ fparg_count += 2;+ intarg_count += 2;+ if (fparg_count > NUM_FPR_ARG_REGISTERS64)+ flags |= FLAG_ARG_NEEDS_PSAVE;+ break;+#endif+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT8: case FFI_TYPE_UINT8:+ case FFI_TYPE_SINT16: case FFI_TYPE_UINT16:+ case FFI_TYPE_SINT32: case FFI_TYPE_UINT32:+ case FFI_TYPE_SINT64: case FFI_TYPE_UINT64:+ case FFI_TYPE_POINTER:+ intarg_count += 2;+ break;+ default:+ return FFI_BAD_TYPEDEF;+ }+ if (intarg_count > NUM_GPR_ARG_REGISTERS64)+ flags |= FLAG_ARG_NEEDS_PSAVE;+ break;+#endif+ default: FFI_ASSERT (0); }@@ -648,6 +751,98 @@ FFI_ASSERT (flags & FLAG_FP_ARGUMENTS); break; +#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ case FFI_TYPE_COMPLEX:+ elt = (*ptr)->elements[0]->type;+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ /* 64-bit long double is equivalent to double; the IBM-128 and+ IEEE-binary128 variants were rejected in prep_cif. */+ if (elt == FFI_TYPE_LONGDOUBLE)+ elt = FFI_TYPE_DOUBLE;+#endif+ if (elt == FFI_TYPE_FLOAT)+ {+ float *cval = (float *) *p_argv.v;+ unsigned int j;+ for (j = 0; j < 2; j++)+ {+ double_tmp = cval[j];+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs)+ *fpr_base.d++ = double_tmp;+ else+ {+# ifndef __LITTLE_ENDIAN__+ next_arg.f[1] = (float) double_tmp;+# else+ next_arg.f[0] = (float) double_tmp;+# endif+ }+ if (++next_arg.ul == gpr_end.ul)+ next_arg.ul = rest.ul;+ fparg_count++;+ }+ FFI_ASSERT (flags & FLAG_FP_ARGUMENTS);+ }+ else if (elt == FFI_TYPE_DOUBLE)+ {+ double *cval = (double *) *p_argv.v;+ unsigned int j;+ for (j = 0; j < 2; j++)+ {+ double_tmp = cval[j];+ if (fparg_count < NUM_FPR_ARG_REGISTERS64 && i < nfixedargs)+ *fpr_base.d++ = double_tmp;+ else+ *next_arg.d = double_tmp;+ if (++next_arg.ul == gpr_end.ul)+ next_arg.ul = rest.ul;+ fparg_count++;+ }+ FFI_ASSERT (flags & FLAG_FP_ARGUMENTS);+ }+ else+ {+ /* Integer-typed _Complex: each half consumes one GPR slot,+ sign-/zero-extended to a doubleword. */+ char *cval = (char *) *p_argv.v;+ size_t hsize = (*ptr)->elements[0]->size;+ unsigned int j;+ for (j = 0; j < 2; j++)+ {+ char *half = cval + j * hsize;+ unsigned long gprvalue;+ switch (elt)+ {+ case FFI_TYPE_UINT8:+ gprvalue = *(unsigned char *) half; break;+ case FFI_TYPE_SINT8:+ gprvalue = (unsigned long) (long) *(signed char *) half;+ break;+ case FFI_TYPE_UINT16:+ gprvalue = *(unsigned short *) half; break;+ case FFI_TYPE_SINT16:+ gprvalue = (unsigned long) (long) *(signed short *) half;+ break;+ case FFI_TYPE_UINT32:+ gprvalue = *(unsigned int *) half; break;+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT32:+ gprvalue = (unsigned long) (long) *(signed int *) half;+ break;+ case FFI_TYPE_SINT64:+ case FFI_TYPE_UINT64:+ case FFI_TYPE_POINTER:+ default:+ gprvalue = *(unsigned long *) half; break;+ }+ *next_arg.ul++ = gprvalue;+ if (next_arg.ul == gpr_end.ul)+ next_arg.ul = rest.ul;+ }+ }+ break;+#endif+ case FFI_TYPE_STRUCT: if ((ecif->cif->abi & FFI_LINUX_STRUCT_ALIGN) != 0) {@@ -1132,6 +1327,79 @@ pst++; break; +#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ case FFI_TYPE_COMPLEX:+ /* Reassemble each _Complex argument from successive registers (or+ parameter-save slots when registers are exhausted) into a+ contiguous in-memory value for the closure. */+ {+ unsigned int j;+ elt = arg_types[i]->elements[0]->type;+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ if (elt == FFI_TYPE_LONGDOUBLE)+ elt = FFI_TYPE_DOUBLE;+#endif+ if (elt == FFI_TYPE_FLOAT)+ {+ float *cval = alloca (2 * sizeof (float));+ for (j = 0; j < 2; j++)+ {+ if (pfr < end_pfr && i < nfixedargs)+ {+ cval[j] = (float) pfr->d;+ pfr++;+ }+ else+ {+#ifndef __LITTLE_ENDIAN__+ cval[j] = ((float *) pst)[1];+#else+ cval[j] = ((float *) pst)[0];+#endif+ }+ pst++;+ }+ avalue[i] = cval;+ }+ else if (elt == FFI_TYPE_DOUBLE)+ {+ double *cval = alloca (2 * sizeof (double));+ for (j = 0; j < 2; j++)+ {+ if (pfr < end_pfr && i < nfixedargs)+ {+ cval[j] = pfr->d;+ pfr++;+ }+ else+ cval[j] = *(double *) pst;+ pst++;+ }+ avalue[i] = cval;+ }+ else+ {+ /* Integer-typed _Complex: each half lives in its own GPR+ slot, right-justified on BE, low-address on LE. */+ size_t hsize = arg_types[i]->elements[0]->size;+ char *cval = alloca (2 * hsize);+ for (j = 0; j < 2; j++)+ {+ char *src;+#ifndef __LITTLE_ENDIAN__+ src = (char *) pst + (8 - hsize);+#else+ src = (char *) pst;+#endif+ memcpy (cval + j * hsize, src, hsize);+ pst++;+ }+ avalue[i] = cval;+ }+ }+ break;+#endif+ default: FFI_ASSERT (0); }@@ -1142,19 +1410,141 @@ (*fun) (cif, rvalue, avalue, user_data); /* Tell ffi_closure_LINUX64 how to perform return type promotions. */- if ((cif->flags & FLAG_RETURNS_SMST) != 0)+ switch (cif->rtype->type) {- if ((cif->flags & (FLAG_RETURNS_FP | FLAG_RETURNS_VEC)) == 0)- return FFI_V2_TYPE_SMALL_STRUCT + cif->rtype->size - 1;- else if ((cif->flags & FLAG_RETURNS_VEC) != 0)- return FFI_V2_TYPE_VECTOR_HOMOG;- else if ((cif->flags & FLAG_RETURNS_64BITS) != 0)- return FFI_V2_TYPE_DOUBLE_HOMOG;- else- return FFI_V2_TYPE_FLOAT_HOMOG;+ case FFI_TYPE_VOID:+ return PPC_LD_NONE;+ case FFI_TYPE_FLOAT:+ return PPC_LD_F32;+ case FFI_TYPE_DOUBLE:+ return PPC_LD_F64;+#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE+ case FFI_TYPE_LONGDOUBLE:+ if ((cif->flags & FLAG_RETURNS_VEC) != 0)+ return PPC64_LD_VECTOR;+ return PPC_LD_F128;+#endif+ case FFI_TYPE_UINT8:+ return PPC_LD_U8;+ case FFI_TYPE_SINT8:+ return PPC_LD_S8;+ case FFI_TYPE_UINT16:+ return PPC_LD_U16;+ case FFI_TYPE_SINT16:+ return PPC_LD_S16;+ case FFI_TYPE_UINT32:+ return PPC_LD_U32;+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT32:+ return PPC_LD_S32;+ case FFI_TYPE_POINTER:+ return PPC_LD_PTR;+ case FFI_TYPE_UINT64:+ case FFI_TYPE_SINT64:+ return PPC_LD_I64;+#ifdef FFI_TARGET_HAS_COMPLEX_TYPE+ case FFI_TYPE_COMPLEX:+ {+ int inner = cif->rtype->elements[0]->type;+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ if (inner == FFI_TYPE_LONGDOUBLE)+ inner = FFI_TYPE_DOUBLE;+#endif+ if (inner == FFI_TYPE_FLOAT)+ return PPC64_LD_FLOAT_HOMOG;+ if (inner == FFI_TYPE_DOUBLE)+ return PPC64_LD_DOUBLE_HOMOG;+ /* Integer-typed _Complex: the user wrote the natural packed+ complex layout into rvalue (real@0, imag@hsize). Repack into+ two sign-/zero-extended doublewords so the closure assembly+ can do `ld r3, 0(rvalue); ld r4, 8(rvalue)` and the GCC caller+ recovers real in r3 and imag in r4. The RETVAL stack area is+ large enough (64 or 128 bytes) to hold the 16-byte repack. */+ {+ char *rv = rvalue;+ unsigned long re, im;+ switch (inner)+ {+ case FFI_TYPE_UINT8:+ re = ((unsigned char *) rv)[0];+ im = ((unsigned char *) rv)[1];+ break;+ case FFI_TYPE_SINT8:+ re = (unsigned long) (long) ((signed char *) rv)[0];+ im = (unsigned long) (long) ((signed char *) rv)[1];+ break;+ case FFI_TYPE_UINT16:+ re = ((unsigned short *) rv)[0];+ im = ((unsigned short *) rv)[1];+ break;+ case FFI_TYPE_SINT16:+ re = (unsigned long) (long) ((signed short *) rv)[0];+ im = (unsigned long) (long) ((signed short *) rv)[1];+ break;+ case FFI_TYPE_UINT32:+ re = ((unsigned int *) rv)[0];+ im = ((unsigned int *) rv)[1];+ break;+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT32:+ re = (unsigned long) (long) ((signed int *) rv)[0];+ im = (unsigned long) (long) ((signed int *) rv)[1];+ break;+ case FFI_TYPE_SINT64:+ case FFI_TYPE_UINT64:+ case FFI_TYPE_POINTER:+ default:+ re = ((unsigned long *) rv)[0];+ im = ((unsigned long *) rv)[1];+ break;+ }+ ((unsigned long *) rv)[0] = re;+ ((unsigned long *) rv)[1] = im;+ return PPC_LD_R3R4;+ }+ }+#endif+ case FFI_TYPE_STRUCT:+ if ((cif->flags & FLAG_RETURNS_SMST) != 0)+ {+ if ((cif->flags & (FLAG_RETURNS_FP | FLAG_RETURNS_VEC)) == 0)+ {+ /* A struct smaller than a dword is returned in the low bits+ of r3 right justified. Larger structs are passed left+ justified in r3 and r4. The return value area on the+ stack will have the structs as they are usually stored+ in memory. */+ switch (cif->rtype->size)+ {+ case 0:+ return PPC_LD_NONE;+ case 1:+ return PPC_LD_U8;+ case 2:+ return PPC_LD_U16;+ case 3:+ return PPC64_LD_STRUCT_3;+ case 4:+ return PPC_LD_U32;+ case 5:+ return PPC64_LD_STRUCT_5;+ case 6:+ return PPC64_LD_STRUCT_6;+ case 7:+ return PPC64_LD_STRUCT_7;+ case 8 ... 16:+ return PPC_LD_R3R4;+ }+ break;+ }+ if ((cif->flags & FLAG_RETURNS_VEC) != 0)+ return PPC64_LD_VECTOR_HOMOG;+ if ((cif->flags & FLAG_RETURNS_64BITS) != 0)+ return PPC64_LD_DOUBLE_HOMOG;+ return PPC64_LD_FLOAT_HOMOG;+ }+ return PPC_LD_NONE; }- if ((cif->flags & FLAG_RETURNS_VEC) != 0)- return FFI_V2_TYPE_VECTOR;- return cif->rtype->type;+ abort(); } #endif
src/powerpc/ffi_powerpc.h view
@@ -28,6 +28,73 @@ OTHER DEALINGS IN THE SOFTWARE. ----------------------------------------------------------------------- */ +/*+ * Closure jump table indexes+ */++/* Common to ppc32 and ppc64 */+#define PPC_LD_NONE 0+#define PPC_LD_R3 1+#define PPC_LD_R3R4 2+#define PPC_LD_F32 3+#define PPC_LD_F64 4+#define PPC_LD_F128 5+#define PPC_LD_U8 6+#define PPC_LD_S8 7+#define PPC_LD_U16 8+#define PPC_LD_S16 9++#ifndef POWERPC64++#define PPC_LD_U32 PPC_LD_R3+#define PPC_LD_S32 PPC_LD_R3+#define PPC_LD_PTR PPC_LD_R3+#define PPC_LD_I64 PPC_LD_R3R4++/* Needed for soft-float long-double. */+#define PPC32_LD_R3R6 10++/* Needed for FFI_SYSV small structure returns. */+#ifdef __LITTLE_ENDIAN__+#define PPC32_SYSV_LD_STRUCT_3 PPC32_LD_R3+#define PPC32_SYSV_LD_STRUCT_5 PPC32_LD_R3R4+#define PPC32_SYSV_LD_STRUCT_6 PPC32_LD_R3R4+#define PPC32_SYSV_LD_STRUCT_7 PPC32_LD_R3R4+#else+#define PPC32_SYSV_LD_STRUCT_3 11+#define PPC32_SYSV_LD_STRUCT_5 12+#define PPC32_SYSV_LD_STRUCT_6 13+#define PPC32_SYSV_LD_STRUCT_7 14+#endif++#else /* POWERPC64 */++#define PPC_LD_U32 10+#define PPC_LD_S32 11+#define PPC_LD_PTR PPC_LD_R3+#define PPC_LD_I64 PPC_LD_R3++/* Used by ELFv2 for homogenous structure returns. */+#define PPC64_LD_VECTOR 12+#define PPC64_LD_VECTOR_HOMOG 13+#define PPC64_LD_FLOAT_HOMOG 14+#define PPC64_LD_DOUBLE_HOMOG 15+#ifdef __LITTLE_ENDIAN__+#define PPC64_LD_STRUCT_3 PPC_LD_U32+#define PPC64_LD_STRUCT_5 PPC_LD_I64+#define PPC64_LD_STRUCT_6 PPC_LD_I64+#define PPC64_LD_STRUCT_7 PPC_LD_I64+#else+#define PPC64_LD_STRUCT_3 16+#define PPC64_LD_STRUCT_5 17+#define PPC64_LD_STRUCT_6 18+#define PPC64_LD_STRUCT_7 19+#endif++#endif /* POWERPC64 */++#ifndef LIBFFI_ASM+ enum { /* The assembly depends on these exact flags. */ /* These go in cr7 */@@ -103,3 +170,5 @@ void *, void *, unsigned long *, ffi_dblfl *, float128 *);++#endif /* !LIBFFI_ASM */
src/powerpc/ffi_sysv.c view
@@ -30,6 +30,7 @@ #include "ffi.h" #include <tramp.h>+#include <stdlib.h> #ifndef POWERPC64 #include "ffi_common.h"@@ -921,13 +922,63 @@ /* Tell ffi_closure_SYSV how to perform return type promotions. Because the FFI_SYSV ABI returns the structures <= 8 bytes in- r3/r4 we have to tell ffi_closure_SYSV how to treat them. We- combine the base type FFI_SYSV_TYPE_SMALL_STRUCT with the size of- the struct less one. We never have a struct with size zero.- See the comment in ffitarget.h about ordering. */- if (rtypenum == FFI_TYPE_STRUCT- && (cif->abi & FFI_SYSV_STRUCT_RET) != 0 && size <= 8)- return FFI_SYSV_TYPE_SMALL_STRUCT - 1 + size;- return rtypenum;+ r3/r4 we have to tell ffi_closure_SYSV how to treat them. */+ switch (rtypenum)+ {+ case FFI_TYPE_VOID:+ return PPC_LD_NONE;+ case FFI_TYPE_FLOAT:+ return PPC_LD_F32;+ case FFI_TYPE_DOUBLE:+ return PPC_LD_F64;+#if FFI_TYPE_DOUBLE != FFI_TYPE_LONGDOUBLE+ case FFI_TYPE_LONGDOUBLE:+ return PPC_LD_F128;+#endif+ case FFI_TYPE_UINT8:+ return PPC_LD_U8;+ case FFI_TYPE_SINT8:+ return PPC_LD_S8;+ case FFI_TYPE_UINT16:+ return PPC_LD_U16;+ case FFI_TYPE_SINT16:+ return PPC_LD_S16;+ case FFI_TYPE_UINT32:+ return PPC_LD_U32;+ case FFI_TYPE_INT:+ case FFI_TYPE_SINT32:+ return PPC_LD_S32;+ case FFI_TYPE_POINTER:+ return PPC_LD_PTR;+ case FFI_TYPE_UINT64:+ case FFI_TYPE_SINT64:+ return PPC_LD_I64;+ case FFI_TYPE_UINT128:+ return PPC32_LD_R3R6;+ case FFI_TYPE_STRUCT:+ if (cif->abi & FFI_SYSV_STRUCT_RET)+ switch (size)+ {+ case 1:+ return PPC_LD_U8;+ case 2:+ return PPC_LD_U16;+ case 3:+ return PPC32_SYSV_LD_STRUCT_3;+ case 4:+ return PPC_LD_U32;+ case 5:+ return PPC32_SYSV_LD_STRUCT_5;+ case 6:+ return PPC32_SYSV_LD_STRUCT_6;+ case 7:+ return PPC32_SYSV_LD_STRUCT_7;+ case 8:+ return PPC_LD_I64;+ }+ return PPC_LD_NONE;+ default:+ abort();+ } } #endif
src/powerpc/ffitarget.h view
@@ -150,33 +150,16 @@ # define FFI_GO_CLOSURES 1 #endif -/* ppc_closure.S and linux64_closure.S expect this. */-#define FFI_PPC_TYPE_LAST FFI_TYPE_POINTER--/* We define additional types below. If generic types are added that- must be supported by powerpc libffi then it is likely that- FFI_PPC_TYPE_LAST needs increasing *and* the jump tables in- ppc_closure.S and linux64_closure.S be extended. */--#if !(FFI_TYPE_LAST == FFI_PPC_TYPE_LAST \- || (FFI_TYPE_LAST == FFI_TYPE_COMPLEX \- && !defined FFI_TARGET_HAS_COMPLEX_TYPE))-# error "You likely have a broken powerpc libffi"+/* Complex types are supported on ELFv2 (the only PowerPC64 variant where+ the assembly and C-side passing/return logic has been wired up). Under+ ELFv2, float/double _Complex are passed and returned as a 2-element+ homogeneous floating-point aggregate, but each scalar half consumes a+ GPR shadow slot of its own — i.e. the same way the underlying C ABI+ handles them, which is what GCC's split_complex_arg emits. */+#if defined(POWERPC64) && _CALL_ELF == 2+# define FFI_TARGET_HAS_COMPLEX_TYPE #endif -/* Needed for soft-float long-double-128 support. */-#define FFI_TYPE_UINT128 (FFI_PPC_TYPE_LAST + 1)--/* Needed for FFI_SYSV small structure returns. */-#define FFI_SYSV_TYPE_SMALL_STRUCT (FFI_PPC_TYPE_LAST + 2)--/* Used by ELFv2 for homogenous structure returns. */-#define FFI_V2_TYPE_VECTOR (FFI_PPC_TYPE_LAST + 1)-#define FFI_V2_TYPE_VECTOR_HOMOG (FFI_PPC_TYPE_LAST + 2)-#define FFI_V2_TYPE_FLOAT_HOMOG (FFI_PPC_TYPE_LAST + 3)-#define FFI_V2_TYPE_DOUBLE_HOMOG (FFI_PPC_TYPE_LAST + 4)-#define FFI_V2_TYPE_SMALL_STRUCT (FFI_PPC_TYPE_LAST + 5)- #if _CALL_ELF == 2 # define FFI_TRAMPOLINE_SIZE 32 #else@@ -189,16 +172,6 @@ # else /* POWERPC || POWERPC_AIX */ # define FFI_TRAMPOLINE_SIZE 40 # endif-#endif--#ifndef LIBFFI_ASM-#if defined(POWERPC_DARWIN) || defined(POWERPC_AIX)-struct ffi_aix_trampoline_struct {- void * code_pointer; /* Pointer to ffi_closure_ASM */- void * toc; /* TOC */- void * static_chain; /* Pointer to closure */-};-#endif #endif #endif
src/powerpc/linux64_closure.S view
@@ -216,187 +216,151 @@ # look up the proper starting point in table # by using return type as offset ld %r0, STACKFRAME+16(%r1)- cmpldi %r3, FFI_V2_TYPE_SMALL_STRUCT- bge .Lsmall mflr %r4 # move address of .Lret to r4 sldi %r3, %r3, 4 # now multiply return type by 16 addi %r4, %r4, .Lret_type0 - .Lret add %r3, %r3, %r4 # add contents of table to table address mtctr %r3+ mtlr %r0 # restore function return address+ .cfi_restore 65 bctr # jump to it # Each of the ret_typeX code fragments has to be exactly 16 bytes long # (4 instructions). For cache effectiveness we align to a 16 byte boundary-# first.- .align 4+# first. Ensure correct spacing and alignment with .org. + .align 4 .Lret_type0:-# case FFI_TYPE_VOID- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME- nop-# case FFI_TYPE_INT-# ifdef __LITTLE_ENDIAN__- lwa %r3, RETVAL+0(%r1)-# else- lwa %r3, RETVAL+4(%r1)-# endif- mtlr %r0++.macro E index+ .align 4+.endm++.macro epilogue addi %r1, %r1, STACKFRAME .cfi_def_cfa_offset 0 blr .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_FLOAT+.endm++E PPC_LD_NONE+ epilogue++E PPC_LD_R3+ ld %r3, RETVAL+0(%r1)+ epilogue++E PPC_LD_R3R4+ ld %r3, RETVAL+0(%r1)+ ld %r4, RETVAL+8(%r1)+ epilogue++E PPC_LD_F32 lfs %f1, RETVAL+0(%r1)- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_DOUBLE+ epilogue++E PPC_LD_F64 lfd %f1, RETVAL+0(%r1)- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_LONGDOUBLE+ epilogue++E PPC_LD_F128 lfd %f1, RETVAL+0(%r1)- mtlr %r0 lfd %f2, RETVAL+8(%r1)- b .Lfinish-# case FFI_TYPE_UINT8+ epilogue++E PPC_LD_U8 # ifdef __LITTLE_ENDIAN__ lbz %r3, RETVAL+0(%r1) # else lbz %r3, RETVAL+7(%r1) # endif- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_SINT8+ epilogue++E PPC_LD_S8 # ifdef __LITTLE_ENDIAN__ lbz %r3, RETVAL+0(%r1) # else lbz %r3, RETVAL+7(%r1) # endif extsb %r3,%r3- mtlr %r0- b .Lfinish-# case FFI_TYPE_UINT16+ epilogue++E PPC_LD_U16 # ifdef __LITTLE_ENDIAN__ lhz %r3, RETVAL+0(%r1) # else lhz %r3, RETVAL+6(%r1) # endif- mtlr %r0-.Lfinish:- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_SINT16+ epilogue++E PPC_LD_S16 # ifdef __LITTLE_ENDIAN__ lha %r3, RETVAL+0(%r1) # else lha %r3, RETVAL+6(%r1) # endif- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_UINT32+ epilogue++E PPC_LD_U32 # ifdef __LITTLE_ENDIAN__ lwz %r3, RETVAL+0(%r1) # else lwz %r3, RETVAL+4(%r1) # endif- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_SINT32+ epilogue++E PPC_LD_S32 # ifdef __LITTLE_ENDIAN__ lwa %r3, RETVAL+0(%r1) # else lwa %r3, RETVAL+4(%r1) # endif- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_UINT64- ld %r3, RETVAL+0(%r1)- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_SINT64- ld %r3, RETVAL+0(%r1)- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_TYPE_STRUCT- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME- nop-# case FFI_TYPE_POINTER- ld %r3, RETVAL+0(%r1)- mtlr %r0- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-# case FFI_V2_TYPE_VECTOR+ epilogue++E PPC64_LD_VECTOR addi %r3, %r1, RETVAL lvx %v2, 0, %r3- mtlr %r0- b .Lfinish-# case FFI_V2_TYPE_VECTOR_HOMOG+ epilogue++E PPC64_LD_VECTOR_HOMOG addi %r3, %r1, RETVAL lvx %v2, 0, %r3 addi %r3, %r3, 16 b .Lmorevector-# case FFI_V2_TYPE_FLOAT_HOMOG++E PPC64_LD_FLOAT_HOMOG lfs %f1, RETVAL+0(%r1) lfs %f2, RETVAL+4(%r1) lfs %f3, RETVAL+8(%r1) b .Lmorefloat-# case FFI_V2_TYPE_DOUBLE_HOMOG++E PPC64_LD_DOUBLE_HOMOG lfd %f1, RETVAL+0(%r1) lfd %f2, RETVAL+8(%r1) lfd %f3, RETVAL+16(%r1)+ b .Lmoredouble++#ifndef __LITTLE_ENDIAN__+E PPC64_LD_STRUCT_3+ lwz %r3, RETVAL+4(%r1)+ srd %r3, %r3, 8+ epilogue+#endif++.Lmoredouble: lfd %f4, RETVAL+24(%r1)- mtlr %r0 lfd %f5, RETVAL+32(%r1) lfd %f6, RETVAL+40(%r1) lfd %f7, RETVAL+48(%r1) lfd %f8, RETVAL+56(%r1)- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME+ epilogue+ .Lmorevector: lvx %v3, 0, %r3 addi %r3, %r3, 16 lvx %v4, 0, %r3 addi %r3, %r3, 16 lvx %v5, 0, %r3- mtlr %r0 addi %r3, %r3, 16 lvx %v6, 0, %r3 addi %r3, %r3, 16@@ -405,53 +369,15 @@ lvx %v8, 0, %r3 addi %r3, %r3, 16 lvx %v9, 0, %r3- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME+ epilogue+ .Lmorefloat: lfs %f4, RETVAL+12(%r1)- mtlr %r0 lfs %f5, RETVAL+16(%r1) lfs %f6, RETVAL+20(%r1) lfs %f7, RETVAL+24(%r1) lfs %f8, RETVAL+28(%r1)- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-.Lsmall:-# ifdef __LITTLE_ENDIAN__- ld %r3,RETVAL+0(%r1)- mtlr %r0- ld %r4,RETVAL+8(%r1)- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr-# else- # A struct smaller than a dword is returned in the low bits of r3- # ie. right justified. Larger structs are passed left justified- # in r3 and r4. The return value area on the stack will have- # the structs as they are usually stored in memory.- cmpldi %r3, FFI_V2_TYPE_SMALL_STRUCT + 7 # size 8 bytes?- neg %r5, %r3- ld %r3,RETVAL+0(%r1)- blt .Lsmalldown- mtlr %r0- ld %r4,RETVAL+8(%r1)- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset STACKFRAME-.Lsmalldown:- addi %r5, %r5, FFI_V2_TYPE_SMALL_STRUCT + 7- mtlr %r0- sldi %r5, %r5, 3- addi %r1, %r1, STACKFRAME- .cfi_def_cfa_offset 0- srd %r3, %r3, %r5- blr-# endif+ epilogue .cfi_endproc # if _CALL_ELF == 2
src/powerpc/ppc_closure.S view
@@ -108,263 +108,137 @@ lwz %r0,148(%r1) add %r3,%r3,%r4 # add contents of table to table address mtctr %r3+ mtlr %r0+ .cfi_restore 65 bctr # jump to it # Each of the ret_typeX code fragments has to be exactly 16 bytes long # (4 instructions). For cache effectiveness we align to a 16 byte boundary # first.+ .align 4-# case FFI_TYPE_VOID .Lret_type0:- mtlr %r0- addi %r1,%r1,144++.macro E index+ .align 4+.endm++.macro epilogue+ addi %r1, %r1, 144 .cfi_def_cfa_offset 0 blr .cfi_def_cfa_offset 144- nop+.endm -# case FFI_TYPE_INT+E PPC_LD_NONE+ epilogue++E PPC_LD_R3 lwz %r3,112+0(%r1)- mtlr %r0-.Lfinish:- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ epilogue -# case FFI_TYPE_FLOAT-#ifndef __NO_FPRS__- lfs %f1,112+0(%r1)+E PPC_LD_R3R4+.Lr3r4:+ lwz %r3,112+0(%r1)+ lwz %r4,112+4(%r1)+ epilogue++E PPC_LD_F32+#ifdef __NO_FPRS__+ trap #else- nop+ lfs %f1,112+0(%r1)+ epilogue #endif- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144 -# case FFI_TYPE_DOUBLE-#ifndef __NO_FPRS__- lfd %f1,112+0(%r1)+E PPC_LD_F64+#ifdef __NO_FPRS__+ trap #else- nop+ lfd %f1,112+0(%r1)+ epilogue #endif- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144 -# case FFI_TYPE_LONGDOUBLE-#ifndef __NO_FPRS__+E PPC_LD_F128+#ifdef __NO_FPRS__+ trap+#else lfd %f1,112+0(%r1) lfd %f2,112+8(%r1)- mtlr %r0- b .Lfinish-#else- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144- nop+ epilogue #endif -# case FFI_TYPE_UINT8+E PPC_LD_U8 #ifdef __LITTLE_ENDIAN__ lbz %r3,112+0(%r1) #else lbz %r3,112+3(%r1) #endif- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ epilogue -# case FFI_TYPE_SINT8+E PPC_LD_S8 #ifdef __LITTLE_ENDIAN__ lbz %r3,112+0(%r1) #else lbz %r3,112+3(%r1) #endif extsb %r3,%r3- mtlr %r0- b .Lfinish+ epilogue -# case FFI_TYPE_UINT16+E PPC_LD_U16 #ifdef __LITTLE_ENDIAN__ lhz %r3,112+0(%r1) #else lhz %r3,112+2(%r1) #endif- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ epilogue -# case FFI_TYPE_SINT16+E PPC_LD_S16 #ifdef __LITTLE_ENDIAN__ lha %r3,112+0(%r1) #else lha %r3,112+2(%r1) #endif- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144--# case FFI_TYPE_UINT32- lwz %r3,112+0(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144--# case FFI_TYPE_SINT32- lwz %r3,112+0(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144--# case FFI_TYPE_UINT64- lwz %r3,112+0(%r1)- lwz %r4,112+4(%r1)- mtlr %r0- b .Lfinish--# case FFI_TYPE_SINT64- lwz %r3,112+0(%r1)- lwz %r4,112+4(%r1)- mtlr %r0- b .Lfinish--# case FFI_TYPE_STRUCT- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144- nop--# case FFI_TYPE_POINTER- lwz %r3,112+0(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ epilogue -# case FFI_TYPE_UINT128- lwz %r3,112+0(%r1)- lwz %r4,112+4(%r1)+E PPC32_LD_R3R6 lwz %r5,112+8(%r1)- b .Luint128--# The return types below are only used when the ABI type is FFI_SYSV.-# case FFI_SYSV_TYPE_SMALL_STRUCT + 1. One byte struct.- lbz %r3,112+0(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144--# case FFI_SYSV_TYPE_SMALL_STRUCT + 2. Two byte struct.- lhz %r3,112+0(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ lwz %r6,112+12(%r1)+ b .Lr3r4 -# case FFI_SYSV_TYPE_SMALL_STRUCT + 3. Three byte struct.+#ifndef __LITTLE_ENDIAN__+E PPC32_SYSV_LD_STRUCT_3 lwz %r3,112+0(%r1)-#ifdef __LITTLE_ENDIAN__- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144-#else srwi %r3,%r3,8- mtlr %r0- b .Lfinish-#endif--# case FFI_SYSV_TYPE_SMALL_STRUCT + 4. Four byte struct.- lwz %r3,112+0(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ epilogue -# case FFI_SYSV_TYPE_SMALL_STRUCT + 5. Five byte struct.+E PPC32_SYSV_LD_STRUCT_5 lwz %r3,112+0(%r1) lwz %r4,112+4(%r1)-#ifdef __LITTLE_ENDIAN__- mtlr %r0- b .Lfinish-#else li %r5,24 b .Lstruct567-#endif -# case FFI_SYSV_TYPE_SMALL_STRUCT + 6. Six byte struct.+E PPC32_SYSV_LD_STRUCT_6 lwz %r3,112+0(%r1) lwz %r4,112+4(%r1)-#ifdef __LITTLE_ENDIAN__- mtlr %r0- b .Lfinish-#else li %r5,16 b .Lstruct567-#endif -# case FFI_SYSV_TYPE_SMALL_STRUCT + 7. Seven byte struct.+E PPC32_SYSV_LD_STRUCT_7 lwz %r3,112+0(%r1) lwz %r4,112+4(%r1)-#ifdef __LITTLE_ENDIAN__- mtlr %r0- b .Lfinish-#else li %r5,8- b .Lstruct567-#endif--# case FFI_SYSV_TYPE_SMALL_STRUCT + 8. Eight byte struct.- lwz %r3,112+0(%r1)- lwz %r4,112+4(%r1)- mtlr %r0- b .Lfinish+ nop -#ifndef __LITTLE_ENDIAN__ .Lstruct567: subfic %r6,%r5,32 srw %r4,%r4,%r5 slw %r6,%r3,%r6 srw %r3,%r3,%r5 or %r4,%r6,%r4- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr- .cfi_def_cfa_offset 144+ epilogue #endif -.Luint128:- lwz %r6,112+12(%r1)- mtlr %r0- addi %r1,%r1,144- .cfi_def_cfa_offset 0- blr .cfi_endproc END(ffi_closure_SYSV)
src/riscv/ffi.c view
@@ -29,16 +29,23 @@ #include <ffi.h> #include <ffi_common.h>+#include "internal.h"+#include <tramp.h> #include <stdlib.h> #include <stdint.h> #if __riscv_float_abi_double #define ABI_FLEN 64-#define ABI_FLOAT double+typedef union {+ uint64_t i;+ double d;+} float_reg; #elif __riscv_float_abi_single #define ABI_FLEN 32-#define ABI_FLOAT float+typedef union {+ float f;+} float_reg; #endif #define NARGREG 8@@ -48,7 +55,7 @@ typedef struct call_context { #if ABI_FLEN- ABI_FLOAT fa[8];+ float_reg fa[8]; #endif size_t a[8]; /* used by the assembly code to in-place construct its own stack frame */@@ -127,7 +134,31 @@ return ret; }++#if ABI_FLEN >= 64+/* Float values in wider RISC-V FP registers are NaN-boxed */+static void marshal_float(call_builder *cb, void *data) {+ union {+ uint32_t i;+ float f;+ } value;++ value.f = *(float *)data;+ cb->aregs->fa[cb->used_float++].i =+ UINT64_C(0xffffffff00000000) | value.i;+}++static void unmarshal_float(call_builder *cb, void *data) {+ union {+ uint32_t i;+ float f;+ } value;++ value.i = (uint32_t)cb->aregs->fa[cb->used_float++].i;+ *(float *)data = value.f;+} #endif+#endif /* allocates a single register, float register, or XLEN-sized stack slot to a datum */ static void marshal_atom(call_builder *cb, int type, void *data) {@@ -146,17 +177,18 @@ #endif case FFI_TYPE_POINTER: value = *(size_t *)data; break; - /* float values may be recoded in an implementation-defined way- by hardware conforming to 2.1 or earlier, so use asm to- reinterpret floats as doubles */-#if ABI_FLEN >= 32+#if ABI_FLEN >= 64 case FFI_TYPE_FLOAT:- asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(float *)data));+ marshal_float(cb, data); return;+#elif ABI_FLEN >= 32+ case FFI_TYPE_FLOAT:+ __asm__("" : "=f"(cb->aregs->fa[cb->used_float++].f) : "0"(*(float *)data));+ return; #endif #if ABI_FLEN >= 64 case FFI_TYPE_DOUBLE:- asm("" : "=f"(cb->aregs->fa[cb->used_float++]) : "0"(*(double *)data));+ __asm__("" : "=f"(cb->aregs->fa[cb->used_float++].d) : "0"(*(double *)data)); return; #endif default: FFI_ASSERT(0); break;@@ -172,14 +204,18 @@ static void unmarshal_atom(call_builder *cb, int type, void *data) { size_t value; switch (type) {-#if ABI_FLEN >= 32+#if ABI_FLEN >= 64 case FFI_TYPE_FLOAT:- asm("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++]));+ unmarshal_float(cb, data); return;+#elif ABI_FLEN >= 32+ case FFI_TYPE_FLOAT:+ __asm__("" : "=f"(*(float *)data) : "0"(cb->aregs->fa[cb->used_float++].f));+ return; #endif #if ABI_FLEN >= 64 case FFI_TYPE_DOUBLE:- asm("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++]));+ __asm__("" : "=f"(*(double *)data) : "0"(cb->aregs->fa[cb->used_float++].d)); return; #endif }@@ -424,34 +460,44 @@ ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void (*fun)(ffi_cif*,void*,void**,void*), void *user_data, void *codeloc) {- uint32_t *tramp = (uint32_t *) &closure->tramp[0];- uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm;- if (cif->abi <= FFI_FIRST_ABI || cif->abi >= FFI_LAST_ABI) return FFI_BAD_ABI; - /* we will call ffi_closure_inner with codeloc, not closure, but as long- as the memory is readable it should work */+#ifdef FFI_EXEC_STATIC_TRAMP+ if (ffi_tramp_is_present (closure))+ {+ /* Initialize the static trampoline's parameters. */+ void (*dest)(void) = ffi_closure_asm;+ ffi_tramp_set_parms (closure->ftramp, dest, closure);+ }+ else+#endif+ {+ uint32_t *tramp = (uint32_t *) &closure->tramp[0];+ uint64_t fn = (uint64_t) (uintptr_t) ffi_closure_asm; - tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */+ /* we will call ffi_closure_inner with codeloc, not closure, but as long+ as the memory is readable it should work */++ tramp[0] = 0x00000317; /* auipc t1, 0 (i.e. t0 <- codeloc) */ #if __SIZEOF_POINTER__ == 8- tramp[1] = 0x01033383; /* ld t2, 16(t1) */+ tramp[1] = 0x01033383; /* ld t2, 16(t1) */ #else- tramp[1] = 0x01032383; /* lw t2, 16(t1) */+ tramp[1] = 0x01032383; /* lw t2, 16(t1) */ #endif- tramp[2] = 0x00038067; /* jr t2 */- tramp[3] = 0x00000013; /* nop */- tramp[4] = fn;- tramp[5] = fn >> 32;+ tramp[2] = 0x00038067; /* jr t2 */+ tramp[3] = 0x00000013; /* nop */+ tramp[4] = fn;+ tramp[5] = fn >> 32;+#if !defined(__FreeBSD__)+ __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE);+#endif+ } closure->cif = cif; closure->fun = fun; closure->user_data = user_data; -#if !defined(__FreeBSD__)- __builtin___clear_cache(codeloc, codeloc + FFI_TRAMPOLINE_SIZE);-#endif- return FFI_OK; } @@ -512,3 +558,14 @@ marshal(&cb, cif->rtype, 0, rvalue); } }++#ifdef FFI_EXEC_STATIC_TRAMP+void *+ffi_tramp_arch (size_t *tramp_size, size_t *map_size)+{+ extern void *trampoline_code_table;+ *tramp_size = RISCV_TRAMP_SIZE;+ *map_size = RISCV_TRAMP_MAP_SIZE;+ return &trampoline_code_table;+}+#endif
src/riscv/ffitarget.h view
@@ -62,8 +62,9 @@ #define FFI_GO_CLOSURES 1 #define FFI_TRAMPOLINE_SIZE 24 #define FFI_NATIVE_RAW_API 0-#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused;+#define FFI_EXTRA_CIF_FIELDS unsigned riscv_nfixedargs; unsigned riscv_unused #define FFI_TARGET_SPECIFIC_VARIADIC+#define FFI_TARGET_HAS_INT128 #endif
+ src/riscv/internal.h view
@@ -0,0 +1,7 @@+#ifdef FFI_EXEC_STATIC_TRAMP+/* For the trampoline table mapping, a mapping size of 4K (base page size)+ is chosen. */+#define RISCV_TRAMP_MAP_SHIFT 12+#define RISCV_TRAMP_MAP_SIZE (1 << RISCV_TRAMP_MAP_SHIFT)+#define RISCV_TRAMP_SIZE 16+#endif /* FFI_EXEC_STATIC_TRAMP */
src/riscv/sysv.S view
@@ -29,6 +29,7 @@ #define LIBFFI_ASM #include <fficonfig.h> #include <ffi.h>+#include "internal.h" /* Define aliases so that we can handle all ABIs uniformly */ @@ -86,7 +87,7 @@ preserve the call_context so that it can be read back in the caller. */ - .cfi_def_cfa 11, FRAME_LEN # interim CFA based on a1+ .cfi_def_cfa 11, FRAME_LEN /* interim CFA based on a1 */ SARG fp, FRAME_LEN - 2*PTRS(a1) .cfi_offset 8, -2*PTRS SARG ra, FRAME_LEN - 1*PTRS(a1)@@ -94,9 +95,9 @@ addi fp, a1, FRAME_LEN mv sp, a0- .cfi_def_cfa 8, 0 # our frame is fully set up+ .cfi_def_cfa 8, 0 /* our frame is fully set up */ - # Load arguments+ /* Load arguments */ mv t1, a2 mv t2, a3 @@ -291,3 +292,26 @@ ret .cfi_endproc .size ffi_go_closure_asm, .-ffi_go_closure_asm++#ifdef FFI_EXEC_STATIC_TRAMP+/*+ trampoline_code_table.+*/+ .globl trampoline_code_table+ .hidden trampoline_code_table+ .type trampoline_code_table, @function+ .align RISCV_TRAMP_MAP_SHIFT+trampoline_code_table:+ .option push+ # Do not allow the jr insn to be encoded as c.jr for alignment purposes+ .option norvc+ .rept RISCV_TRAMP_MAP_SIZE / RISCV_TRAMP_SIZE+ auipc t2, RISCV_TRAMP_MAP_SIZE >> 12+ LARG t1, 0(t2)+ LARG t2, PTRS(t2)+ jr t2+ .endr+ .option pop+ .size trampoline_code_table,.-trampoline_code_table+ .align RISCV_TRAMP_MAP_SHIFT+#endif /* FFI_EXEC_STATIC_TRAMP */
src/s390/ffi.c view
@@ -158,9 +158,15 @@ cif->flags = FFI390_RET_VOID; break; - /* Structures and complex are returned via a hidden pointer. */+ /* Structures, complex, int128, and long double are+ returned via a hidden pointer. */ case FFI_TYPE_STRUCT: case FFI_TYPE_COMPLEX:+ case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128:+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ case FFI_TYPE_LONGDOUBLE:+#endif cif->flags = FFI390_RET_STRUCT; n_gpr++; /* We need one GPR to pass the pointer. */ break;@@ -174,12 +180,6 @@ cif->flags = FFI390_RET_DOUBLE; break; -#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE- case FFI_TYPE_LONGDOUBLE:- cif->flags = FFI390_RET_STRUCT;- n_gpr++;- break;-#endif /* Integer values are returned in gpr 2 (and gpr 3 for 64-bit values on 31-bit machines). */ case FFI_TYPE_UINT64:@@ -216,24 +216,25 @@ { int type = (*ptr)->type; -#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE- /* 16-byte long double is passed like a struct. */- if (type == FFI_TYPE_LONGDOUBLE)- type = FFI_TYPE_STRUCT;-#endif-- /* Check how a structure type is passed. */- if (type == FFI_TYPE_STRUCT || type == FFI_TYPE_COMPLEX)+ switch (type) {- if (type == FFI_TYPE_COMPLEX)- type = FFI_TYPE_POINTER;- else- type = ffi_check_struct_type (*ptr);+ case FFI_TYPE_STRUCT:+ type = ffi_check_struct_type (*ptr);+ if (type != FFI_TYPE_POINTER)+ break;+ /* fall through */ - /* If we pass the struct via pointer, we must reserve space- to copy its data for proper call-by-value semantics. */- if (type == FFI_TYPE_POINTER)- struct_size += ROUND_SIZE ((*ptr)->size);+ case FFI_TYPE_COMPLEX:+ case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128:+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE+ case FFI_TYPE_LONGDOUBLE:+#endif+ type = FFI_TYPE_POINTER;+ /* If we pass via pointer, we must reserve space to copy+ its data for proper call-by-value semantics. */+ struct_size += ROUND_SIZE ((*ptr)->size);+ break; } /* Now handle all primitive int/float data types. */@@ -460,10 +461,11 @@ #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE:- /* 16-byte long double is passed via reference. */ #endif case FFI_TYPE_COMPLEX:- /* Complex types are passed via reference. */+ case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128:+ /* Complex, int128 and long double types are passed via reference. */ p_struct -= ROUND_SIZE (ty->size); memcpy (p_struct, arg, ty->size); val = (uintptr_t)p_struct;
src/s390/ffitarget.h view
@@ -54,6 +54,7 @@ #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION #define FFI_TARGET_HAS_COMPLEX_TYPE+#define FFI_TARGET_HAS_INT128 /* ---- Definitions for closures ----------------------------------------- */
src/sh/sysv.S view
@@ -31,7 +31,9 @@ #include <machine/asm.h> #else /* XXX these lose for some platforms, I'm sure. */-#define CNAME(x) x+#define C2(X, Y) X ## Y+#define C1(X, Y) C2(X, Y)+#define CNAME(x) C1(__USER_LABEL_PREFIX__, x) #define ENTRY(x) .globl CNAME(x); .type CNAME(x),%function; CNAME(x): #endif
src/sh64/ffi.c view
@@ -332,7 +332,7 @@ closure->user_data = user_data; /* Flush the icache. */- asm volatile ("ocbwb %0,0; synco; icbi %1,0; synci" : : "r" (tramp),+ __asm__ volatile ("ocbwb %0,0; synco; icbi %1,0; synci" : : "r" (tramp), "r"(codeloc)); return FFI_OK;
src/sparc/ffi.c view
@@ -332,7 +332,7 @@ ffi_flush_icache (void *p) { /* SPARC v8 requires 5 instructions for flush to be visible */- asm volatile ("iflush %0; iflush %0+8; nop; nop; nop; nop; nop"+ __asm__ volatile ("iflush %0; iflush %0+8; nop; nop; nop; nop; nop" : : "r" (p) : "memory"); } #else
src/sparc/ffi64.c view
@@ -469,7 +469,7 @@ static inline void ffi_flush_icache (void *p) {- asm volatile ("flush %0; flush %0+8" : : "r" (p) : "memory");+ __asm__ volatile ("flush %0; flush %0+8" : : "r" (p) : "memory"); } #else extern void ffi_flush_icache (void *) FFI_HIDDEN;
src/types.c view
@@ -126,3 +126,16 @@ FFI_COMPLEX_TYPEDEF(double, double, const); FFI_COMPLEX_TYPEDEF(longdouble, long double, FFI_LDBL_CONST); #endif++#ifdef FFI_TARGET_HAS_INT128+# ifdef HAVE_INT128+FFI_TYPEDEF(uint128, __uint128_t, FFI_TYPE_UINT128, const);+FFI_TYPEDEF(sint128, __int128_t, FFI_TYPE_SINT128, const);+# else+/* We don't actually need compiler support for __int128_t, as we don't+ use the type itself within libffi. Obviously the size is 16; make+ the conservative assumption that the alignment must also be 16. */+const ffi_type ffi_type_uint128 = { 16, 16, FFI_TYPE_UINT128, NULL };+const ffi_type ffi_type_sint128 = { 16, 16, FFI_TYPE_SINT128, NULL };+# endif+#endif /* FFI_TARGET_HAS_INT128 */
src/x86/ffi.c view
@@ -370,7 +370,7 @@ size_t za = FFI_ALIGN (z, FFI_SIZEOF_ARG); size_t align = FFI_SIZEOF_ARG; - /* Issue 434: For thiscall and fastcall, if the paramter passed+ /* Issue 434: For thiscall and fastcall, if the parameter passed as 64-bit integer or struct, all following integer parameters will be passed on stack. */ if ((cabi == FFI_THISCALL || cabi == FFI_FASTCALL)@@ -519,7 +519,7 @@ if (t == FFI_TYPE_STRUCT && ty->alignment >= 16) align = 16; - /* Issue 434: For thiscall and fastcall, if the paramter passed+ /* Issue 434: For thiscall and fastcall, if the parameter passed as 64-bit integer or struct, all following integer parameters will be passed on stack. */ if ((cabi == FFI_THISCALL || cabi == FFI_FASTCALL)
src/x86/ffi64.c view
@@ -102,6 +102,20 @@ #define SSE_CLASS_P(X) ((X) >= X86_64_SSE_CLASS && X <= X86_64_SSEUP_CLASS) +/* On most x86-64 targets `long double` is the 80-bit x87 type: classified+ X87/X87UP, passed in memory, returned in st(0). But some targets (notably+ x86_64 Android, and anything built with -mlong-double-128) make `long double`+ the IEEE binary128 quad type, which the psABI passes and returns in SSE+ registers exactly like __float128 (class SSE/SSEUP -> one %xmm register).+ Detect that at compile time and classify long double accordingly. A mantissa+ of 113 bits uniquely identifies binary128 (x87 extended is 64). */+#if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE \+ && defined(__LDBL_MANT_DIG__) && __LDBL_MANT_DIG__ == 113+# define FFI_LONGDOUBLE_BINARY128 1+#else+# define FFI_LONGDOUBLE_BINARY128 0+#endif+ /* x86-64 register passing implementation. See x86-64 ABI for details. Goal of this code is to classify each 8bytes of incoming argument by the register class and assign registers accordingly. */@@ -171,6 +185,8 @@ case FFI_TYPE_SINT32: case FFI_TYPE_UINT64: case FFI_TYPE_SINT64:+ case FFI_TYPE_UINT128:+ case FFI_TYPE_SINT128: case FFI_TYPE_POINTER: do_integer: {@@ -211,8 +227,14 @@ return 1; #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE:+#if FFI_LONGDOUBLE_BINARY128+ /* IEEE binary128: one %xmm register, like __float128. */+ classes[0] = X86_64_SSE_CLASS;+ classes[1] = X86_64_SSEUP_CLASS;+#else classes[0] = X86_64_X87_CLASS; classes[1] = X86_64_X87UP_CLASS;+#endif return 2; #endif case FFI_TYPE_STRUCT:@@ -322,6 +344,10 @@ case FFI_TYPE_SINT64: goto do_integer; + case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128:+ return 0;+ case FFI_TYPE_FLOAT: classes[0] = X86_64_SSE_CLASS; if (byte_offset % 8)@@ -335,9 +361,14 @@ return 2; #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE:+#if FFI_LONGDOUBLE_BINARY128+ /* _Complex binary128 is 32 bytes -> passed/returned in memory. */+ return 0;+#else classes[0] = X86_64_COMPLEX_X87_CLASS; return 1; #endif+#endif } } }@@ -445,6 +476,10 @@ case FFI_TYPE_SINT64: flags = UNIX64_RET_INT64; break;+ case FFI_TYPE_UINT128:+ case FFI_TYPE_SINT128:+ flags = UNIX64_RET_ST_RAX_RDX | (16 << UNIX64_SIZE_SHIFT);+ break; case FFI_TYPE_POINTER: flags = (sizeof(void *) == 4 ? UNIX64_RET_UINT32 : UNIX64_RET_INT64); break;@@ -456,7 +491,11 @@ break; #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE:+#if FFI_LONGDOUBLE_BINARY128+ flags = UNIX64_RET_XMM128; /* returned in %xmm0 (16 bytes) */+#else flags = UNIX64_RET_X87;+#endif break; #endif case FFI_TYPE_STRUCT:@@ -514,9 +553,20 @@ break; #if FFI_TYPE_LONGDOUBLE != FFI_TYPE_DOUBLE case FFI_TYPE_LONGDOUBLE:+#if FFI_LONGDOUBLE_BINARY128+ /* _Complex binary128 (32 bytes) is returned in memory. */+ gprcount++;+ flags = UNIX64_RET_VOID | UNIX64_FLAG_RET_IN_MEM;+#else flags = UNIX64_RET_X87_2;+#endif break; #endif+ case FFI_TYPE_SINT128:+ case FFI_TYPE_UINT128:+ gprcount++;+ flags = UNIX64_RET_VOID | UNIX64_FLAG_RET_IN_MEM;+ break; default: return FFI_BAD_TYPEDEF; }@@ -633,7 +683,13 @@ switch (classes[j]) { case X86_64_NO_CLASS:+ break; case X86_64_SSEUP_CLASS:+ /* The upper 8 bytes of the same %xmm register written by+ the preceding SSE class (e.g. the high half of a+ binary128 long double). */+ memcpy ((char *) ®_args->sse[ssecount - 1] + 8, a,+ size < 8 ? size : 8); break; case X86_64_INTEGER_CLASS: case X86_64_INTEGERSI_CLASS:@@ -890,7 +946,12 @@ avalue[i] = a; for (j = 0; j < n; j++, a += 8) {- if (SSE_CLASS_P (classes[j]))+ if (classes[j] == X86_64_SSEUP_CLASS)+ /* The high half of the same %xmm register as the preceding+ SSE class (e.g. the upper bits of a binary128 long double);+ it does not consume another register. */+ memcpy (a, (char *) ®_args->sse[ssecount - 1] + 8, 8);+ else if (SSE_CLASS_P (classes[j])) memcpy (a, ®_args->sse[ssecount++], 8); else memcpy (a, ®_args->gpr[gprcount++], 8);
src/x86/ffitarget.h view
@@ -41,9 +41,6 @@ #if defined (X86_64) && defined (__i386__) #undef X86_64-#warning ******************************************************-#warning ********** X86 IS DEFINED ****************************-#warning ****************************************************** #define X86 #endif @@ -55,6 +52,10 @@ #define FFI_TARGET_SPECIFIC_STACK_SPACE_ALLOCATION #ifndef _MSC_VER #define FFI_TARGET_HAS_COMPLEX_TYPE+#endif++#ifdef X86_64+#define FFI_TARGET_HAS_INT128 #endif /* ---- Generic type definitions ----------------------------------------- */
src/x86/ffiw64.c view
@@ -30,6 +30,7 @@ #include <ffi_common.h> #include <stdlib.h> #include <stdint.h>+#include <stdbool.h> #include <tramp.h> #ifdef X86_WIN64@@ -115,6 +116,7 @@ #if defined(_MSC_VER) #pragma runtime_checks("s", off) #endif+FFI_ASAN_NO_SANITIZE static void ffi_call_int (ffi_cif *cif, void (*fn)(void), void *rvalue, void **avalue, void *closure)@@ -128,13 +130,33 @@ FFI_ASSERT(cif->abi == FFI_GNUW64 || cif->abi == FFI_WIN64); - /* If we have any large structure arguments, make a copy so we are passing- by value. */+ /* If we have any int128 or irregularly sized structure arguments,+ make a copy so we are passing by value. */ for (i = 0; i < nargs; i++) { ffi_type *at = arg_types[i]; int size = at->size;- if (at->type == FFI_TYPE_STRUCT && size > 8)+ bool needcopy = false;++ switch (at->type)+ {+ case FFI_TYPE_UINT128:+ case FFI_TYPE_SINT128:+ needcopy = true;+ break;+ case FFI_TYPE_STRUCT:+ switch (size)+ {+ case 1:+ case 2:+ case 4:+ case 8:+ break;+ default:+ needcopy = true;+ }+ }+ if (needcopy) { char *argcopy = alloca (size); memcpy (argcopy, avalue[i], size);
src/x86/internal64.h view
@@ -14,8 +14,9 @@ #define UNIX64_RET_ST_RAX_XMM0 13 #define UNIX64_RET_ST_XMM0_XMM1 14 #define UNIX64_RET_ST_RAX_RDX 15+#define UNIX64_RET_XMM128 16 /* binary128 long double in %xmm0 */ -#define UNIX64_RET_LAST 15+#define UNIX64_RET_LAST 16 #define UNIX64_FLAG_RET_IN_MEM (1 << 10) #define UNIX64_FLAG_XMM_ARGS (1 << 11)
src/x86/sysv.S view
@@ -91,7 +91,7 @@ ffi_call_i386: L(UW0):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR #if !HAVE_FASTCALL movl 4(%esp), %ecx@@ -110,8 +110,8 @@ perspective of the unwind info, it hasn't moved. */ movl %ecx, %ebp L(UW1):- # cfi_def_cfa(%ebp, 8)- # cfi_rel_offset(%ebp, 0)+ /* cfi_def_cfa(%ebp, 8) */+ /* cfi_rel_offset(%ebp, 0) */ movl %edx, %esp /* set outgoing argument stack */ movl 20+R_EAX*4(%ebp), %eax /* set register arguments */@@ -123,7 +123,7 @@ movl 12(%ebp), %ecx /* load return type code */ movl %ebx, 8(%ebp) /* preserve %ebx */ L(UW2):- # cfi_rel_offset(%ebx, 8)+ /* cfi_rel_offset(%ebx, 8) */ andl $X86_RET_TYPE_MASK, %ecx #ifdef __PIC__@@ -175,13 +175,13 @@ movl %ebp, %esp popl %ebp L(UW3):- # cfi_remember_state- # cfi_def_cfa(%esp, 4)- # cfi_restore(%ebx)- # cfi_restore(%ebp)+ /* cfi_remember_state */+ /* cfi_def_cfa(%esp, 4) */+ /* cfi_restore(%ebx) */+ /* cfi_restore(%ebp) */ ret L(UW4):- # cfi_restore_state+ /* cfi_restore_state */ E(L(store_table), X86_RET_STRUCTPOP) jmp L(e1)@@ -201,7 +201,7 @@ ud2 L(UW5):- # cfi_endproc+ /* cfi_endproc */ ENDF(ffi_call_i386) /* The inner helper is declared as@@ -296,11 +296,11 @@ FFI_HIDDEN(C(ffi_go_closure_EAX)) C(ffi_go_closure_EAX): L(UW6):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR subl $closure_FS, %esp L(UW7):- # cfi_def_cfa_offset(closure_FS + 4)+ /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS movl 4(%eax), %edx /* copy cif */ movl 8(%eax), %ecx /* copy fun */@@ -309,7 +309,7 @@ movl %eax, closure_CF+36(%esp) /* closure is user_data */ jmp L(do_closure_i386) L(UW8):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_go_closure_EAX)) .balign 16@@ -317,11 +317,11 @@ FFI_HIDDEN(C(ffi_go_closure_ECX)) C(ffi_go_closure_ECX): L(UW9):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR subl $closure_FS, %esp L(UW10):- # cfi_def_cfa_offset(closure_FS + 4)+ /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS movl 4(%ecx), %edx /* copy cif */ movl 8(%ecx), %eax /* copy fun */@@ -330,7 +330,7 @@ movl %ecx, closure_CF+36(%esp) /* closure is user_data */ jmp L(do_closure_i386) L(UW11):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_go_closure_ECX)) /* The closure entry points are reached from the ffi_closure trampoline.@@ -342,11 +342,11 @@ C(ffi_closure_i386): L(UW12):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR subl $closure_FS, %esp L(UW13):- # cfi_def_cfa_offset(closure_FS + 4)+ /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS FFI_CLOSURE_COPY_TRAMP_DATA@@ -391,17 +391,17 @@ L(e2): addl $closure_FS, %esp L(UW16):- # cfi_adjust_cfa_offset(-closure_FS)+ /* cfi_adjust_cfa_offset(-closure_FS) */ ret L(UW17):- # cfi_adjust_cfa_offset(closure_FS)+ /* cfi_adjust_cfa_offset(closure_FS) */ E(L(load_table2), X86_RET_STRUCTPOP) addl $closure_FS, %esp L(UW18):- # cfi_adjust_cfa_offset(-closure_FS)+ /* cfi_adjust_cfa_offset(-closure_FS) */ ret $4 L(UW19):- # cfi_adjust_cfa_offset(closure_FS)+ /* cfi_adjust_cfa_offset(closure_FS) */ E(L(load_table2), X86_RET_STRUCTARG) jmp L(e2) E(L(load_table2), X86_RET_STRUCT_1B)@@ -418,7 +418,7 @@ ud2 L(UW20):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_closure_i386)) .balign 16@@ -426,11 +426,11 @@ FFI_HIDDEN(C(ffi_go_closure_STDCALL)) C(ffi_go_closure_STDCALL): L(UW21):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR subl $closure_FS, %esp L(UW22):- # cfi_def_cfa_offset(closure_FS + 4)+ /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS movl 4(%ecx), %edx /* copy cif */ movl 8(%ecx), %eax /* copy fun */@@ -439,7 +439,7 @@ movl %ecx, closure_CF+36(%esp) /* closure is user_data */ jmp L(do_closure_STDCALL) L(UW23):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_go_closure_STDCALL)) /* For REGISTER, we have no available parameter registers, and so we@@ -450,20 +450,18 @@ FFI_HIDDEN(C(ffi_closure_REGISTER)) C(ffi_closure_REGISTER): L(UW24):- # cfi_startproc- # cfi_def_cfa(%esp, 8)- # cfi_offset(%eip, -8)+ /* cfi_startproc */+ /* cfi_def_cfa(%esp, 8) */+ /* cfi_offset(%eip, -8) */ _CET_ENDBR subl $closure_FS-4, %esp L(UW25):- # cfi_def_cfa_offset(closure_FS + 4)+ /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS- movl closure_FS-4(%esp), %ecx /* load retaddr */- movl closure_FS(%esp), %eax /* load closure */- movl %ecx, closure_FS(%esp) /* move retaddr */+ movl closure_FS-4(%esp), %eax /* load closure */ jmp L(do_closure_REGISTER) L(UW26):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_closure_REGISTER)) /* For STDCALL (and others), we need to pop N bytes of arguments off@@ -475,11 +473,11 @@ FFI_HIDDEN(C(ffi_closure_STDCALL)) C(ffi_closure_STDCALL): L(UW27):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR subl $closure_FS, %esp L(UW28):- # cfi_def_cfa_offset(closure_FS + 4)+ /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS @@ -570,7 +568,7 @@ ud2 L(UW31):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_closure_STDCALL)) #if defined(FFI_EXEC_STATIC_TRAMP)@@ -670,14 +668,14 @@ FFI_HIDDEN(C(ffi_closure_raw_SYSV)) C(ffi_closure_raw_SYSV): L(UW32):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR subl $raw_closure_S_FS, %esp L(UW33):- # cfi_def_cfa_offset(raw_closure_S_FS + 4)+ /* cfi_def_cfa_offset(raw_closure_S_FS + 4) */ movl %ebx, raw_closure_S_FS-4(%esp) L(UW34):- # cfi_rel_offset(%ebx, raw_closure_S_FS-4)+ /* cfi_rel_offset(%ebx, raw_closure_S_FS-4) */ movl FFI_TRAMPOLINE_SIZE+8(%eax), %edx /* load cl->user_data */ movl %edx, 12(%esp)@@ -700,7 +698,7 @@ #endif movl raw_closure_S_FS-4(%esp), %ebx L(UW35):- # cfi_restore(%ebx)+ /* cfi_restore(%ebx) */ movl 16(%esp), %eax /* Optimistic load */ jmp *%ecx @@ -737,17 +735,17 @@ L(e4): addl $raw_closure_S_FS, %esp L(UW36):- # cfi_adjust_cfa_offset(-raw_closure_S_FS)+ /* cfi_adjust_cfa_offset(-raw_closure_S_FS) */ ret L(UW37):- # cfi_adjust_cfa_offset(raw_closure_S_FS)+ /* cfi_adjust_cfa_offset(raw_closure_S_FS) */ E(L(load_table4), X86_RET_STRUCTPOP) addl $raw_closure_S_FS, %esp L(UW38):- # cfi_adjust_cfa_offset(-raw_closure_S_FS)+ /* cfi_adjust_cfa_offset(-raw_closure_S_FS) */ ret $4 L(UW39):- # cfi_adjust_cfa_offset(raw_closure_S_FS)+ /* cfi_adjust_cfa_offset(raw_closure_S_FS) */ E(L(load_table4), X86_RET_STRUCTARG) jmp L(e4) E(L(load_table4), X86_RET_STRUCT_1B)@@ -764,7 +762,7 @@ ud2 L(UW40):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_closure_raw_SYSV)) #define raw_closure_T_FS (16+16+8)@@ -774,27 +772,27 @@ FFI_HIDDEN(C(ffi_closure_raw_THISCALL)) C(ffi_closure_raw_THISCALL): L(UW41):- # cfi_startproc+ /* cfi_startproc */ _CET_ENDBR /* Rearrange the stack such that %ecx is the first argument. This means moving the return address. */ popl %edx L(UW42):- # cfi_def_cfa_offset(0)- # cfi_register(%eip, %edx)+ /* cfi_def_cfa_offset(0) */+ /* cfi_register(%eip, %edx) */ pushl %ecx L(UW43):- # cfi_adjust_cfa_offset(4)+ /* cfi_adjust_cfa_offset(4) */ pushl %edx L(UW44):- # cfi_adjust_cfa_offset(4)- # cfi_rel_offset(%eip, 0)+ /* cfi_adjust_cfa_offset(4) */+ /* cfi_rel_offset(%eip, 0) */ subl $raw_closure_T_FS, %esp L(UW45):- # cfi_adjust_cfa_offset(raw_closure_T_FS)+ /* cfi_adjust_cfa_offset(raw_closure_T_FS) */ movl %ebx, raw_closure_T_FS-4(%esp) L(UW46):- # cfi_rel_offset(%ebx, raw_closure_T_FS-4)+ /* cfi_rel_offset(%ebx, raw_closure_T_FS-4) */ movl FFI_TRAMPOLINE_SIZE+8(%eax), %edx /* load cl->user_data */ movl %edx, 12(%esp)@@ -817,7 +815,7 @@ #endif movl raw_closure_T_FS-4(%esp), %ebx L(UW47):- # cfi_restore(%ebx)+ /* cfi_restore(%ebx) */ movl 16(%esp), %eax /* Optimistic load */ jmp *%ecx @@ -854,18 +852,18 @@ L(e5): addl $raw_closure_T_FS, %esp L(UW48):- # cfi_adjust_cfa_offset(-raw_closure_T_FS)+ /* cfi_adjust_cfa_offset(-raw_closure_T_FS) */ /* Remove the extra %ecx argument we pushed. */ ret $4 L(UW49):- # cfi_adjust_cfa_offset(raw_closure_T_FS)+ /* cfi_adjust_cfa_offset(raw_closure_T_FS) */ E(L(load_table5), X86_RET_STRUCTPOP) addl $raw_closure_T_FS, %esp L(UW50):- # cfi_adjust_cfa_offset(-raw_closure_T_FS)+ /* cfi_adjust_cfa_offset(-raw_closure_T_FS) */ ret $8 L(UW51):- # cfi_adjust_cfa_offset(raw_closure_T_FS)+ /* cfi_adjust_cfa_offset(raw_closure_T_FS) */ E(L(load_table5), X86_RET_STRUCTARG) jmp L(e5) E(L(load_table5), X86_RET_STRUCT_1B)@@ -882,7 +880,7 @@ ud2 L(UW52):- # cfi_endproc+ /* cfi_endproc */ ENDF(C(ffi_closure_raw_THISCALL)) #endif /* !FFI_NO_RAW_API */@@ -961,6 +959,10 @@ #ifdef HAVE_AS_X86_PCREL # define PCREL(X) X-.+#elif defined(__clang__)+/* clang's integrated assembler rejects the X@rel variant (#947); the+ pc-relative label difference works wherever @rel would. */+# define PCREL(X) X - . #else # define PCREL(X) X@rel #endif
src/x86/sysv_intel.S view
@@ -394,9 +394,7 @@ L(UW25): /* cfi_def_cfa_offset(closure_FS + 4) */ FFI_CLOSURE_SAVE_REGS- mov ecx, [esp+closure_FS-4] /* load retaddr */- mov eax, [esp+closure_FS] /* load closure */- mov [esp+closure_FS], ecx /* move retaddr */+ mov eax, [esp+closure_FS-4] /* load closure */ jmp L(do_closure_REGISTER) L(UW26): /* cfi_endproc */@@ -776,6 +774,10 @@ #endif #ifdef HAVE_AS_X86_PCREL+# define PCREL(X) X - .+#elif defined(__clang__)+/* clang's integrated assembler rejects the X@rel variant (#947); the+ pc-relative label difference works wherever @rel would. */ # define PCREL(X) X - . #else # define PCREL(X) X@rel
src/x86/unix64.S view
@@ -201,6 +201,13 @@ E(L(store_table), UNIX64_RET_ST_RAX_RDX) _CET_ENDBR movq %rdx, 8(%rsi)+ jmp L(s2)+E(L(store_table), UNIX64_RET_XMM128)+ _CET_ENDBR+ movups %xmm0, (%rdi)+ ret++ .balign 8 L(s2): movq %rax, (%rsi) shrl $UNIX64_SIZE_SHIFT, %ecx@@ -386,6 +393,13 @@ E(L(load_table), UNIX64_RET_ST_RAX_RDX) _CET_ENDBR movq 8(%rsi), %rdx+ jmp L(l2)+E(L(load_table), UNIX64_RET_XMM128)+ _CET_ENDBR+ movups (%rsi), %xmm0+ ret++ .balign 8 L(l2): movq (%rsi), %rax ret@@ -558,6 +572,10 @@ #endif #ifdef HAVE_AS_X86_PCREL+# define PCREL(X) X - .+#elif defined(__clang__)+/* clang's integrated assembler rejects the X@rel variant (#947); the+ pc-relative label difference works wherever @rel would. */ # define PCREL(X) X - . #else # define PCREL(X) X@rel
src/x86/win64.S view
@@ -145,6 +145,12 @@ epilogue E(0b, FFI_TYPE_COMPLEX) call PLT(C(abort))+E(0b, FFI_TYPE_UINT128)+ movdqu %xmm0, (%r8)+ epilogue+E(0b, FFI_TYPE_SINT128)+ movdqu %xmm0, (%r8)+ epilogue E(0b, FFI_TYPE_SMALL_STRUCT_1B) movb %al, (%r8) epilogue
src/x86/win64_intel.S view
@@ -146,6 +146,12 @@ epilogue E(0b, FFI_TYPE_COMPLEX) call PLT(C(abort))+E(0b, FFI_TYPE_UINT128)+ movdqu xmmword ptr [r8], xmm0+ epilogue+E(0b, FFI_TYPE_SINT128)+ movdqu xmmword ptr [r8], xmm0+ epilogue E(0b, FFI_TYPE_SMALL_STRUCT_1B) mov byte ptr [r8], al ; movb %al, (%r8) epilogue