]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Remove support for Intel MIC offloading
authorThomas Schwinge <thomas@codesourcery.com>
Mon, 17 Oct 2022 20:19:55 +0000 (22:19 +0200)
committerThomas Schwinge <thomas@codesourcery.com>
Fri, 4 Nov 2022 09:51:01 +0000 (10:51 +0100)
... after its deprecation in GCC 12.

* Makefile.def: Remove module 'liboffloadmic'.
* Makefile.in: Regenerate.
* configure.ac: Remove 'liboffloadmic' handling.
* configure: Regenerate.
contrib/
* gcc-changelog/git_commit.py (default_changelog_locations):
Remove 'liboffloadmic'.
* gcc_update (files_and_dependencies): Remove 'liboffloadmic'
files.
* update-copyright.py (GCCCmdLine): Remove 'liboffloadmic'
comment.
gcc/
* config.gcc [target *-intelmic-* | *-intelmicemul-*]: Remove.
* config/i386/i386-options.cc (ix86_omp_device_kind_arch_isa)
[ACCEL_COMPILER]: Remove.
* config/i386/intelmic-mkoffload.cc: Remove.
* config/i386/intelmic-offload.h: Likewise.
* config/i386/t-intelmic: Likewise.
* config/i386/t-omp-device: Likewise.
* configure.ac [target *-intelmic-* | *-intelmicemul-*]: Remove.
* configure: Regenerate.
* doc/install.texi (--enable-offload-targets=[...]): Update.
* doc/sourcebuild.texi: Remove 'liboffloadmic' documentation.
include/
* gomp-constants.h (GOMP_DEVICE_INTEL_MIC): Comment out.
(GOMP_VERSION_INTEL_MIC): Remove.
libgomp/
* libgomp-plugin.h (OFFLOAD_TARGET_TYPE_INTEL_MIC): Remove.
* libgomp.texi (OpenMP Context Selectors): Remove Intel MIC
documentation.
* plugin/configfrag.ac <enable_offload_targets>
[*-intelmic-* | *-intelmicemul-*]: Remove.
* configure: Regenerate.
* testsuite/lib/libgomp.exp (libgomp_init): Remove 'liboffloadmic'
handling.
(offload_target_to_openacc_device_type)
[$offload_target = *-intelmic*]: Remove.
(check_effective_target_offload_device_intel_mic)
(check_effective_target_offload_device_any_intel_mic): Remove.
* testsuite/libgomp.c-c++-common/on_device_arch.h
(device_arch_intel_mic, on_device_arch_intel_mic, any_device_arch)
(any_device_arch_intel_mic): Remove.
* testsuite/libgomp.c-c++-common/target-45.c: Remove
'offload_device_any_intel_mic' XFAIL.
* testsuite/libgomp.fortran/target10.f90: Likewise.
liboffloadmic/
* ChangeLog: Remove.
* Makefile.am: Likewise.
* Makefile.in: Likewise.
* aclocal.m4: Likewise.
* configure: Likewise.
* configure.ac: Likewise.
* configure.tgt: Likewise.
* doc/doxygen/config: Likewise.
* doc/doxygen/header.tex: Likewise.
* include/coi/common/COIEngine_common.h: Likewise.
* include/coi/common/COIEvent_common.h: Likewise.
* include/coi/common/COIMacros_common.h: Likewise.
* include/coi/common/COIPerf_common.h: Likewise.
* include/coi/common/COIResult_common.h: Likewise.
* include/coi/common/COISysInfo_common.h: Likewise.
* include/coi/common/COITypes_common.h: Likewise.
* include/coi/sink/COIBuffer_sink.h: Likewise.
* include/coi/sink/COIPipeline_sink.h: Likewise.
* include/coi/sink/COIProcess_sink.h: Likewise.
* include/coi/source/COIBuffer_source.h: Likewise.
* include/coi/source/COIEngine_source.h: Likewise.
* include/coi/source/COIEvent_source.h: Likewise.
* include/coi/source/COIPipeline_source.h: Likewise.
* include/coi/source/COIProcess_source.h: Likewise.
* liboffloadmic_host.spec.in: Likewise.
* liboffloadmic_target.spec.in: Likewise.
* plugin/Makefile.am: Likewise.
* plugin/Makefile.in: Likewise.
* plugin/aclocal.m4: Likewise.
* plugin/configure: Likewise.
* plugin/configure.ac: Likewise.
* plugin/libgomp-plugin-intelmic.cpp: Likewise.
* plugin/offload_target_main.cpp: Likewise.
* runtime/cean_util.cpp: Likewise.
* runtime/cean_util.h: Likewise.
* runtime/coi/coi_client.cpp: Likewise.
* runtime/coi/coi_client.h: Likewise.
* runtime/coi/coi_server.cpp: Likewise.
* runtime/coi/coi_server.h: Likewise.
* runtime/compiler_if_host.cpp: Likewise.
* runtime/compiler_if_host.h: Likewise.
* runtime/compiler_if_target.cpp: Likewise.
* runtime/compiler_if_target.h: Likewise.
* runtime/dv_util.cpp: Likewise.
* runtime/dv_util.h: Likewise.
* runtime/emulator/coi_common.h: Likewise.
* runtime/emulator/coi_device.cpp: Likewise.
* runtime/emulator/coi_device.h: Likewise.
* runtime/emulator/coi_host.cpp: Likewise.
* runtime/emulator/coi_host.h: Likewise.
* runtime/emulator/coi_version_asm.h: Likewise.
* runtime/emulator/coi_version_linker_script.map: Likewise.
* runtime/liboffload_error.c: Likewise.
* runtime/liboffload_error_codes.h: Likewise.
* runtime/liboffload_msg.c: Likewise.
* runtime/liboffload_msg.h: Likewise.
* runtime/mic_lib.f90: Likewise.
* runtime/offload.h: Likewise.
* runtime/offload_common.cpp: Likewise.
* runtime/offload_common.h: Likewise.
* runtime/offload_engine.cpp: Likewise.
* runtime/offload_engine.h: Likewise.
* runtime/offload_env.cpp: Likewise.
* runtime/offload_env.h: Likewise.
* runtime/offload_host.cpp: Likewise.
* runtime/offload_host.h: Likewise.
* runtime/offload_iterator.h: Likewise.
* runtime/offload_omp_host.cpp: Likewise.
* runtime/offload_omp_target.cpp: Likewise.
* runtime/offload_orsl.cpp: Likewise.
* runtime/offload_orsl.h: Likewise.
* runtime/offload_table.cpp: Likewise.
* runtime/offload_table.h: Likewise.
* runtime/offload_target.cpp: Likewise.
* runtime/offload_target.h: Likewise.
* runtime/offload_target_main.cpp: Likewise.
* runtime/offload_timer.h: Likewise.
* runtime/offload_timer_host.cpp: Likewise.
* runtime/offload_timer_target.cpp: Likewise.
* runtime/offload_trace.cpp: Likewise.
* runtime/offload_trace.h: Likewise.
* runtime/offload_util.cpp: Likewise.
* runtime/offload_util.h: Likewise.
* runtime/ofldbegin.cpp: Likewise.
* runtime/ofldend.cpp: Likewise.
* runtime/orsl-lite/include/orsl-lite.h: Likewise.
* runtime/orsl-lite/lib/orsl-lite.c: Likewise.
* runtime/orsl-lite/version.txt: Likewise.

114 files changed:
Makefile.def
Makefile.in
configure
configure.ac
contrib/gcc-changelog/git_commit.py
contrib/gcc_update
contrib/update-copyright.py
gcc/config.gcc
gcc/config/i386/i386-options.cc
gcc/config/i386/intelmic-mkoffload.cc [deleted file]
gcc/config/i386/intelmic-offload.h [deleted file]
gcc/config/i386/t-intelmic [deleted file]
gcc/config/i386/t-omp-device [deleted file]
gcc/configure
gcc/configure.ac
gcc/doc/install.texi
gcc/doc/sourcebuild.texi
include/gomp-constants.h
libgomp/configure
libgomp/libgomp-plugin.h
libgomp/libgomp.texi
libgomp/plugin/configfrag.ac
libgomp/testsuite/lib/libgomp.exp
libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
libgomp/testsuite/libgomp.c-c++-common/target-45.c
libgomp/testsuite/libgomp.fortran/target10.f90
liboffloadmic/ChangeLog [deleted file]
liboffloadmic/Makefile.am [deleted file]
liboffloadmic/Makefile.in [deleted file]
liboffloadmic/aclocal.m4 [deleted file]
liboffloadmic/configure [deleted file]
liboffloadmic/configure.ac [deleted file]
liboffloadmic/configure.tgt [deleted file]
liboffloadmic/doc/doxygen/config [deleted file]
liboffloadmic/doc/doxygen/header.tex [deleted file]
liboffloadmic/include/coi/common/COIEngine_common.h [deleted file]
liboffloadmic/include/coi/common/COIEvent_common.h [deleted file]
liboffloadmic/include/coi/common/COIMacros_common.h [deleted file]
liboffloadmic/include/coi/common/COIPerf_common.h [deleted file]
liboffloadmic/include/coi/common/COIResult_common.h [deleted file]
liboffloadmic/include/coi/common/COISysInfo_common.h [deleted file]
liboffloadmic/include/coi/common/COITypes_common.h [deleted file]
liboffloadmic/include/coi/sink/COIBuffer_sink.h [deleted file]
liboffloadmic/include/coi/sink/COIPipeline_sink.h [deleted file]
liboffloadmic/include/coi/sink/COIProcess_sink.h [deleted file]
liboffloadmic/include/coi/source/COIBuffer_source.h [deleted file]
liboffloadmic/include/coi/source/COIEngine_source.h [deleted file]
liboffloadmic/include/coi/source/COIEvent_source.h [deleted file]
liboffloadmic/include/coi/source/COIPipeline_source.h [deleted file]
liboffloadmic/include/coi/source/COIProcess_source.h [deleted file]
liboffloadmic/liboffloadmic_host.spec.in [deleted file]
liboffloadmic/liboffloadmic_target.spec.in [deleted file]
liboffloadmic/plugin/Makefile.am [deleted file]
liboffloadmic/plugin/Makefile.in [deleted file]
liboffloadmic/plugin/aclocal.m4 [deleted file]
liboffloadmic/plugin/configure [deleted file]
liboffloadmic/plugin/configure.ac [deleted file]
liboffloadmic/plugin/libgomp-plugin-intelmic.cpp [deleted file]
liboffloadmic/plugin/offload_target_main.cpp [deleted file]
liboffloadmic/runtime/cean_util.cpp [deleted file]
liboffloadmic/runtime/cean_util.h [deleted file]
liboffloadmic/runtime/coi/coi_client.cpp [deleted file]
liboffloadmic/runtime/coi/coi_client.h [deleted file]
liboffloadmic/runtime/coi/coi_server.cpp [deleted file]
liboffloadmic/runtime/coi/coi_server.h [deleted file]
liboffloadmic/runtime/compiler_if_host.cpp [deleted file]
liboffloadmic/runtime/compiler_if_host.h [deleted file]
liboffloadmic/runtime/compiler_if_target.cpp [deleted file]
liboffloadmic/runtime/compiler_if_target.h [deleted file]
liboffloadmic/runtime/dv_util.cpp [deleted file]
liboffloadmic/runtime/dv_util.h [deleted file]
liboffloadmic/runtime/emulator/coi_common.h [deleted file]
liboffloadmic/runtime/emulator/coi_device.cpp [deleted file]
liboffloadmic/runtime/emulator/coi_device.h [deleted file]
liboffloadmic/runtime/emulator/coi_host.cpp [deleted file]
liboffloadmic/runtime/emulator/coi_host.h [deleted file]
liboffloadmic/runtime/emulator/coi_version_asm.h [deleted file]
liboffloadmic/runtime/emulator/coi_version_linker_script.map [deleted file]
liboffloadmic/runtime/liboffload_error.c [deleted file]
liboffloadmic/runtime/liboffload_error_codes.h [deleted file]
liboffloadmic/runtime/liboffload_msg.c [deleted file]
liboffloadmic/runtime/liboffload_msg.h [deleted file]
liboffloadmic/runtime/mic_lib.f90 [deleted file]
liboffloadmic/runtime/offload.h [deleted file]
liboffloadmic/runtime/offload_common.cpp [deleted file]
liboffloadmic/runtime/offload_common.h [deleted file]
liboffloadmic/runtime/offload_engine.cpp [deleted file]
liboffloadmic/runtime/offload_engine.h [deleted file]
liboffloadmic/runtime/offload_env.cpp [deleted file]
liboffloadmic/runtime/offload_env.h [deleted file]
liboffloadmic/runtime/offload_host.cpp [deleted file]
liboffloadmic/runtime/offload_host.h [deleted file]
liboffloadmic/runtime/offload_iterator.h [deleted file]
liboffloadmic/runtime/offload_omp_host.cpp [deleted file]
liboffloadmic/runtime/offload_omp_target.cpp [deleted file]
liboffloadmic/runtime/offload_orsl.cpp [deleted file]
liboffloadmic/runtime/offload_orsl.h [deleted file]
liboffloadmic/runtime/offload_table.cpp [deleted file]
liboffloadmic/runtime/offload_table.h [deleted file]
liboffloadmic/runtime/offload_target.cpp [deleted file]
liboffloadmic/runtime/offload_target.h [deleted file]
liboffloadmic/runtime/offload_target_main.cpp [deleted file]
liboffloadmic/runtime/offload_timer.h [deleted file]
liboffloadmic/runtime/offload_timer_host.cpp [deleted file]
liboffloadmic/runtime/offload_timer_target.cpp [deleted file]
liboffloadmic/runtime/offload_trace.cpp [deleted file]
liboffloadmic/runtime/offload_trace.h [deleted file]
liboffloadmic/runtime/offload_util.cpp [deleted file]
liboffloadmic/runtime/offload_util.h [deleted file]
liboffloadmic/runtime/ofldbegin.cpp [deleted file]
liboffloadmic/runtime/ofldend.cpp [deleted file]
liboffloadmic/runtime/orsl-lite/include/orsl-lite.h [deleted file]
liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c [deleted file]
liboffloadmic/runtime/orsl-lite/version.txt [deleted file]

index 3291b126b260d2fd4916f72da16c4ac39ba87427..02e63c57177ed6e9b0f3546a43a57dbf7474c0c0 100644 (file)
@@ -158,9 +158,6 @@ target_modules = { module= libvtv;
                   bootstrap=true;
                   lib_path=.libs;
                   raw_cxx=true; };
-target_modules = { module= liboffloadmic;
-                  lib_path=.libs;
-                  extra_configure_flags='@extra_liboffloadmic_configure_flags@'; };
 target_modules = { module= libssp; lib_path=.libs; };
 target_modules = { module= newlib; };
 target_modules = { module= libgcc; bootstrap=true; no_check=true;
@@ -603,7 +600,6 @@ dependencies = { module=all-m4; on=all-build-texinfo; };
 // on libgcc and newlib/libgloss.
 lang_env_dependencies = { module=libitm; cxx=true; };
 lang_env_dependencies = { module=libffi; cxx=true; };
-lang_env_dependencies = { module=liboffloadmic; cxx=true; };
 lang_env_dependencies = { module=newlib; no_c=true; };
 lang_env_dependencies = { module=libgloss; no_c=true; };
 lang_env_dependencies = { module=libgcc; no_gcc=true; no_c=true; };
@@ -625,14 +621,12 @@ dependencies = { module=all-target-libphobos; on=all-target-libbacktrace; };
 dependencies = { module=all-target-libphobos; on=all-target-zlib; };
 dependencies = { module=all-target-libphobos; on=all-target-libatomic; };
 dependencies = { module=configure-target-libstdc++-v3; on=configure-target-libgomp; };
-dependencies = { module=configure-target-liboffloadmic; on=configure-target-libgomp; };
 dependencies = { module=configure-target-libsanitizer; on=all-target-libstdc++-v3; };
 dependencies = { module=configure-target-libvtv; on=all-target-libstdc++-v3; };
 // parallel_list.o and parallel_settings.o depend on omp.h, which is
 // generated by the libgomp configure.  Unfortunately, due to the use of
 //  recursive make, we can't be that specific.
 dependencies = { module=all-target-libstdc++-v3; on=configure-target-libgomp; };
-dependencies = { module=all-target-liboffloadmic; on=all-target-libgomp; };
 
 dependencies = { module=install-target-libgo; on=install-target-libatomic; };
 dependencies = { module=install-target-libgfortran; on=install-target-libquadmath; };
@@ -642,8 +636,6 @@ dependencies = { module=install-target-libsanitizer; on=install-target-libstdc++
 dependencies = { module=install-target-libsanitizer; on=install-target-libgcc; };
 dependencies = { module=install-target-libvtv; on=install-target-libstdc++-v3; };
 dependencies = { module=install-target-libvtv; on=install-target-libgcc; };
-dependencies = { module=install-target-liboffloadmic; on=install-target-libstdc++-v3; };
-dependencies = { module=install-target-liboffloadmic; on=install-target-libgcc; };
 dependencies = { module=install-target-libitm; on=install-target-libgcc; };
 dependencies = { module=install-target-libobjc; on=install-target-libgcc; };
 dependencies = { module=install-target-libstdc++-v3; on=install-target-libgcc; };
index 1919dfee8294e8b9d7719548189788327438b87e..6ffa9660c2572d5d86374b8aeef58e0d66010897 100644 (file)
@@ -706,7 +706,7 @@ all:
 
 # This is the list of directories that may be needed in RPATH_ENVVAR
 # so that programs built for the target machine work.
-TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libsanitizer)$(TARGET_LIB_PATH_libvtv)$(TARGET_LIB_PATH_liboffloadmic)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libphobos)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc)
+TARGET_LIB_PATH = $(TARGET_LIB_PATH_libstdc++-v3)$(TARGET_LIB_PATH_libsanitizer)$(TARGET_LIB_PATH_libvtv)$(TARGET_LIB_PATH_libssp)$(TARGET_LIB_PATH_libphobos)$(TARGET_LIB_PATH_libgomp)$(TARGET_LIB_PATH_libitm)$(TARGET_LIB_PATH_libatomic)$(HOST_LIB_PATH_gcc)
 
 @if target-libstdc++-v3
 TARGET_LIB_PATH_libstdc++-v3 = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:
@@ -720,10 +720,6 @@ TARGET_LIB_PATH_libsanitizer = $$r/$(TARGET_SUBDIR)/libsanitizer/.libs:
 TARGET_LIB_PATH_libvtv = $$r/$(TARGET_SUBDIR)/libvtv/.libs:
 @endif target-libvtv
 
-@if target-liboffloadmic
-TARGET_LIB_PATH_liboffloadmic = $$r/$(TARGET_SUBDIR)/liboffloadmic/.libs:
-@endif target-liboffloadmic
-
 @if target-libssp
 TARGET_LIB_PATH_libssp = $$r/$(TARGET_SUBDIR)/libssp/.libs:
 @endif target-libssp
@@ -1107,7 +1103,6 @@ configure-target:  \
     maybe-configure-target-libstdc++-v3 \
     maybe-configure-target-libsanitizer \
     maybe-configure-target-libvtv \
-    maybe-configure-target-liboffloadmic \
     maybe-configure-target-libssp \
     maybe-configure-target-newlib \
     maybe-configure-target-libgcc \
@@ -1290,7 +1285,6 @@ all-target: maybe-all-target-libsanitizer
 @if target-libvtv-no-bootstrap
 all-target: maybe-all-target-libvtv
 @endif target-libvtv-no-bootstrap
-all-target: maybe-all-target-liboffloadmic
 all-target: maybe-all-target-libssp
 all-target: maybe-all-target-newlib
 @if target-libgcc-no-bootstrap
@@ -1396,7 +1390,6 @@ info-host: maybe-info-libctf
 info-target: maybe-info-target-libstdc++-v3
 info-target: maybe-info-target-libsanitizer
 info-target: maybe-info-target-libvtv
-info-target: maybe-info-target-liboffloadmic
 info-target: maybe-info-target-libssp
 info-target: maybe-info-target-newlib
 info-target: maybe-info-target-libgcc
@@ -1485,7 +1478,6 @@ dvi-host: maybe-dvi-libctf
 dvi-target: maybe-dvi-target-libstdc++-v3
 dvi-target: maybe-dvi-target-libsanitizer
 dvi-target: maybe-dvi-target-libvtv
-dvi-target: maybe-dvi-target-liboffloadmic
 dvi-target: maybe-dvi-target-libssp
 dvi-target: maybe-dvi-target-newlib
 dvi-target: maybe-dvi-target-libgcc
@@ -1574,7 +1566,6 @@ pdf-host: maybe-pdf-libctf
 pdf-target: maybe-pdf-target-libstdc++-v3
 pdf-target: maybe-pdf-target-libsanitizer
 pdf-target: maybe-pdf-target-libvtv
-pdf-target: maybe-pdf-target-liboffloadmic
 pdf-target: maybe-pdf-target-libssp
 pdf-target: maybe-pdf-target-newlib
 pdf-target: maybe-pdf-target-libgcc
@@ -1663,7 +1654,6 @@ html-host: maybe-html-libctf
 html-target: maybe-html-target-libstdc++-v3
 html-target: maybe-html-target-libsanitizer
 html-target: maybe-html-target-libvtv
-html-target: maybe-html-target-liboffloadmic
 html-target: maybe-html-target-libssp
 html-target: maybe-html-target-newlib
 html-target: maybe-html-target-libgcc
@@ -1752,7 +1742,6 @@ TAGS-host: maybe-TAGS-libctf
 TAGS-target: maybe-TAGS-target-libstdc++-v3
 TAGS-target: maybe-TAGS-target-libsanitizer
 TAGS-target: maybe-TAGS-target-libvtv
-TAGS-target: maybe-TAGS-target-liboffloadmic
 TAGS-target: maybe-TAGS-target-libssp
 TAGS-target: maybe-TAGS-target-newlib
 TAGS-target: maybe-TAGS-target-libgcc
@@ -1841,7 +1830,6 @@ install-info-host: maybe-install-info-libctf
 install-info-target: maybe-install-info-target-libstdc++-v3
 install-info-target: maybe-install-info-target-libsanitizer
 install-info-target: maybe-install-info-target-libvtv
-install-info-target: maybe-install-info-target-liboffloadmic
 install-info-target: maybe-install-info-target-libssp
 install-info-target: maybe-install-info-target-newlib
 install-info-target: maybe-install-info-target-libgcc
@@ -1930,7 +1918,6 @@ install-dvi-host: maybe-install-dvi-libctf
 install-dvi-target: maybe-install-dvi-target-libstdc++-v3
 install-dvi-target: maybe-install-dvi-target-libsanitizer
 install-dvi-target: maybe-install-dvi-target-libvtv
-install-dvi-target: maybe-install-dvi-target-liboffloadmic
 install-dvi-target: maybe-install-dvi-target-libssp
 install-dvi-target: maybe-install-dvi-target-newlib
 install-dvi-target: maybe-install-dvi-target-libgcc
@@ -2019,7 +2006,6 @@ install-pdf-host: maybe-install-pdf-libctf
 install-pdf-target: maybe-install-pdf-target-libstdc++-v3
 install-pdf-target: maybe-install-pdf-target-libsanitizer
 install-pdf-target: maybe-install-pdf-target-libvtv
-install-pdf-target: maybe-install-pdf-target-liboffloadmic
 install-pdf-target: maybe-install-pdf-target-libssp
 install-pdf-target: maybe-install-pdf-target-newlib
 install-pdf-target: maybe-install-pdf-target-libgcc
@@ -2108,7 +2094,6 @@ install-html-host: maybe-install-html-libctf
 install-html-target: maybe-install-html-target-libstdc++-v3
 install-html-target: maybe-install-html-target-libsanitizer
 install-html-target: maybe-install-html-target-libvtv
-install-html-target: maybe-install-html-target-liboffloadmic
 install-html-target: maybe-install-html-target-libssp
 install-html-target: maybe-install-html-target-newlib
 install-html-target: maybe-install-html-target-libgcc
@@ -2197,7 +2182,6 @@ installcheck-host: maybe-installcheck-libctf
 installcheck-target: maybe-installcheck-target-libstdc++-v3
 installcheck-target: maybe-installcheck-target-libsanitizer
 installcheck-target: maybe-installcheck-target-libvtv
-installcheck-target: maybe-installcheck-target-liboffloadmic
 installcheck-target: maybe-installcheck-target-libssp
 installcheck-target: maybe-installcheck-target-newlib
 installcheck-target: maybe-installcheck-target-libgcc
@@ -2286,7 +2270,6 @@ mostlyclean-host: maybe-mostlyclean-libctf
 mostlyclean-target: maybe-mostlyclean-target-libstdc++-v3
 mostlyclean-target: maybe-mostlyclean-target-libsanitizer
 mostlyclean-target: maybe-mostlyclean-target-libvtv
-mostlyclean-target: maybe-mostlyclean-target-liboffloadmic
 mostlyclean-target: maybe-mostlyclean-target-libssp
 mostlyclean-target: maybe-mostlyclean-target-newlib
 mostlyclean-target: maybe-mostlyclean-target-libgcc
@@ -2375,7 +2358,6 @@ clean-host: maybe-clean-libctf
 clean-target: maybe-clean-target-libstdc++-v3
 clean-target: maybe-clean-target-libsanitizer
 clean-target: maybe-clean-target-libvtv
-clean-target: maybe-clean-target-liboffloadmic
 clean-target: maybe-clean-target-libssp
 clean-target: maybe-clean-target-newlib
 clean-target: maybe-clean-target-libgcc
@@ -2464,7 +2446,6 @@ distclean-host: maybe-distclean-libctf
 distclean-target: maybe-distclean-target-libstdc++-v3
 distclean-target: maybe-distclean-target-libsanitizer
 distclean-target: maybe-distclean-target-libvtv
-distclean-target: maybe-distclean-target-liboffloadmic
 distclean-target: maybe-distclean-target-libssp
 distclean-target: maybe-distclean-target-newlib
 distclean-target: maybe-distclean-target-libgcc
@@ -2553,7 +2534,6 @@ maintainer-clean-host: maybe-maintainer-clean-libctf
 maintainer-clean-target: maybe-maintainer-clean-target-libstdc++-v3
 maintainer-clean-target: maybe-maintainer-clean-target-libsanitizer
 maintainer-clean-target: maybe-maintainer-clean-target-libvtv
-maintainer-clean-target: maybe-maintainer-clean-target-liboffloadmic
 maintainer-clean-target: maybe-maintainer-clean-target-libssp
 maintainer-clean-target: maybe-maintainer-clean-target-newlib
 maintainer-clean-target: maybe-maintainer-clean-target-libgcc
@@ -2700,7 +2680,6 @@ check-target:  \
     maybe-check-target-libstdc++-v3 \
     maybe-check-target-libsanitizer \
     maybe-check-target-libvtv \
-    maybe-check-target-liboffloadmic \
     maybe-check-target-libssp \
     maybe-check-target-newlib \
     maybe-check-target-libgcc \
@@ -2890,7 +2869,6 @@ install-target:  \
     maybe-install-target-libstdc++-v3 \
     maybe-install-target-libsanitizer \
     maybe-install-target-libvtv \
-    maybe-install-target-liboffloadmic \
     maybe-install-target-libssp \
     maybe-install-target-newlib \
     maybe-install-target-libgcc \
@@ -2999,7 +2977,6 @@ install-strip-target:  \
     maybe-install-strip-target-libstdc++-v3 \
     maybe-install-strip-target-libsanitizer \
     maybe-install-strip-target-libvtv \
-    maybe-install-strip-target-liboffloadmic \
     maybe-install-strip-target-libssp \
     maybe-install-strip-target-newlib \
     maybe-install-strip-target-libgcc \
@@ -46216,491 +46193,6 @@ maintainer-clean-target-libvtv:
 
 
 
-.PHONY: configure-target-liboffloadmic maybe-configure-target-liboffloadmic
-maybe-configure-target-liboffloadmic:
-@if gcc-bootstrap
-configure-target-liboffloadmic: stage_current
-@endif gcc-bootstrap
-@if target-liboffloadmic
-maybe-configure-target-liboffloadmic: configure-target-liboffloadmic
-configure-target-liboffloadmic: 
-       @: $(MAKE); $(unstage)
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       echo "Checking multilib configuration for liboffloadmic..."; \
-       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/liboffloadmic; \
-       $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp 2> /dev/null; \
-       if test -r $(TARGET_SUBDIR)/liboffloadmic/multilib.out; then \
-         if cmp -s $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp $(TARGET_SUBDIR)/liboffloadmic/multilib.out; then \
-           rm -f $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp; \
-         else \
-           rm -f $(TARGET_SUBDIR)/liboffloadmic/Makefile; \
-           mv $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp $(TARGET_SUBDIR)/liboffloadmic/multilib.out; \
-         fi; \
-       else \
-         mv $(TARGET_SUBDIR)/liboffloadmic/multilib.tmp $(TARGET_SUBDIR)/liboffloadmic/multilib.out; \
-       fi; \
-       test ! -f $(TARGET_SUBDIR)/liboffloadmic/Makefile || exit 0; \
-       $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/liboffloadmic; \
-       $(NORMAL_TARGET_EXPORTS)  \
-       echo Configuring in $(TARGET_SUBDIR)/liboffloadmic; \
-       cd "$(TARGET_SUBDIR)/liboffloadmic" || exit 1; \
-       case $(srcdir) in \
-         /* | [A-Za-z]:[\\/]*) topdir=$(srcdir) ;; \
-         *) topdir=`echo $(TARGET_SUBDIR)/liboffloadmic/ | \
-               sed -e 's,\./,,g' -e 's,[^/]*/,../,g' `$(srcdir) ;; \
-       esac; \
-       module_srcdir=liboffloadmic; \
-       rm -f no-such-file || : ; \
-       CONFIG_SITE=no-such-file $(SHELL) \
-         $$s/$$module_srcdir/configure \
-         --srcdir=$${topdir}/$$module_srcdir \
-         $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
-         --target=${target_alias} @extra_liboffloadmic_configure_flags@ \
-         || exit 1
-@endif target-liboffloadmic
-
-
-
-
-
-.PHONY: all-target-liboffloadmic maybe-all-target-liboffloadmic
-maybe-all-target-liboffloadmic:
-@if gcc-bootstrap
-all-target-liboffloadmic: stage_current
-@endif gcc-bootstrap
-@if target-liboffloadmic
-TARGET-target-liboffloadmic=all
-maybe-all-target-liboffloadmic: all-target-liboffloadmic
-all-target-liboffloadmic: configure-target-liboffloadmic
-       @: $(MAKE); $(unstage)
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS)  \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS)   \
-               $(TARGET-target-liboffloadmic))
-@endif target-liboffloadmic
-
-
-
-
-
-.PHONY: check-target-liboffloadmic maybe-check-target-liboffloadmic
-maybe-check-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-check-target-liboffloadmic: check-target-liboffloadmic
-
-check-target-liboffloadmic:
-       @: $(MAKE); $(unstage)
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)   check)
-
-@endif target-liboffloadmic
-
-.PHONY: install-target-liboffloadmic maybe-install-target-liboffloadmic
-maybe-install-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-install-target-liboffloadmic: install-target-liboffloadmic
-
-install-target-liboffloadmic: installdirs
-       @: $(MAKE); $(unstage)
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)  install)
-
-@endif target-liboffloadmic
-
-.PHONY: install-strip-target-liboffloadmic maybe-install-strip-target-liboffloadmic
-maybe-install-strip-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-install-strip-target-liboffloadmic: install-strip-target-liboffloadmic
-
-install-strip-target-liboffloadmic: installdirs
-       @: $(MAKE); $(unstage)
-       @r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(TARGET_FLAGS_TO_PASS)  install-strip)
-
-@endif target-liboffloadmic
-
-# Other targets (info, dvi, pdf, etc.)
-
-.PHONY: maybe-info-target-liboffloadmic info-target-liboffloadmic
-maybe-info-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-info-target-liboffloadmic: info-target-liboffloadmic
-
-info-target-liboffloadmic: \
-    configure-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing info in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  info) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-dvi-target-liboffloadmic dvi-target-liboffloadmic
-maybe-dvi-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-dvi-target-liboffloadmic: dvi-target-liboffloadmic
-
-dvi-target-liboffloadmic: \
-    configure-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing dvi in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  dvi) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-pdf-target-liboffloadmic pdf-target-liboffloadmic
-maybe-pdf-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-pdf-target-liboffloadmic: pdf-target-liboffloadmic
-
-pdf-target-liboffloadmic: \
-    configure-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing pdf in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  pdf) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-html-target-liboffloadmic html-target-liboffloadmic
-maybe-html-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-html-target-liboffloadmic: html-target-liboffloadmic
-
-html-target-liboffloadmic: \
-    configure-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing html in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  html) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-TAGS-target-liboffloadmic TAGS-target-liboffloadmic
-maybe-TAGS-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-TAGS-target-liboffloadmic: TAGS-target-liboffloadmic
-
-TAGS-target-liboffloadmic: \
-    configure-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing TAGS in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  TAGS) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-install-info-target-liboffloadmic install-info-target-liboffloadmic
-maybe-install-info-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-install-info-target-liboffloadmic: install-info-target-liboffloadmic
-
-install-info-target-liboffloadmic: \
-    configure-target-liboffloadmic \
-    info-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing install-info in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  install-info) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-install-dvi-target-liboffloadmic install-dvi-target-liboffloadmic
-maybe-install-dvi-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-install-dvi-target-liboffloadmic: install-dvi-target-liboffloadmic
-
-install-dvi-target-liboffloadmic: \
-    configure-target-liboffloadmic \
-    dvi-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing install-dvi in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  install-dvi) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-install-pdf-target-liboffloadmic install-pdf-target-liboffloadmic
-maybe-install-pdf-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-install-pdf-target-liboffloadmic: install-pdf-target-liboffloadmic
-
-install-pdf-target-liboffloadmic: \
-    configure-target-liboffloadmic \
-    pdf-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing install-pdf in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  install-pdf) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-install-html-target-liboffloadmic install-html-target-liboffloadmic
-maybe-install-html-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-install-html-target-liboffloadmic: install-html-target-liboffloadmic
-
-install-html-target-liboffloadmic: \
-    configure-target-liboffloadmic \
-    html-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing install-html in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  install-html) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-installcheck-target-liboffloadmic installcheck-target-liboffloadmic
-maybe-installcheck-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-installcheck-target-liboffloadmic: installcheck-target-liboffloadmic
-
-installcheck-target-liboffloadmic: \
-    configure-target-liboffloadmic 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing installcheck in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  installcheck) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-mostlyclean-target-liboffloadmic mostlyclean-target-liboffloadmic
-maybe-mostlyclean-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-mostlyclean-target-liboffloadmic: mostlyclean-target-liboffloadmic
-
-mostlyclean-target-liboffloadmic: 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing mostlyclean in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  mostlyclean) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-clean-target-liboffloadmic clean-target-liboffloadmic
-maybe-clean-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-clean-target-liboffloadmic: clean-target-liboffloadmic
-
-clean-target-liboffloadmic: 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing clean in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  clean) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-distclean-target-liboffloadmic distclean-target-liboffloadmic
-maybe-distclean-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-distclean-target-liboffloadmic: distclean-target-liboffloadmic
-
-distclean-target-liboffloadmic: 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing distclean in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  distclean) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-.PHONY: maybe-maintainer-clean-target-liboffloadmic maintainer-clean-target-liboffloadmic
-maybe-maintainer-clean-target-liboffloadmic:
-@if target-liboffloadmic
-maybe-maintainer-clean-target-liboffloadmic: maintainer-clean-target-liboffloadmic
-
-maintainer-clean-target-liboffloadmic: 
-       @: $(MAKE); $(unstage)
-       @[ -f $(TARGET_SUBDIR)/liboffloadmic/Makefile ] || exit 0; \
-       r=`${PWD_COMMAND}`; export r; \
-       s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
-       $(NORMAL_TARGET_EXPORTS) \
-       echo "Doing maintainer-clean in $(TARGET_SUBDIR)/liboffloadmic"; \
-       for flag in $(EXTRA_TARGET_FLAGS); do \
-         eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \
-       done; \
-       (cd $(TARGET_SUBDIR)/liboffloadmic && \
-         $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \
-                 "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \
-                 "RANLIB=$${RANLIB}" \
-                 "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" "WINDMC=$${WINDMC}" \
-                  maintainer-clean) \
-         || exit 1
-
-@endif target-liboffloadmic
-
-
-
-
-
 .PHONY: configure-target-libssp maybe-configure-target-libssp
 maybe-configure-target-libssp:
 @if gcc-bootstrap
@@ -63863,7 +63355,6 @@ configure-stagetrain-target-libvtv: maybe-all-stagetrain-gcc
 configure-stagefeedback-target-libvtv: maybe-all-stagefeedback-gcc
 configure-stageautoprofile-target-libvtv: maybe-all-stageautoprofile-gcc
 configure-stageautofeedback-target-libvtv: maybe-all-stageautofeedback-gcc
-configure-target-liboffloadmic: stage_last
 configure-target-libssp: stage_last
 configure-target-newlib: stage_last
 configure-stage1-target-libgcc: maybe-all-stage1-gcc
@@ -63937,7 +63428,6 @@ configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-gcc
 configure-target-libstdc++-v3: maybe-all-gcc
 configure-target-libsanitizer: maybe-all-gcc
 configure-target-libvtv: maybe-all-gcc
-configure-target-liboffloadmic: maybe-all-gcc
 configure-target-libssp: maybe-all-gcc
 configure-target-newlib: maybe-all-gcc
 configure-target-libgcc: maybe-all-gcc
@@ -65163,8 +64653,6 @@ install-target-libsanitizer: maybe-install-target-libstdc++-v3
 install-target-libsanitizer: maybe-install-target-libgcc
 install-target-libvtv: maybe-install-target-libstdc++-v3
 install-target-libvtv: maybe-install-target-libgcc
-install-target-liboffloadmic: maybe-install-target-libstdc++-v3
-install-target-liboffloadmic: maybe-install-target-libgcc
 install-target-libitm: maybe-install-target-libgcc
 install-target-libobjc: maybe-install-target-libgcc
 install-target-libstdc++-v3: maybe-install-target-libgcc
@@ -65232,8 +64720,6 @@ all-target-fastjar: maybe-all-target-zlib
 configure-target-libgo: maybe-all-target-libstdc++-v3
 all-target-libgo: maybe-all-target-libbacktrace
 all-target-libgo: maybe-all-target-libatomic
-configure-target-liboffloadmic: maybe-configure-target-libgomp
-all-target-liboffloadmic: maybe-all-target-libgomp
 configure-target-newlib: maybe-all-binutils
 configure-target-newlib: maybe-all-ld
 configure-target-libgfortran: maybe-all-target-libbacktrace
@@ -65324,7 +64810,6 @@ configure-stageautofeedback-target-libatomic: maybe-all-stageautofeedback-target
 configure-target-libstdc++-v3: maybe-all-target-libgcc
 configure-target-libsanitizer: maybe-all-target-libgcc
 configure-target-libvtv: maybe-all-target-libgcc
-configure-target-liboffloadmic: maybe-all-target-libgcc
 configure-target-libssp: maybe-all-target-libgcc
 configure-target-newlib: maybe-all-target-libgcc
 configure-target-libbacktrace: maybe-all-target-libgcc
@@ -65352,9 +64837,6 @@ configure-target-libsanitizer: maybe-all-target-newlib maybe-all-target-libgloss
 
 configure-target-libvtv: maybe-all-target-newlib maybe-all-target-libgloss
 
-configure-target-liboffloadmic: maybe-all-target-newlib maybe-all-target-libgloss
-configure-target-liboffloadmic: maybe-all-target-libstdc++-v3
-
 configure-target-libssp: maybe-all-target-newlib maybe-all-target-libgloss
 
 
index 007a77a5f6c9988832c38a6792e196493d635a17..8899a67040b35fce0abf81153d6fd0dd14001b1b 100755 (executable)
--- a/configure
+++ b/configure
@@ -719,7 +719,6 @@ CPPFLAGS
 LDFLAGS
 CFLAGS
 CC
-extra_liboffloadmic_configure_flags
 target_subdir
 host_subdir
 build_subdir
@@ -805,7 +804,6 @@ enable_libquadmath_support
 enable_libada
 enable_libssp
 enable_libstdcxx
-enable_liboffloadmic
 enable_bootstrap
 enable_pgo_build
 with_mpc
@@ -1543,8 +1541,6 @@ Optional Features:
   --enable-libada         build libada directory
   --enable-libssp         build libssp directory
   --disable-libstdcxx     do not build libstdc++-v3 directory
-  --enable-liboffloadmic=ARG
-                          build liboffloadmic [ARG={no,host,target}]
   --enable-bootstrap      enable bootstrapping [yes if native build]
   --enable-pgo-build[=lto]
                           enable the PGO build
@@ -2825,7 +2821,6 @@ target_libraries="target-libgcc \
                target-libgloss \
                target-newlib \
                target-libgomp \
-               target-liboffloadmic \
                target-libatomic \
                target-libitm \
                target-libstdc++-v3 \
@@ -3199,44 +3194,6 @@ if test "${ENABLE_LIBSTDCXX}" = "no" ; then
   noconfigdirs="$noconfigdirs target-libstdc++-v3"
 fi
 
-# If this is accelerator compiler and its target is intelmic we enable
-# target liboffloadmic by default.  If this is compiler with offloading
-# for intelmic we enable host liboffloadmic by default.  Otherwise
-# liboffloadmic is disabled by default.
-# Check whether --enable-liboffloadmic was given.
-if test "${enable_liboffloadmic+set}" = set; then :
-  enableval=$enable_liboffloadmic; case "$enableval" in
-  no | host | target)
-    enable_liboffloadmic=$enableval ;;
-  *)
-    as_fn_error $? "--enable-liboffloadmic=no/host/target" "$LINENO" 5 ;;
-esac
-else
-  if test x"$enable_as_accelerator_for" != x; then
-  case "${target}" in
-    *-intelmic-* | *-intelmicemul-*)
-      enable_liboffloadmic=target
-      extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target"
-      ;;
-    *)
-      enable_liboffloadmic=no
-      ;;
-  esac
-else
-  case "${enable_offload_targets}" in
-    *-intelmic-* | *-intelmicemul-*)
-      enable_liboffloadmic=host
-      extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host"
-      ;;
-    *)
-      enable_liboffloadmic=no
-      ;;
-    esac
-fi
-fi
-
-
-
 # Enable libgomp by default on hosted POSIX systems, and a few others.
 if test x$enable_libgomp = x ; then
     case "${target}" in
@@ -3275,25 +3232,6 @@ $as_echo "yes" >&6; }
     fi
 fi
 
-# Disable liboffloadmic on unsupported systems.
-if test -d ${srcdir}/liboffloadmic; then
-    if test x$enable_liboffloadmic != xno; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for liboffloadmic support" >&5
-$as_echo_n "checking for liboffloadmic support... " >&6; }
-       if (srcdir=${srcdir}/liboffloadmic; \
-               . ${srcdir}/configure.tgt; \
-               test -n "$UNSUPPORTED")
-       then
-           { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-           noconfigdirs="$noconfigdirs target-liboffloadmic"
-       else
-           { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-       fi
-    fi
-fi
-
 # Disable libitm on unsupported systems.
 if test -d ${srcdir}/libitm; then
     if test x$enable_libitm = x; then
@@ -9083,7 +9021,7 @@ $as_echo "using paths configured with --with-target-bdw-gc options" >&6; }
   fi
 esac
 
-# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
+# Disable libitm, libsanitizer, libvtv if we're not building C++
 case ,${enable_languages}, in
   *,c++,*)
     # Disable libitm, libsanitizer if we're not building libstdc++
@@ -9095,7 +9033,7 @@ case ,${enable_languages}, in
     esac
     ;;
   *)
-    noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv"
+    noconfigdirs="$noconfigdirs target-libitm target-libsanitizer target-libvtv"
     ;;
 esac
 
index 1df410bba1f822701b87929e82c3826897874ebb..1eb689d68b1ce59f3ce8fb8c240cd9a1ff3f1be0 100644 (file)
@@ -150,7 +150,6 @@ target_libraries="target-libgcc \
                target-libgloss \
                target-newlib \
                target-libgomp \
-               target-liboffloadmic \
                target-libatomic \
                target-libitm \
                target-libstdc++-v3 \
@@ -479,42 +478,6 @@ ENABLE_LIBSTDCXX=default)
   noconfigdirs="$noconfigdirs target-libstdc++-v3"
 fi]
 
-# If this is accelerator compiler and its target is intelmic we enable
-# target liboffloadmic by default.  If this is compiler with offloading
-# for intelmic we enable host liboffloadmic by default.  Otherwise
-# liboffloadmic is disabled by default.
-AC_ARG_ENABLE([liboffloadmic],
-AC_HELP_STRING([[--enable-liboffloadmic[=ARG]]],
-              [build liboffloadmic @<:@ARG={no,host,target}@:>@]),
-[case "$enableval" in
-  no | host | target)
-    enable_liboffloadmic=$enableval ;;
-  *)
-    AC_MSG_ERROR([--enable-liboffloadmic=no/host/target]) ;;
-esac],
-[if test x"$enable_as_accelerator_for" != x; then
-  case "${target}" in
-    *-intelmic-* | *-intelmicemul-*)
-      enable_liboffloadmic=target
-      extra_liboffloadmic_configure_flags="--enable-liboffloadmic=target"
-      ;;
-    *)
-      enable_liboffloadmic=no
-      ;;
-  esac
-else
-  case "${enable_offload_targets}" in
-    *-intelmic-* | *-intelmicemul-*)
-      enable_liboffloadmic=host
-      extra_liboffloadmic_configure_flags="--enable-liboffloadmic=host"
-      ;;
-    *)
-      enable_liboffloadmic=no
-      ;;
-    esac
-fi])
-AC_SUBST(extra_liboffloadmic_configure_flags)
-
 # Enable libgomp by default on hosted POSIX systems, and a few others.
 if test x$enable_libgomp = x ; then
     case "${target}" in
@@ -550,22 +513,6 @@ if test -d ${srcdir}/libatomic; then
     fi
 fi
 
-# Disable liboffloadmic on unsupported systems.
-if test -d ${srcdir}/liboffloadmic; then
-    if test x$enable_liboffloadmic != xno; then
-       AC_MSG_CHECKING([for liboffloadmic support])
-       if (srcdir=${srcdir}/liboffloadmic; \
-               . ${srcdir}/configure.tgt; \
-               test -n "$UNSUPPORTED")
-       then
-           AC_MSG_RESULT([no])
-           noconfigdirs="$noconfigdirs target-liboffloadmic"
-       else
-           AC_MSG_RESULT([yes])
-       fi
-    fi
-fi
-
 # Disable libitm on unsupported systems.
 if test -d ${srcdir}/libitm; then
     if test x$enable_libitm = x; then
@@ -2334,7 +2281,7 @@ case ,${enable_languages},:${enable_objc_gc} in *,objc,*:yes|*,objc,*:auto)
   fi
 esac
 
-# Disable libitm, libsanitizer, libvtv, liboffloadmic if we're not building C++
+# Disable libitm, libsanitizer, libvtv if we're not building C++
 case ,${enable_languages}, in
   *,c++,*)
     # Disable libitm, libsanitizer if we're not building libstdc++
@@ -2346,7 +2293,7 @@ case ,${enable_languages}, in
     esac
     ;;
   *)
-    noconfigdirs="$noconfigdirs target-liboffloadmic target-libitm target-libsanitizer target-libvtv"
+    noconfigdirs="$noconfigdirs target-libitm target-libsanitizer target-libvtv"
     ;;
 esac
 
index 7f6ff87ba993aa858acbc56b4738f217322a5bc1..1f6e192082969f72a1a57d87007b3ef9036b5fe0 100755 (executable)
@@ -67,7 +67,6 @@ default_changelog_locations = {
     'libiberty',
     'libitm',
     'libobjc',
-    'liboffloadmic',
     'libphobos',
     'libquadmath',
     'libsanitizer',
index 18c7ec46264c9bf9bc28bdc6964f2b5f2e9f85d4..c5630df6c4cee84173c815c55e2963c0cb5657f7 100755 (executable)
@@ -162,12 +162,6 @@ libsanitizer/sanitizer_common/Makefile.in: libsanitizer/sanitizer_common/Makefil
 libvtv/aclocal.m4: libvtv/configure.ac libvtv/acinclude.m4
 libvtv/Makefile.in: libvtv/Makefile.am libvtv/aclocal.m4
 libvtv/configure: libvtv/configure.ac libvtv/aclocal.m4
-liboffloadmic/aclocal.m4: liboffloadmic/configure.ac
-liboffloadmic/Makefile.in: liboffloadmic/Makefile.am
-liboffloadmic/configure: liboffloadmic/configure.ac
-liboffloadmic/plugin/aclocal.m4: liboffloadmic/plugin/configure.ac
-liboffloadmic/plugin/Makefile.in: liboffloadmic/plugin/Makefile.am
-liboffloadmic/plugin/configure: liboffloadmic/plugin/configure.ac
 libbacktrace/aclocal.m4: libbacktrace/configure.ac
 libbacktrace/Makefile.in: libbacktrace/Makefile.am libbacktrace/aclocal.m4
 libbacktrace/configure: libbacktrace/configure.ac libbacktrace/aclocal.m4
index 2ec2a60f5d0209dd4b6df2fe4c0b0b886258753c..76614ffc4ea4e0ae062cd3366aaf27eb8767f3ba 100755 (executable)
@@ -760,7 +760,6 @@ class GCCCmdLine (CmdLine):
         self.add_dir ('libiberty')
         self.add_dir ('libitm')
         self.add_dir ('libobjc')
-        # liboffloadmic is imported from upstream.
         self.add_dir ('libphobos', LibPhobosFilter())
         self.add_dir ('libquadmath')
         # libsanitizer is imported from upstream.
index 1191a0df7b0c51fdb7b5b804994255b1fb45cba4..f41c0959fbe72b3659a2d9100e26b7bd3d9276d9 100644 (file)
@@ -3552,14 +3552,6 @@ case ${target} in
        ;;
 esac
 
-# Build mkoffload tool
-case ${target} in
-*-intelmic-* | *-intelmicemul-*)
-       tmake_file="${tmake_file} i386/t-intelmic"
-       tm_file="${tm_file} i386/intelmic-offload.h"
-       ;;
-esac
-
 if [ "$target_has_targetcm" = "no" ]; then
   c_target_objs="$c_target_objs default-c.o"
   cxx_target_objs="$cxx_target_objs default-c.o"
index bbb8307d0b0b39257084ad09e19bdc4f66f8d0fe..2c16dc0cf96d4412d22c887e30c81daecbc69936 100644 (file)
@@ -314,10 +314,6 @@ ix86_omp_device_kind_arch_isa (enum omp_device_kind_arch_isa trait,
     case omp_device_kind:
       return strcmp (name, "cpu") == 0;
     case omp_device_arch:
-#ifdef ACCEL_COMPILER
-      if (strcmp (name, "intel_mic") == 0)
-       return 1;
-#endif
       if (strcmp (name, "x86") == 0)
        return 1;
       if (TARGET_64BIT)
diff --git a/gcc/config/i386/intelmic-mkoffload.cc b/gcc/config/i386/intelmic-mkoffload.cc
deleted file mode 100644 (file)
index 5deddff..0000000
+++ /dev/null
@@ -1,728 +0,0 @@
-/* Offload image generation tool for Intel MIC devices.
-
-   Copyright (C) 2014-2022 Free Software Foundation, Inc.
-
-   Contributed by Ilya Verbin <ilya.verbin@intel.com>.
-
-   This file is part of GCC.
-
-   GCC is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GCC; see the file COPYING3.  If not see
-   <http://www.gnu.org/licenses/>.  */
-
-#define IN_TARGET_CODE 1
-
-#include "config.h"
-#include <libgen.h>
-#include "system.h"
-#include "coretypes.h"
-#include "obstack.h"
-#include "intl.h"
-#include "diagnostic.h"
-#include "collect-utils.h"
-#include "intelmic-offload.h"
-
-const char tool_name[] = "intelmic mkoffload";
-
-const char image_section_name[] = ".gnu.offload_images";
-const char *symbols[3] = { "__offload_image_intelmic_start",
-                          "__offload_image_intelmic_end",
-                          "__offload_image_intelmic_size" };
-const char *out_obj_filename = NULL;
-
-int num_temps = 0;
-const int MAX_NUM_TEMPS = 10;
-const char *temp_files[MAX_NUM_TEMPS];
-
-enum offload_abi offload_abi = OFFLOAD_ABI_UNSET;
-
-/* Delete tempfiles and exit function.  */
-
-void
-tool_cleanup (bool from_signal ATTRIBUTE_UNUSED)
-{
-  for (int i = 0; i < num_temps; i++)
-    maybe_unlink (temp_files[i]);
-}
-
-static void
-mkoffload_cleanup (void)
-{
-  tool_cleanup (false);
-}
-
-/* Unlink FILE unless requested otherwise.  */
-
-void
-maybe_unlink (const char *file)
-{
-  if (!save_temps)
-    {
-      if (unlink_if_ordinary (file)
-         && errno != ENOENT)
-       fatal_error (input_location, "deleting file %s: %m", file);
-    }
-  else if (verbose)
-    fprintf (stderr, "[Leaving %s]\n", file);
-}
-
-/* Add or change the value of an environment variable, outputting the
-   change to standard error if in verbose mode.  */
-static void
-xputenv (const char *string)
-{
-  if (verbose)
-    fprintf (stderr, "%s\n", string);
-  putenv (CONST_CAST (char *, string));
-}
-
-/* Parse STR, saving found tokens into PVALUES and return their number.
-   Tokens are assumed to be delimited by ':'.  */
-static unsigned
-parse_env_var (const char *str, char ***pvalues)
-{
-  const char *curval, *nextval;
-  char **values;
-  unsigned num = 1, i;
-
-  curval = strchr (str, ':');
-  while (curval)
-    {
-      num++;
-      curval = strchr (curval + 1, ':');
-    }
-
-  values = (char **) xmalloc (num * sizeof (char *));
-  curval = str;
-  nextval = strchr (curval, ':');
-  if (nextval == NULL)
-    nextval = strchr (curval, '\0');
-
-  for (i = 0; i < num; i++)
-    {
-      int l = nextval - curval;
-      values[i] = (char *) xmalloc (l + 1);
-      memcpy (values[i], curval, l);
-      values[i][l] = 0;
-      curval = nextval + 1;
-      nextval = strchr (curval, ':');
-      if (nextval == NULL)
-       nextval = strchr (curval, '\0');
-    }
-  *pvalues = values;
-  return num;
-}
-
-/* Auxiliary function that frees elements of PTR and PTR itself.
-   N is number of elements to be freed.  If PTR is NULL, nothing is freed.
-   If an element is NULL, subsequent elements are not freed.  */
-static void
-free_array_of_ptrs (void **ptr, unsigned n)
-{
-  unsigned i;
-  if (!ptr)
-    return;
-  for (i = 0; i < n; i++)
-    {
-      if (!ptr[i])
-       break;
-      free (ptr[i]);
-    }
-  free (ptr);
-  return;
-}
-
-/* Check whether NAME can be accessed in MODE.  This is like access,
-   except that it never considers directories to be executable.  */
-static int
-access_check (const char *name, int mode)
-{
-  if (mode == X_OK)
-    {
-      struct stat st;
-
-      if (stat (name, &st) < 0 || S_ISDIR (st.st_mode))
-       return -1;
-    }
-
-  return access (name, mode);
-}
-
-/* Find target compiler using a path from COLLECT_GCC or COMPILER_PATH.  */
-static char *
-find_target_compiler (const char *name)
-{
-  bool found = false;
-  char **paths = NULL;
-  unsigned n_paths, i;
-  char *target_compiler;
-  const char *collect_gcc = getenv ("COLLECT_GCC");
-  const char *gcc_path = dirname (ASTRDUP (collect_gcc));
-  const char *gcc_exec = basename (ASTRDUP (collect_gcc));
-
-  if (strcmp (gcc_exec, collect_gcc) == 0)
-    {
-      /* collect_gcc has no path, so it was found in PATH.  Make sure we also
-        find accel-gcc in PATH.  */
-      target_compiler = XDUPVEC (char, name, strlen (name) + 1);
-      found = true;
-      goto out;
-    }
-
-  target_compiler = concat (gcc_path, "/", name, NULL);
-  if (access_check (target_compiler, X_OK) == 0)
-    {
-      found = true;
-      goto out;
-    }
-
-  n_paths = parse_env_var (getenv ("COMPILER_PATH"), &paths);
-  for (i = 0; i < n_paths; i++)
-    {
-      size_t len = strlen (paths[i]) + 1 + strlen (name) + 1;
-      target_compiler = XRESIZEVEC (char, target_compiler, len);
-      sprintf (target_compiler, "%s/%s", paths[i], name);
-      if (access_check (target_compiler, X_OK) == 0)
-       {
-         found = true;
-         break;
-       }
-    }
-
-out:
-  free_array_of_ptrs ((void **) paths, n_paths);
-  return found ? target_compiler : NULL;
-}
-
-static void
-compile_for_target (struct obstack *argv_obstack)
-{
-  switch (offload_abi)
-    {
-    case OFFLOAD_ABI_LP64:
-      obstack_ptr_grow (argv_obstack, "-m64");
-      break;
-    case OFFLOAD_ABI_ILP32:
-      obstack_ptr_grow (argv_obstack, "-m32");
-      break;
-    default:
-      gcc_unreachable ();
-    }
-  obstack_ptr_grow (argv_obstack, NULL);
-  char **argv = XOBFINISH (argv_obstack, char **);
-
-  /* Save environment variables.  */
-  const char *epath = getenv ("GCC_EXEC_PREFIX");
-  const char *cpath = getenv ("COMPILER_PATH");
-  const char *lpath = getenv ("LIBRARY_PATH");
-  const char *rpath = getenv ("LD_RUN_PATH");
-  unsetenv ("GCC_EXEC_PREFIX");
-  unsetenv ("COMPILER_PATH");
-  unsetenv ("LIBRARY_PATH");
-  unsetenv ("LD_RUN_PATH");
-
-  fork_execute (argv[0], argv, false, NULL);
-  obstack_free (argv_obstack, NULL);
-
-  /* Restore environment variables.  */
-  xputenv (concat ("GCC_EXEC_PREFIX=", epath, NULL));
-  xputenv (concat ("COMPILER_PATH=", cpath, NULL));
-  xputenv (concat ("LIBRARY_PATH=", lpath, NULL));
-  xputenv (concat ("LD_RUN_PATH=", rpath, NULL));
-}
-
-/* Generates object file with the descriptor for the target library.  */
-static const char *
-generate_target_descr_file (const char *target_compiler)
-{
-  char *dump_filename = concat (dumppfx, "_target_descr.c", NULL);
-  const char *src_filename = save_temps
-    ? dump_filename
-    : make_temp_file ("_target_descr.c");
-  const char *obj_filename = save_temps
-    ? concat (dumppfx, "_target_descr.o", NULL)
-    : make_temp_file ("_target_descr.o");
-  temp_files[num_temps++] = src_filename;
-  temp_files[num_temps++] = obj_filename;
-  FILE *src_file = fopen (src_filename, "w");
-
-  if (!src_file)
-    fatal_error (input_location, "cannot open '%s'", src_filename);
-
-  fprintf (src_file,
-          "extern const void *const __offload_funcs_end[];\n"
-          "extern const void *const __offload_vars_end[];\n\n"
-
-          "const void *const __offload_func_table[0]\n"
-          "__attribute__ ((__used__, visibility (\"hidden\"),\n"
-          "section (\".gnu.offload_funcs\"))) = { };\n\n"
-
-          "const void *const __offload_var_table[0]\n"
-          "__attribute__ ((__used__, visibility (\"hidden\"),\n"
-          "section (\".gnu.offload_vars\"))) = { };\n\n"
-
-          "const void *const __OFFLOAD_TARGET_TABLE__[]\n"
-          "__attribute__ ((__used__, visibility (\"hidden\"))) = {\n"
-          "  &__offload_func_table, &__offload_funcs_end,\n"
-          "  &__offload_var_table, &__offload_vars_end\n"
-          "};\n\n");
-
-  fprintf (src_file,
-          "#ifdef __cplusplus\n"
-          "extern \"C\"\n"
-          "#endif\n"
-          "void target_register_lib (const void *);\n\n"
-
-          "__attribute__((constructor))\n"
-          "static void\n"
-          "init (void)\n"
-          "{\n"
-          "  target_register_lib (__OFFLOAD_TARGET_TABLE__);\n"
-          "}\n");
-  fclose (src_file);
-
-  struct obstack argv_obstack;
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, target_compiler);
-  if (save_temps)
-    obstack_ptr_grow (&argv_obstack, "-save-temps");
-  if (verbose)
-    obstack_ptr_grow (&argv_obstack, "-v");
-  obstack_ptr_grow (&argv_obstack, "-dumpdir");
-  obstack_ptr_grow (&argv_obstack, "");
-  obstack_ptr_grow (&argv_obstack, "-dumpbase");
-  obstack_ptr_grow (&argv_obstack, dump_filename);
-  obstack_ptr_grow (&argv_obstack, "-dumpbase-ext");
-  obstack_ptr_grow (&argv_obstack, ".c");
-  obstack_ptr_grow (&argv_obstack, "-c");
-  obstack_ptr_grow (&argv_obstack, "-shared");
-  obstack_ptr_grow (&argv_obstack, "-fPIC");
-  obstack_ptr_grow (&argv_obstack, src_filename);
-  obstack_ptr_grow (&argv_obstack, "-o");
-  obstack_ptr_grow (&argv_obstack, obj_filename);
-  compile_for_target (&argv_obstack);
-
-  return obj_filename;
-}
-
-/* Generates object file with __offload_*_end symbols for the target
-   library.  */
-static const char *
-generate_target_offloadend_file (const char *target_compiler)
-{
-  char *dump_filename = concat (dumppfx, "_target_offloadend.c", NULL);
-  const char *src_filename = save_temps
-    ? dump_filename
-    : make_temp_file ("_target_offloadend.c");
-  const char *obj_filename = save_temps
-    ? concat (dumppfx, "_target_offloadend.o", NULL)
-    : make_temp_file ("_target_offloadend.o");
-  temp_files[num_temps++] = src_filename;
-  temp_files[num_temps++] = obj_filename;
-  FILE *src_file = fopen (src_filename, "w");
-
-  if (!src_file)
-    fatal_error (input_location, "cannot open '%s'", src_filename);
-
-  fprintf (src_file,
-          "const void *const __offload_funcs_end[0]\n"
-          "__attribute__ ((__used__, visibility (\"hidden\"),\n"
-          "section (\".gnu.offload_funcs\"))) = { };\n\n"
-
-          "const void *const __offload_vars_end[0]\n"
-          "__attribute__ ((__used__, visibility (\"hidden\"),\n"
-          "section (\".gnu.offload_vars\"))) = { };\n");
-  fclose (src_file);
-
-  struct obstack argv_obstack;
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, target_compiler);
-  if (save_temps)
-    obstack_ptr_grow (&argv_obstack, "-save-temps");
-  if (verbose)
-    obstack_ptr_grow (&argv_obstack, "-v");
-  obstack_ptr_grow (&argv_obstack, "-dumpdir");
-  obstack_ptr_grow (&argv_obstack, "");
-  obstack_ptr_grow (&argv_obstack, "-dumpbase");
-  obstack_ptr_grow (&argv_obstack, dump_filename);
-  obstack_ptr_grow (&argv_obstack, "-dumpbase-ext");
-  obstack_ptr_grow (&argv_obstack, ".c");
-  obstack_ptr_grow (&argv_obstack, "-c");
-  obstack_ptr_grow (&argv_obstack, "-shared");
-  obstack_ptr_grow (&argv_obstack, "-fPIC");
-  obstack_ptr_grow (&argv_obstack, src_filename);
-  obstack_ptr_grow (&argv_obstack, "-o");
-  obstack_ptr_grow (&argv_obstack, obj_filename);
-  compile_for_target (&argv_obstack);
-
-  return obj_filename;
-}
-
-/* Generates object file with the host side descriptor.  */
-static const char *
-generate_host_descr_file (const char *host_compiler, uint32_t omp_requires)
-{
-  char *dump_filename = concat (dumppfx, "_host_descr.c", NULL);
-  const char *src_filename = save_temps
-    ? dump_filename
-    : make_temp_file ("_host_descr.c");
-  const char *obj_filename = save_temps
-    ? concat (dumppfx, "_host_descr.o", NULL)
-    : make_temp_file ("_host_descr.o");
-  temp_files[num_temps++] = src_filename;
-  temp_files[num_temps++] = obj_filename;
-  FILE *src_file = fopen (src_filename, "w");
-
-  if (!src_file)
-    fatal_error (input_location, "cannot open '%s'", src_filename);
-
-  fprintf (src_file, "#include <stdint.h>\n\n");
-
-  fprintf (src_file,
-          "extern const void *const __OFFLOAD_TABLE__;\n"
-          "extern const void *const __offload_image_intelmic_start;\n"
-          "extern const void *const __offload_image_intelmic_end;\n\n"
-
-          "static const struct intelmic_data {\n"
-          "  uintptr_t omp_requires_mask;\n"
-          "  const void *const image_start;\n"
-          "  const void *const image_end;\n"
-          "} intelmic_data = {\n"
-          "  %d,\n"
-          "  &__offload_image_intelmic_start, &__offload_image_intelmic_end\n"
-          "};\n\n", omp_requires);
-
-  fprintf (src_file,
-          "#ifdef __cplusplus\n"
-          "extern \"C\"\n"
-          "#endif\n"
-          "void GOMP_offload_register_ver (unsigned, const void *, int, const void *);\n"
-          "#ifdef __cplusplus\n"
-          "extern \"C\"\n"
-          "#endif\n"
-          "void GOMP_offload_unregister_ver (unsigned, const void *, int, const void *);\n\n"
-
-          "__attribute__((constructor))\n"
-          "static void\n"
-          "init (void)\n"
-          "{\n"
-          "  GOMP_offload_register_ver (%#x, &__OFFLOAD_TABLE__, %d, &intelmic_data);\n"
-          "}\n\n",
-          GOMP_VERSION_PACK (GOMP_VERSION, GOMP_VERSION_INTEL_MIC),
-          GOMP_DEVICE_INTEL_MIC);
-
-  fprintf (src_file,
-          "__attribute__((destructor))\n"
-          "static void\n"
-          "fini (void)\n"
-          "{\n"
-          "  GOMP_offload_unregister_ver (%#x, &__OFFLOAD_TABLE__, %d, &intelmic_data);\n"
-          "}\n",
-          GOMP_VERSION_PACK (GOMP_VERSION, GOMP_VERSION_INTEL_MIC),
-          GOMP_DEVICE_INTEL_MIC);
-
-  fclose (src_file);
-
-  struct obstack argv_obstack;
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, host_compiler);
-  if (save_temps)
-    obstack_ptr_grow (&argv_obstack, "-save-temps");
-  if (verbose)
-    obstack_ptr_grow (&argv_obstack, "-v");
-  obstack_ptr_grow (&argv_obstack, "-dumpdir");
-  obstack_ptr_grow (&argv_obstack, "");
-  obstack_ptr_grow (&argv_obstack, "-dumpbase");
-  obstack_ptr_grow (&argv_obstack, dump_filename);
-  obstack_ptr_grow (&argv_obstack, "-dumpbase-ext");
-  obstack_ptr_grow (&argv_obstack, ".c");
-  obstack_ptr_grow (&argv_obstack, "-c");
-  obstack_ptr_grow (&argv_obstack, "-fPIC");
-  obstack_ptr_grow (&argv_obstack, "-shared");
-  switch (offload_abi)
-    {
-    case OFFLOAD_ABI_LP64:
-      obstack_ptr_grow (&argv_obstack, "-m64");
-      break;
-    case OFFLOAD_ABI_ILP32:
-      obstack_ptr_grow (&argv_obstack, "-m32");
-      break;
-    default:
-      gcc_unreachable ();
-    }
-  obstack_ptr_grow (&argv_obstack, src_filename);
-  obstack_ptr_grow (&argv_obstack, "-o");
-  obstack_ptr_grow (&argv_obstack, obj_filename);
-  obstack_ptr_grow (&argv_obstack, NULL);
-
-  char **argv = XOBFINISH (&argv_obstack, char **);
-  fork_execute (argv[0], argv, false, NULL);
-  obstack_free (&argv_obstack, NULL);
-
-  return obj_filename;
-}
-
-static const char *
-prepare_target_image (const char *target_compiler, int argc, char **argv, uint32_t *omp_requires)
-{
-  const char *target_descr_filename
-    = generate_target_descr_file (target_compiler);
-  const char *target_offloadend_filename
-    = generate_target_offloadend_file (target_compiler);
-
-  char *opt1
-    = XALLOCAVEC (char, sizeof ("-Wl,") + strlen (target_descr_filename));
-  char *opt2
-    = XALLOCAVEC (char, sizeof ("-Wl,") + strlen (target_offloadend_filename));
-  sprintf (opt1, "-Wl,%s", target_descr_filename);
-  sprintf (opt2, "-Wl,%s", target_offloadend_filename);
-
-  char *dump_filename = concat (dumppfx, ".mkoffload", NULL);
-  const char *target_so_filename = save_temps
-    ? concat (dumppfx, "_offload_intelmic.so", NULL)
-    : make_temp_file ("_offload_intelmic.so");
-  temp_files[num_temps++] = target_so_filename;
-  struct obstack argv_obstack;
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, target_compiler);
-  if (save_temps)
-    obstack_ptr_grow (&argv_obstack, "-save-temps");
-  if (verbose)
-    obstack_ptr_grow (&argv_obstack, "-v");
-  obstack_ptr_grow (&argv_obstack, "-xlto");
-  obstack_ptr_grow (&argv_obstack, opt1);
-  for (int i = 1; i < argc; i++)
-    {
-      if (!strcmp (argv[i], "-o") && i + 1 != argc)
-       ++i;
-      else
-       obstack_ptr_grow (&argv_obstack, argv[i]);
-    }
-  obstack_ptr_grow (&argv_obstack, opt2);
-  /* NB: Put -fPIC and -shared the last to create shared library.  */
-  obstack_ptr_grow (&argv_obstack, "-fPIC");
-  obstack_ptr_grow (&argv_obstack, "-shared");
-  obstack_ptr_grow (&argv_obstack, "-dumpdir");
-  obstack_ptr_grow (&argv_obstack, "");
-  obstack_ptr_grow (&argv_obstack, "-dumpbase");
-  obstack_ptr_grow (&argv_obstack, dump_filename);
-  obstack_ptr_grow (&argv_obstack, "-dumpbase-ext");
-  obstack_ptr_grow (&argv_obstack, "");
-  obstack_ptr_grow (&argv_obstack, "-o");
-  obstack_ptr_grow (&argv_obstack, target_so_filename);
-
-  char *omp_requires_file;
-  if (save_temps)
-    omp_requires_file = concat (dumppfx, ".mkoffload.omp_requires", NULL);
-  else
-    omp_requires_file = make_temp_file (".mkoffload.omp_requires");
-  temp_files[num_temps++] = omp_requires_file;
-  xputenv (concat ("GCC_OFFLOAD_OMP_REQUIRES_FILE=", omp_requires_file, NULL));
-
-  compile_for_target (&argv_obstack);
-
-  unsetenv("GCC_OFFLOAD_OMP_REQUIRES_FILE");
-  FILE *in = fopen (omp_requires_file, "rb");
-  if (!in)
-    fatal_error (input_location, "cannot open omp_requires file %qs",
-                omp_requires_file);
-  if (fread (omp_requires, sizeof (*omp_requires), 1, in) != 1)
-    fatal_error (input_location, "cannot read omp_requires file %qs",
-                omp_requires_file);
-  fclose (in);
-
-  /* Run objcopy.  */
-  char *rename_section_opt
-    = XALLOCAVEC (char, sizeof (".data=") + strlen (image_section_name));
-  sprintf (rename_section_opt, ".data=%s", image_section_name);
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, "objcopy");
-  obstack_ptr_grow (&argv_obstack, "-B");
-  obstack_ptr_grow (&argv_obstack, "i386");
-  obstack_ptr_grow (&argv_obstack, "-I");
-  obstack_ptr_grow (&argv_obstack, "binary");
-  obstack_ptr_grow (&argv_obstack, "-O");
-  switch (offload_abi)
-    {
-    case OFFLOAD_ABI_LP64:
-      obstack_ptr_grow (&argv_obstack, "elf64-x86-64");
-      break;
-    case OFFLOAD_ABI_ILP32:
-      obstack_ptr_grow (&argv_obstack, "elf32-i386");
-      break;
-    default:
-      gcc_unreachable ();
-    }
-  obstack_ptr_grow (&argv_obstack, target_so_filename);
-  obstack_ptr_grow (&argv_obstack, "--rename-section");
-  obstack_ptr_grow (&argv_obstack, rename_section_opt);
-  obstack_ptr_grow (&argv_obstack, NULL);
-  char **new_argv = XOBFINISH (&argv_obstack, char **);
-  fork_execute (new_argv[0], new_argv, false, NULL);
-  obstack_free (&argv_obstack, NULL);
-
-  /* Objcopy has created symbols, containing the input file name with
-     non-alphanumeric characters replaced by underscores.
-     We are going to rename these new symbols.  */
-  size_t symbol_name_len = strlen (target_so_filename);
-  char *symbol_name = XALLOCAVEC (char, symbol_name_len + 1);
-  for (size_t i = 0; i < symbol_name_len; i++)
-    {
-      char c = target_so_filename[i];
-      if (!ISALNUM (c))
-       c = '_';
-      symbol_name[i] = c;
-    }
-  symbol_name[symbol_name_len] = '\0';
-
-  char *opt_for_objcopy[3];
-  opt_for_objcopy[0] = XALLOCAVEC (char, sizeof ("_binary__start=")
-                                        + symbol_name_len
-                                        + strlen (symbols[0]));
-  opt_for_objcopy[1] = XALLOCAVEC (char, sizeof ("_binary__end=")
-                                        + symbol_name_len
-                                        + strlen (symbols[1]));
-  opt_for_objcopy[2] = XALLOCAVEC (char, sizeof ("_binary__size=")
-                                        + symbol_name_len
-                                        + strlen (symbols[2]));
-  sprintf (opt_for_objcopy[0], "_binary_%s_start=%s", symbol_name, symbols[0]);
-  sprintf (opt_for_objcopy[1], "_binary_%s_end=%s", symbol_name, symbols[1]);
-  sprintf (opt_for_objcopy[2], "_binary_%s_size=%s", symbol_name, symbols[2]);
-
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, "objcopy");
-  obstack_ptr_grow (&argv_obstack, target_so_filename);
-  obstack_ptr_grow (&argv_obstack, "--redefine-sym");
-  obstack_ptr_grow (&argv_obstack, opt_for_objcopy[0]);
-  obstack_ptr_grow (&argv_obstack, "--redefine-sym");
-  obstack_ptr_grow (&argv_obstack, opt_for_objcopy[1]);
-  obstack_ptr_grow (&argv_obstack, "--redefine-sym");
-  obstack_ptr_grow (&argv_obstack, opt_for_objcopy[2]);
-  obstack_ptr_grow (&argv_obstack, NULL);
-  new_argv = XOBFINISH (&argv_obstack, char **);
-  fork_execute (new_argv[0], new_argv, false, NULL);
-  obstack_free (&argv_obstack, NULL);
-
-  return target_so_filename;
-}
-
-int
-main (int argc, char **argv)
-{
-  progname = "mkoffload-intelmic";
-  gcc_init_libintl ();
-  diagnostic_initialize (global_dc, 0);
-
-  if (atexit (mkoffload_cleanup) != 0)
-    fatal_error (input_location, "atexit failed");
-
-  const char *host_compiler = getenv ("COLLECT_GCC");
-  if (!host_compiler)
-    fatal_error (input_location, "COLLECT_GCC must be set");
-
-  const char *target_driver_name = GCC_INSTALL_NAME;
-  char *target_compiler = find_target_compiler (target_driver_name);
-  if (target_compiler == NULL)
-    fatal_error (input_location, "offload compiler %s not found",
-                target_driver_name);
-
-  /* We may be called with all the arguments stored in some file and
-     passed with @file.  Expand them into argv before processing.  */
-  expandargv (&argc, &argv);
-
-  /* Scan the argument vector.  */
-  for (int i = 1; i < argc; i++)
-    {
-#define STR "-foffload-abi="
-      if (startswith (argv[i], STR))
-       {
-         if (strcmp (argv[i] + strlen (STR), "lp64") == 0)
-           offload_abi = OFFLOAD_ABI_LP64;
-         else if (strcmp (argv[i] + strlen (STR), "ilp32") == 0)
-           offload_abi = OFFLOAD_ABI_ILP32;
-         else
-           fatal_error (input_location,
-                        "unrecognizable argument of option " STR);
-       }
-#undef STR
-      else if (strcmp (argv[i], "-save-temps") == 0)
-       save_temps = true;
-      else if (strcmp (argv[i], "-v") == 0)
-       verbose = true;
-      else if (strcmp (argv[i], "-dumpbase") == 0
-              && i + 1 < argc)
-       dumppfx = argv[++i];
-      else if (strcmp (argv[i], "-o") == 0
-              && i + 1 < argc)
-       out_obj_filename = argv[++i];
-    }
-
-  if (!out_obj_filename)
-    fatal_error (input_location, "output file not specified");
-
-  if (!dumppfx)
-    dumppfx = out_obj_filename;
-
-  uint32_t omp_requires;
-
-  const char *target_so_filename
-    = prepare_target_image (target_compiler, argc, argv, &omp_requires);
-
-  const char *host_descr_filename
-    = generate_host_descr_file (host_compiler, omp_requires);
-
-  /* Perform partial linking for the target image and host side descriptor.
-     As a result we'll get a finalized object file with all offload data.  */
-  struct obstack argv_obstack;
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, "ld");
-  obstack_ptr_grow (&argv_obstack, "-m");
-  switch (offload_abi)
-    {
-    case OFFLOAD_ABI_LP64:
-      obstack_ptr_grow (&argv_obstack, "elf_x86_64");
-      break;
-    case OFFLOAD_ABI_ILP32:
-      obstack_ptr_grow (&argv_obstack, "elf_i386");
-      break;
-    default:
-      gcc_unreachable ();
-    }
-  obstack_ptr_grow (&argv_obstack, "--relocatable");
-  obstack_ptr_grow (&argv_obstack, host_descr_filename);
-  obstack_ptr_grow (&argv_obstack, target_so_filename);
-  obstack_ptr_grow (&argv_obstack, "-o");
-  obstack_ptr_grow (&argv_obstack, out_obj_filename);
-  obstack_ptr_grow (&argv_obstack, NULL);
-  char **new_argv = XOBFINISH (&argv_obstack, char **);
-  fork_execute (new_argv[0], new_argv, false, NULL);
-  obstack_free (&argv_obstack, NULL);
-
-  /* Run objcopy on the resultant object file to localize generated symbols
-     to avoid conflicting between different DSO and an executable.  */
-  obstack_init (&argv_obstack);
-  obstack_ptr_grow (&argv_obstack, "objcopy");
-  obstack_ptr_grow (&argv_obstack, "-L");
-  obstack_ptr_grow (&argv_obstack, symbols[0]);
-  obstack_ptr_grow (&argv_obstack, "-L");
-  obstack_ptr_grow (&argv_obstack, symbols[1]);
-  obstack_ptr_grow (&argv_obstack, "-L");
-  obstack_ptr_grow (&argv_obstack, symbols[2]);
-  obstack_ptr_grow (&argv_obstack, out_obj_filename);
-  obstack_ptr_grow (&argv_obstack, NULL);
-  new_argv = XOBFINISH (&argv_obstack, char **);
-  fork_execute (new_argv[0], new_argv, false, NULL);
-  obstack_free (&argv_obstack, NULL);
-
-  return 0;
-}
diff --git a/gcc/config/i386/intelmic-offload.h b/gcc/config/i386/intelmic-offload.h
deleted file mode 100644 (file)
index 42ce0d8..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Support for Intel MIC offloading.
-
-   Copyright (C) 2014-2022 Free Software Foundation, Inc.
-
-   This file is part of GCC.
-
-   GCC is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   GCC is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#ifndef INTELMIC_OFFLOAD_H
-#define INTELMIC_OFFLOAD_H
-
-/* Support for OpenACC acc_on_device.  */
-
-#include "gomp-constants.h"
-
-#define ACCEL_COMPILER_acc_device GOMP_DEVICE_INTEL_MIC
-
-#endif
diff --git a/gcc/config/i386/t-intelmic b/gcc/config/i386/t-intelmic
deleted file mode 100644 (file)
index 95d7e53..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-CFLAGS-mkoffload.o += $(DRIVER_DEFINES) -DGCC_INSTALL_NAME=\"$(GCC_INSTALL_NAME)\"
-
-mkoffload.o: $(srcdir)/config/i386/intelmic-mkoffload.cc
-       $(COMPILE) $<
-       $(POSTCOMPILE)
-ALL_HOST_OBJS += mkoffload.o
-
-mkoffload$(exeext): mkoffload.o collect-utils.o libcommon-target.a $(LIBIBERTY) $(LIBDEPS)
-       $(LINKER) $(ALL_LINKERFLAGS) $(LDFLAGS) -o $@ \
-         mkoffload.o collect-utils.o libcommon-target.a $(LIBIBERTY) $(LIBS)
diff --git a/gcc/config/i386/t-omp-device b/gcc/config/i386/t-omp-device
deleted file mode 100644 (file)
index cfb41ed..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-omp-device-properties-i386: $(srcdir)/config/i386/i386-options.cc
-       echo kind: cpu > $@
-       echo arch: intel_mic x86 x86_64 i386 i486 i586 i686 ia32 >> $@
-       echo isa: sse4 `sed -n '/^static struct ix86_target_opts isa2\?_opts\[\] =/,/^};/p' \
-         $(srcdir)/config/i386/i386-options.cc | \
-         sed -n 's/",.*$$//;s/^  { "-m//p'` >> $@
index e55c6566e89da11edd212d8b111de728b41dd0f5..aa0960991c92f130f53edcf70cc959b106efefe1 100755 (executable)
@@ -8253,12 +8253,6 @@ if test x"$enable_as_accelerator_for" != x; then
 $as_echo "#define ACCEL_COMPILER 1" >>confdefs.h
 
   enable_as_accelerator=yes
-  case "${target}" in
-    *-intelmicemul-*)
-      # In this case we expect offload compiler to be built as native, so we
-      # need to rename the driver to avoid clashes with host's drivers.
-      program_transform_name="s&^&${target}-&" ;;
-  esac
   sedscript="s#${target_noncanonical}#${enable_as_accelerator_for}-accel-${target_noncanonical}#"
   program_transform_name=`echo $program_transform_name | sed $sedscript`
   accel_dir_suffix=/accel/${target_noncanonical}
@@ -8273,10 +8267,6 @@ for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
 
   enable_offloading=1
   case "$tgt" in
-    *-intelmic-* | *-intelmicemul-*)
-       omp_device_property=omp-device-properties-i386
-       omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/i386/t-omp-device"
-       ;;
     amdgcn*)
        omp_device_property=omp-device-properties-gcn
        omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/gcn/t-omp-device"
@@ -19720,7 +19710,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 19723 "configure"
+#line 19713 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -19826,7 +19816,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 19829 "configure"
+#line 19819 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
index 9ca77797894e9756e51fc20dc0814ff5fcae0e2f..7c55bff6cb0621a49f3d2fa95e5b6532344e64c3 100644 (file)
@@ -1136,12 +1136,6 @@ if test x"$enable_as_accelerator_for" != x; then
   AC_DEFINE(ACCEL_COMPILER, 1,
     [Define if this compiler should be built as the offload target compiler.])
   enable_as_accelerator=yes
-  case "${target}" in
-    *-intelmicemul-*)
-      # In this case we expect offload compiler to be built as native, so we
-      # need to rename the driver to avoid clashes with host's drivers.
-      program_transform_name="s&^&${target}-&" ;;
-  esac
   sedscript="s#${target_noncanonical}#${enable_as_accelerator_for}-accel-${target_noncanonical}#"
   program_transform_name=`echo $program_transform_name | sed $sedscript`
   accel_dir_suffix=/accel/${target_noncanonical}
@@ -1156,10 +1150,6 @@ for tgt in `echo $enable_offload_targets | sed 's/,/ /g'`; do
 
   enable_offloading=1
   case "$tgt" in
-    *-intelmic-* | *-intelmicemul-*)
-       omp_device_property=omp-device-properties-i386
-       omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/i386/t-omp-device"
-       ;;
     amdgcn*)
        omp_device_property=omp-device-properties-gcn
        omp_device_property_tmake_file="${omp_device_property_tmake_file} \$(srcdir)/config/gcn/t-omp-device"
index c1876f24a84c096d83cd66b896631f74810e408c..a01b8053afef58f5553e9c6c888f6ae9b364773a 100644 (file)
@@ -2337,7 +2337,7 @@ specifying paths @var{path1}, @dots{}, @var{pathN}.
 
 @smallexample
 % @var{srcdir}/configure \
-    --enable-offload-targets=x86_64-intelmicemul-linux-gnu=/path/to/x86_64/compiler,nvptx-none
+    --enable-offload-targets=amdgcn-amdhsa,nvptx-none
 @end smallexample
 
 @item --enable-offload-defaulted
index 5de5e9576d55676cb1ee729773d05ee304507a44..17a6f21f7b055a4805684c38efc67b4d61a43ad0 100644 (file)
@@ -116,9 +116,6 @@ The runtime support library for transactional memory.
 @item libobjc
 The Objective-C and Objective-C++ runtime library.
 
-@item liboffloadmic
-A library to allow OpenMP to Intel MIC targets.
-
 @item libphobos
 The D standard and runtime library.  The bulk of this library is mirrored
 from the @uref{https://github.com/@/dlang, master D repositories}.
index fac7316b858384eb356326efe51667d3db08426d..dfee037f40ec059c7258e67ca906822fa025aaa4 100644 (file)
@@ -229,7 +229,7 @@ enum gomp_map_kind
 /* #define GOMP_DEVICE_HOST_NONSHM     3 removed.  */
 #define GOMP_DEVICE_NOT_HOST           4
 #define GOMP_DEVICE_NVIDIA_PTX         5
-#define GOMP_DEVICE_INTEL_MIC          6
+/* #define GOMP_DEVICE_INTEL_MIC       6 removed.  */
 /* #define GOMP_DEVICE_HSA             7 removed.  */
 #define GOMP_DEVICE_GCN                        8
 
@@ -284,7 +284,6 @@ enum gomp_map_kind
    to the plugin interface defined in libgomp/libgomp.h.  */
 #define GOMP_VERSION   2
 #define GOMP_VERSION_NVIDIA_PTX 1
-#define GOMP_VERSION_INTEL_MIC 0
 #define GOMP_VERSION_GCN 2
 
 #define GOMP_VERSION_PACK(LIB, DEV) (((LIB) << 16) | (DEV))
index 35424d2e21f53a92e27a947b0b1d78f148379220..45a769eb10a4294be62a872a844c021b419513a9 100755 (executable)
@@ -15200,9 +15200,6 @@ if test x"$enable_offload_targets" != x; then
     tgt=`echo $tgt | sed 's/=.*//'`
     tgt_plugin=
     case $tgt in
-      *-intelmic-* | *-intelmicemul-*)
-       tgt_plugin=intelmic
-       ;;
       nvptx*)
        case "${target}" in
          aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
index 875f9670479c84428cb82447ebb0e031e35c29ab..ac387828950620a9f5f02d64ddc8441e868b2a6d 100644 (file)
@@ -49,7 +49,6 @@ enum offload_target_type
   OFFLOAD_TARGET_TYPE_HOST = 2,
   /* OFFLOAD_TARGET_TYPE_HOST_NONSHM = 3 removed.  */
   OFFLOAD_TARGET_TYPE_NVIDIA_PTX = 5,
-  OFFLOAD_TARGET_TYPE_INTEL_MIC = 6,
   OFFLOAD_TARGET_TYPE_HSA = 7,
   OFFLOAD_TARGET_TYPE_GCN = 8
 };
index 8d3b9cfb64dc93167752e0858cd725c5a68c9b20..10fefa97922c9370ba3dd24c4a880072db8b4b8b 100644 (file)
@@ -4303,7 +4303,7 @@ offloading devices (it's not clear if they should be):
 
 @multitable @columnfractions .60 .10 .25
 @headitem @code{arch} @tab @code{kind} @tab @code{isa}
-@item @code{intel_mic}, @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
+@item @code{x86}, @code{x86_64}, @code{i386}, @code{i486},
       @code{i586}, @code{i686}, @code{ia32}
       @tab @code{host}
       @tab See @code{-m...} flags in ``x86 Options'' (without @code{-m})
index ab03f94adac7aa2b3868eb04028559124d2fcae8..d3b258901effb131ee9030cd4d96581295a428cf 100644 (file)
@@ -59,9 +59,6 @@ if test x"$enable_offload_targets" != x; then
     tgt=`echo $tgt | sed 's/=.*//'`
     tgt_plugin=
     case $tgt in
-      *-intelmic-* | *-intelmicemul-*)
-       tgt_plugin=intelmic
-       ;;
       nvptx*)
        case "${target}" in
          aarch64*-*-* | powerpc64le-*-* | x86_64-*-*)
index 4b8c64de8a5d74eab4111d84f668d24fd64be6e2..1801fdc822414e11ae56f67a670606f6901a3d7a 100644 (file)
@@ -119,18 +119,6 @@ proc libgomp_init { args } {
     # Compute what needs to be put into LD_LIBRARY_PATH
     set always_ld_library_path ".:${blddir}/.libs"
 
-    # Add liboffloadmic build directory in LD_LIBRARY_PATH to support
-    # Intel MIC offloading testing.
-    global offload_plugins
-    if { [string match "*,intelmic,*" ",$offload_plugins,"] } {
-       append always_ld_library_path ":${blddir}/../liboffloadmic/.libs"
-       append always_ld_library_path ":${blddir}/../liboffloadmic/plugin/.libs"
-       # libstdc++ is required by liboffloadmic
-       append always_ld_library_path ":${blddir}/../libstdc++-v3/src/.libs"
-       # libgcc_s is required by libstdc++
-       append always_ld_library_path ":${blddir}/../libgcc"
-    }
-
     global offload_additional_lib_paths
     if { $offload_additional_lib_paths != "" } {
        append always_ld_library_path "${offload_additional_lib_paths}"
@@ -313,9 +301,6 @@ proc offload_target_to_openacc_device_type { offload_target } {
        disable {
            return "host"
        }
-       *-intelmic* {
-           return ""
-       }
        nvptx* {
            return "nvidia"
        }
@@ -449,28 +434,6 @@ proc check_effective_target_openacc_nvidia_accel_selected { } {
     return [string match "nvidia" $openacc_device_type]
 }
 
-# Return 1 if using Intel MIC offload device.
-proc check_effective_target_offload_device_intel_mic { } {
-    return [check_runtime_nocache offload_device_intel_mic {
-      #include "testsuite/libgomp.c-c++-common/on_device_arch.h"
-      int main ()
-       {
-         return !on_device_arch_intel_mic ();
-       }
-    } ]
-}
-
-# Return 1 if any Intel MIC offload device is available.
-proc check_effective_target_offload_device_any_intel_mic { } {
-    return [check_runtime_nocache offload_device_any_intel_mic {
-      #include "testsuite/libgomp.c-c++-common/on_device_arch.h"
-      int main ()
-       {
-         return !any_device_arch_intel_mic ();
-       }
-    } ]
-}
-
 # Return 1 if the OpenACC 'host' device type is selected.
 
 proc check_effective_target_openacc_host_selected { } {
index 6f66dbd784c5f37cbf230ea4edd8f5c7d0b16dea..3fb5021d67ea277a9cf9fe6f0128378340a9466f 100644 (file)
@@ -13,15 +13,8 @@ device_arch_gcn (void)
   return GOMP_DEVICE_GCN;
 }
 
-/* static */ int
-device_arch_intel_mic (void)
-{
-  return GOMP_DEVICE_INTEL_MIC;
-}
-
 #pragma omp declare variant (device_arch_nvptx) match(construct={target},device={arch(nvptx)})
 #pragma omp declare variant (device_arch_gcn) match(construct={target},device={arch(gcn)})
-#pragma omp declare variant (device_arch_intel_mic) match(construct={target},device={arch(intel_mic)})
 /* static */ int
 device_arch (void)
 {
@@ -49,31 +42,3 @@ on_device_arch_gcn ()
 {
   return on_device_arch (GOMP_DEVICE_GCN);
 }
-
-int
-on_device_arch_intel_mic ()
-{
-  return on_device_arch (GOMP_DEVICE_INTEL_MIC);
-}
-
-static int
-any_device_arch (int d)
-{
-  int nd = omp_get_num_devices ();
-  for (int i = 0; i < nd; ++i)
-    {
-      int d_cur;
-      #pragma omp target device(i) map(from:d_cur)
-      d_cur = device_arch ();
-      if (d_cur == d)
-       return 1;
-    }
-
-  return 0;
-}
-
-int
-any_device_arch_intel_mic ()
-{
-  return any_device_arch (GOMP_DEVICE_INTEL_MIC);
-}
index 27bbeddf7fd6ebc691b041fc9e3bc5a88d73b858..73c105d58741be3fed54917227d8461b06d95773 100644 (file)
@@ -1,5 +1,3 @@
-/* { dg-xfail-run-if TODO { offload_device_any_intel_mic } } */
-
 #include <omp.h>
 #include <stdlib.h>
 
index 31452554d6795b3cc3b22139b97bb6c46d8ff2ed..4876ccea330bab110700fd80c7e7baa5c3357246 100644 (file)
@@ -1,5 +1,4 @@
 ! { dg-do run }
-! { dg-xfail-run-if TODO { offload_device_any_intel_mic } }
 
 program main
   use omp_lib
diff --git a/liboffloadmic/ChangeLog b/liboffloadmic/ChangeLog
deleted file mode 100644 (file)
index 90e7c4d..0000000
+++ /dev/null
@@ -1,765 +0,0 @@
-2022-10-12  Martin Liska  <mliska@suse.cz>
-
-       * configure: Regenerate.
-       * plugin/configure: Regenerate.
-
-2022-10-11  Olivier Hainque  <hainque@adacore.com>
-           Olivier Hainque  <hainque@adacore.com>
-
-       * plugin/configure: Regenerate.
-
-2022-10-11  Olivier Hainque  <hainque@adacore.com>
-           Olivier Hainque  <hainque@adacore.com>
-
-       * configure: Regenerate.
-
-2022-09-09  Tobias Burnus  <tobias@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_load_image):
-       Add (unused) uint64_t **rev_fn_table argument.
-
-2022-08-25  Martin Liska  <mliska@suse.cz>
-
-       * configure: Regenerate.
-       * plugin/configure: Regenerate.
-
-2022-07-04  Tobias Burnus  <tobias@codesourcery.com>
-           Chung-Lin Tang  <cltang@codesourcery.com>
-           Thomas Schwinge  <thomas@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_num_devices):
-       Return -1 when device available but omp_requires_mask != 0.
-
-2021-10-19  Martin Liska  <mliska@suse.cz>
-
-       * include/coi/source/COIBuffer_source.h: Convert 2 chars to
-       unicode.
-
-2021-05-25  Richard Biener  <rguenther@suse.de>
-
-       PR libgomp/100747
-       * configure: Make executable.
-       * plugin/configure: Likewise.
-
-2021-01-05  Samuel Thibault  <samuel.thibault@ens-lyon.org>
-
-       * configure: Re-generate.
-       * plugin/configure: Re-generate.
-
-2020-11-29  John David Anglin  <danglin@gcc.gnu.org>
-
-       * configure: Regenerate.
-       * plugin/configure: Regenerate.
-
-2020-05-05  Martin Liska  <mliska@suse.cz>
-
-       PR other/89860
-       * runtime/offload_target.cpp: Put index check
-       before its use.
-
-2020-01-24  Maciej W. Rozycki  <macro@wdc.com>
-
-       * plugin/configure.ac: Handle `--with-toolexeclibdir='.
-       * plugin/Makefile.in: Regenerate.
-       * plugin/aclocal.m4: Regenerate.
-       * plugin/configure: Regenerate.
-       * configure.ac: Handle `--with-toolexeclibdir='.
-       * Makefile.in: Regenerate.
-       * aclocal.m4: Regenerate.
-       * configure: Regenerate.
-
-2020-01-10  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
-       Remove.
-
-2019-12-22  Maciej W. Rozycki  <macro@codesourcery.com>
-           Frederik Harwath  <frederik@codesourcery.com>
-           Thomas Schwinge  <tschwinge@codesourcery.com>
-
-       liboffloadmic/
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_property):
-       New function.
-
-2019-10-01  Maciej W. Rozycki  <macro@wdc.com>
-
-       * plugin/configure: Regenerate.
-
-2019-09-27  Maciej W. Rozycki  <macro@wdc.com>
-
-       * configure: Regenerate.
-
-2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
-
-       PR other/16615
-
-       * include/coi/common/COIResult_common.h: Mechanically replace
-       "can not" with "cannot".
-       * include/coi/source/COIBuffer_source.h: Likewise.
-
-2018-12-14  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * runtime/offload.h (omp_target_is_present, omp_target_memcpy)
-       (omp_target_memcpy_rect, omp_target_associate_ptr)
-       (omp_target_disassociate_ptr): Adjust to libgomp changes.
-
-2018-10-31  Joseph Myers  <joseph@codesourcery.com>
-
-       PR bootstrap/82856
-       * Makefile.am: Include multilib.am.
-       * configure.ac: Remove AC_PREREQ.
-       * plugin/Makefile.am: Include multilib.am.
-       * plugin/configure.ac: Remove AC_PREREQ.
-       * Makefile.in, aclocal.m4, configure, plugin/Makefile.in,
-       plugin/aclocal.m4, plugin/configure: Regenerate.
-
-2018-04-18  David Malcolm  <dmalcolm@redhat.com>
-
-       PR jit/85384
-       * configure: Regenerate.
-       * plugin/configure: Regenerate.
-
-2017-01-31  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_type): Fix
-       return type.
-       (GOMP_OFFLOAD_load_image): Fix argument types.
-
-2017-01-21  Jakub Jelinek  <jakub@redhat.com>
-
-       PR other/79046
-       * plugin/configure.ac: Add GCC_BASE_VER.
-       * plugin/Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead
-       of cat to get version from BASE-VER file.
-       * plugin/configure: Regenerated.
-       * plugin/aclocal.m4: Regenerated.
-       * plugin/Makefile.in: Regenerated.
-
-2017-01-20  Jakub Jelinek  <jakub@redhat.com>
-
-       PR other/79046
-       * aclocal.m4: Regenerated.
-       * Makefile.in: Regenerated.
-
-2017-01-17  Jakub Jelinek  <jakub@redhat.com>
-
-       PR other/79046
-       * configure.ac: Add GCC_BASE_VER.
-       * Makefile.am (gcc_version): Use @get_gcc_base_ver@ instead of cat to
-       get version from BASE-VER file.
-       * aclocal.m4: Include ../config/acx.m4.
-       * configure: Regenerated.
-       * Makefile.in: Regenerated.
-
-2016-11-15  Matthias Klose  <doko@ubuntu.com>
-
-       * configure: Regenerate.
-
-2016-07-21  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * Makefile.am (myo_inc_dir): Remove.
-       (toolexeclib_LTLIBRARIES): Remove libmyo-client.la and
-       libmyo-service.la.
-       (liboffloadmic_cppflags): Remove -DMYO_SUPPORT.
-       (liboffloadmic_host_la_SOURCES): Remove offload_myo_host.cpp.
-       (liboffloadmic_target_la_SOURCES): Remove offload_myo_target.cpp.
-       (liboffloadmic_target_la_LIBADD): Remove libmyo-service.la.
-       (libmyo_client_la_SOURCES, libmyo_service_la_SOURCES): Remove.
-       (libmyo_client_la_DEPENDENCIES, libmyo_service_la_DEPENDENCIES): Remove.
-       (libmyo_client_la_CPPFLAGS, libmyo_service_la_CPPFLAGS): Remove.
-       (libmyo_client_la_LDFLAGS, libmyo_service_la_LDFLAGS): Remove.
-       * Makefile.in: Regenerate.
-       * doc/doxygen/header.tex: Merge from upstream, version 20160715
-       <https://openmprtl.org/sites/default/files/liboffload_oss_20160715.tgz>.
-       * runtime/cean_util.cpp: Likewise.
-       * runtime/cean_util.h: Likewise.
-       * runtime/coi/coi_client.cpp: Likewise.
-       * runtime/coi/coi_client.h: Likewise.
-       * runtime/coi/coi_server.cpp: Likewise.
-       * runtime/coi/coi_server.h: Likewise.
-       * runtime/compiler_if_host.cpp: Likewise.
-       * runtime/compiler_if_host.h: Likewise.
-       * runtime/compiler_if_target.cpp: Likewise.
-       * runtime/compiler_if_target.h: Likewise.
-       * runtime/dv_util.cpp: Likewise.
-       * runtime/dv_util.h: Likewise.
-       * runtime/liboffload_error.c: Likewise.
-       * runtime/liboffload_error_codes.h: Likewise.
-       * runtime/liboffload_msg.c: Likewise.
-       * runtime/liboffload_msg.h: Likewise.
-       * runtime/mic_lib.f90: Likewise.
-       * runtime/offload.h: Likewise.
-       * runtime/offload_common.cpp: Likewise.
-       * runtime/offload_common.h: Likewise.
-       * runtime/offload_engine.cpp: Likewise.
-       * runtime/offload_engine.h: Likewise.
-       * runtime/offload_env.cpp: Likewise.
-       * runtime/offload_env.h: Likewise.
-       * runtime/offload_host.cpp: Likewise.
-       * runtime/offload_host.h: Likewise.
-       * runtime/offload_iterator.h: Likewise.
-       * runtime/offload_myo_host.cpp: Likewise.
-       * runtime/offload_myo_host.h: Likewise.
-       * runtime/offload_myo_target.cpp: Likewise.
-       * runtime/offload_myo_target.h: Likewise.
-       * runtime/offload_omp_host.cpp: Likewise.
-       * runtime/offload_omp_target.cpp: Likewise.
-       * runtime/offload_orsl.cpp: Likewise.
-       * runtime/offload_orsl.h: Likewise.
-       * runtime/offload_table.cpp: Likewise.
-       * runtime/offload_table.h: Likewise.
-       * runtime/offload_target.cpp: Likewise.
-       * runtime/offload_target.h: Likewise.
-       * runtime/offload_target_main.cpp: Likewise.
-       * runtime/offload_timer.h: Likewise.
-       * runtime/offload_timer_host.cpp: Likewise.
-       * runtime/offload_timer_target.cpp: Likewise.
-       * runtime/offload_trace.cpp: Likewise.
-       * runtime/offload_trace.h: Likewise.
-       * runtime/offload_util.cpp: Likewise.
-       * runtime/offload_util.h: Likewise.
-       * runtime/ofldbegin.cpp: Likewise.
-       * runtime/ofldend.cpp: Likewise.
-       * runtime/orsl-lite/include/orsl-lite.h: Likewise.
-       * runtime/orsl-lite/lib/orsl-lite.c: Likewise.
-       * runtime/use_mpss2.txt: Remove.
-       * include/coi/common/COIEngine_common.h: Merge from upstream, MPSS
-       version 3.7.1
-       <http://registrationcenter-download.intel.com/akdlm/irc_nas/9226/
-       mpss-3.7.1-linux.tar>.
-       * include/coi/common/COIEvent_common.h: Likewise.
-       * include/coi/common/COIMacros_common.h: Likewise.
-       * include/coi/common/COIPerf_common.h: Likewise.
-       * include/coi/common/COIResult_common.h: Likewise.
-       * include/coi/common/COISysInfo_common.h: Likewise.
-       * include/coi/common/COITypes_common.h: Likewise.
-       * include/coi/sink/COIBuffer_sink.h: Likewise.
-       * include/coi/sink/COIPipeline_sink.h: Likewise.
-       * include/coi/sink/COIProcess_sink.h: Likewise.
-       * include/coi/source/COIBuffer_source.h: Likewise.
-       * include/coi/source/COIEngine_source.h: Likewise.
-       * include/coi/source/COIEvent_source.h: Likewise.
-       * include/coi/source/COIPipeline_source.h: Likewise.
-       * include/coi/source/COIProcess_source.h: Likewise.
-       * include/myo/myo.h: Remove.
-       * include/myo/myoimpl.h: Remove.
-       * include/myo/myotypes.h: Remove.
-       * plugin/Makefile.am (AM_LDFLAGS): Remove -lmyo-service.
-       * plugin/Makefile.in: Regenerate.
-       * plugin/libgomp-plugin-intelmic.cpp (LD_LIBRARY_PATH_ENV): Remove.
-       (MIC_LD_LIBRARY_PATH_ENV): Remove.
-       (init): Do not set MIC_LD_LIBRARY_PATH.  Now liboffloadmic uses only
-       LD_LIBRARY_PATH.
-       * plugin/offload_target_main.cpp: Update copyright years.
-       * runtime/emulator/coi_common.h: Likewise.
-       * runtime/emulator/coi_device.cpp: Likewise.
-       * runtime/emulator/coi_device.h: Likewise.
-       * runtime/emulator/coi_host.cpp: Likewise.
-       (COIBufferCreate): Allow COI_BUFFER_OPENCL.
-       (COIEngineGetInfo): Return COI_DEVICE_KNL instead of COI_ISA_x86_64.
-       * runtime/emulator/coi_host.h: Update copyright years.
-       * runtime/emulator/coi_version_asm.h: Likewise.
-       * runtime/emulator/coi_version_linker_script.map: Likewise.
-       * runtime/emulator/myo_client.cpp: Remove.
-       * runtime/emulator/myo_service.cpp: Remove.
-       * runtime/emulator/myo_service.h: Remove.
-       * runtime/emulator/myo_version_asm.h: Remove.
-       * runtime/emulator/myo_version_linker_script.map: Remove.
-
-2016-05-26  Chung-Lin Tang  <cltang@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (offload): Change return type
-       to bool, adjust return code.
-       (GOMP_OFFLOAD_init_device): Likewise.
-       (GOMP_OFFLOAD_fini_device): Likewise.
-       (get_target_table): Likewise.
-       (offload_image): Likwise.
-       (GOMP_OFFLOAD_load_image): Adjust call to offload_image(), change
-       to return -1 on error.
-       (GOMP_OFFLOAD_unload_image): Change return type to bool, adjust return
-       code.
-       (GOMP_OFFLOAD_alloc): Likewise.
-       (GOMP_OFFLOAD_free): Likewise.
-       (GOMP_OFFLOAD_host2dev): Likewise.
-       (GOMP_OFFLOAD_dev2host): Likewise.
-       (GOMP_OFFLOAD_dev2dev): Likewise.
-
-2016-01-20  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_run): Pass extra NULL
-       to GOMP_OFFLOAD_async_run.
-
-2016-01-19  Martin Jambor  <mjambor@suse.cz>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_async_run): New
-       unused parameter.
-       (GOMP_OFFLOAD_run): Likewise.
-
-2015-12-14  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (unregister_main_image): Remove.
-       (register_main_image): Do not call unregister_main_image at exit.
-       (GOMP_OFFLOAD_fini_device): Allow for OpenMP.  Unregister main image.
-
-2015-11-19  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (struct TargetImageDesc): New.
-       (ImgDescMap): New typedef.
-       (image_descriptors): New static var.
-       (init): Allocate image_descriptors.
-       (offload): Remove vars2 argument.  Pass NULL to __offload_offload1
-       instead of vars2.
-       (unregister_main_image): New static function.
-       (register_main_image): Call unregister_main_image at exit.
-       (GOMP_OFFLOAD_init_device): Print device number, fix offload args.
-       (GOMP_OFFLOAD_fini_device): Likewise.
-       (get_target_table): Remove vd1g and vd2g, don't pass them to offload.
-       (offload_image): Remove declaration of the struct TargetImage.
-       Free table.  Insert new descriptor into image_descriptors.
-       (GOMP_OFFLOAD_unload_image): Call __offload_unregister_image, free
-       the corresponding descriptor, and remove it from address_table and
-       image_descriptors.
-       (GOMP_OFFLOAD_alloc): Print device number, remove vd1g.
-       (GOMP_OFFLOAD_free): Likewise.
-       (GOMP_OFFLOAD_host2dev): Print device number, remove vd1g and vd2g.
-       (GOMP_OFFLOAD_dev2host): Likewise.
-       (GOMP_OFFLOAD_run): Print device number, remove vd1g.
-       * plugin/offload_target_main.cpp (__offload_target_table_p1): Remove
-       vd2, don't pass it to __offload_target_enter.
-       (__offload_target_table_p2): Likewise.
-       (__offload_target_alloc): Likewise.
-       (__offload_target_free): Likewise.
-       (__offload_target_host2tgt_p1): Likewise.
-       (__offload_target_host2tgt_p2): Likewise.
-       (__offload_target_tgt2host_p1): Likewise.
-       (__offload_target_tgt2host_p2): Likewise.
-       (__offload_target_run): Likewise.
-       (__offload_target_tgt2tgt): Remove vd1g, don't pass it to
-       __offload_target_enter.
-
-2015-11-14  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * runtime/offload_host.cpp (task_completion_callback): New
-       variable.
-       (offload_proxy_task_completed_ooo): Call task_completion_callback.
-       (__offload_register_task_callback): New function.
-       * runtime/offload_host.h (__offload_register_task_callback): New
-       declaration.
-       * plugin/libgomp-plugin-intelmic.cpp (offload): Add async_data
-       argument, handle async offloading.
-       (register_main_image): Call register_main_image.
-       (GOMP_OFFLOAD_init_device, get_target_table, GOMP_OFFLOAD_alloc,
-       GOMP_OFFLOAD_free, GOMP_OFFLOAD_host2dev, GOMP_OFFLOAD_dev2host,
-       GOMP_OFFLOAD_dev2dev): Adjust offload callers.
-       (GOMP_OFFLOAD_async_run): New function.
-       (GOMP_OFFLOAD_run): Implement using GOMP_OFFLOAD_async_run.
-
-2015-10-26  Ilya Verbin  <ilya.verbin@intel.com>
-           Aleksander Ivanushenko  <aleksander.ivanushenko@intel.com>
-
-       * runtime/offload_host.cpp (OffloadDescriptor::setup_misc_data): Use
-       calloc instead of malloc.
-       (__offload_fini_library): Set mic_engines_total to zero.
-
-2015-10-13  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_dev2dev): New
-       function.
-       * plugin/offload_target_main.cpp (__offload_target_tgt2tgt): New
-       static function, register it in liboffloadmic.
-
-2015-10-08  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * runtime/offload_engine.cpp (Engine::init_process): Use strdup instead
-       of sizeof+malloc+sprintf, check for return value.
-       * runtime/offload_env.cpp (MicEnvVar::get_env_var_kind): Check for
-       strdup return value.
-       * runtime/offload_host.cpp (__offload_init_library_once): Check for
-       strdup return value.  Fix size calculation of COI_HOST_THREAD_AFFINITY.
-       * runtime/emulator/coi_device.cpp (COIProcessWaitForShutdown): Check for
-       malloc return value.
-
-2015-09-29  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (OFFLOAD_ACTIVE_WAIT_ENV): New
-       define.
-       (init): Set OFFLOAD_ACTIVE_WAIT env var to 0, if it is not set.
-       * runtime/emulator/coi_common.h (PIPE_HOST_PATH): Replace with ...
-       (PIPE_HOST2TGT_NAME): ... this.
-       (PIPE_TARGET_PATH): Replace with ...
-       (PIPE_TGT2HOST_NAME): ... this.
-       (MALLOCN): New define.
-       (READN): Likewise.
-       (WRITEN): Likewise.
-       (enum cmd_t): Replace CMD_RUN_FUNCTION with CMD_PIPELINE_RUN_FUNCTION.
-       Add CMD_PIPELINE_CREATE, CMD_PIPELINE_DESTROY.
-       * runtime/emulator/coi_device.cpp (engine_dir): New static variable.
-       (pipeline_thread_routine): New static function.
-       (COIProcessWaitForShutdown): Use global engine_dir instead of mic_dir.
-       Rename pipe_host and pipe_target to pipe_host2tgt and pipe_tgt2host.
-       If cmd is CMD_PIPELINE_CREATE, create a new thread for the pipeline.
-       Remove cmd == CMD_RUN_FUNCTION case.
-       * runtime/emulator/coi_device.h (COIERRORN): New define.
-       * runtime/emulator/coi_host.cpp: Include set, map, queue.
-       Replace typedefs with enums and structs.
-       (struct Function): Remove name, add num_buffers, bufs_size,
-       bufs_data_target, misc_data_len, misc_data, return_value_len,
-       return_value, completion_event.
-       (struct Callback): New.
-       (struct Process): Remove pipeline.  Add pipe_host2tgt and pipe_tgt2host.
-       (struct Pipeline): Remove pipe_host and pipe_target.  Add thread,
-       destroy, is_destroyed, pipe_host2tgt_path, pipe_tgt2host_path,
-       pipe_host2tgt, pipe_tgt2host, queue, process.
-       (max_pipeline_num): New static variable.
-       (pipelines): Likewise.
-       (max_event_num): Likewise.
-       (non_signalled_events): Likewise.
-       (errored_events): Likewise.
-       (callbacks): Likewise.
-       (cleanup): Do not check tmp_dirs before free.
-       (start_critical_section): New static function.
-       (finish_critical_section): Likewise.
-       (pipeline_is_destroyed): Likewise.
-       (maybe_invoke_callback): Likewise.
-       (signal_event): Likewise.
-       (get_event_result): Likewise.
-       (COIBufferCopy): Rename arguments according to headers.  Add asserts.
-       Use process' main pipes, instead of pipeline's pipes.  Signal completion
-       event.
-       (COIBufferCreate): Rename arguments according to headers.  Add asserts.
-       Use process' main pipes, instead of pipeline's pipes.
-       (COIBufferCreateFromMemory): Rename arguments according to headers.
-       Add asserts.
-       (COIBufferDestroy): Rename arguments according to headers.  Add asserts.
-       Use process' main pipes, instead of pipeline's pipes.
-       (COIBufferGetSinkAddress): Rename arguments according to headers.
-       Add asserts.
-       (COIBufferMap): Rename arguments according to headers.  Add asserts.
-       Signal completion event.
-       (COIBufferRead): Likewise.
-       (COIBufferSetState): Likewise.
-       (COIBufferUnmap): Likewise.
-       (COIBufferWrite): Likewise.
-       (COIEngineGetCount): Add assert.
-       (COIEngineGetHandle): Rename arguments according to headers.
-       Add assert.
-       (COIEventWait): Rename arguments according to headers.  Add asserts.
-       Implement waiting for events with zero or infinite timeout.
-       (COIEventRegisterCallback): New function.
-       (pipeline_thread_routine): New static function.
-       (COIPipelineCreate): Create a new thread for the pipeline.
-       (COIPipelineDestroy): Exit pipeline thread.
-       (COIPipelineRunFunction): Add the function into pipeline's queue,
-       instead running it here.  Wait for it's completion in case of
-       synchronous execution.
-       (COIProcessCreateFromMemory): Rename arguments according to headers.
-       Add asserts.  Create process' main pipes, instead of pipeline's pipes.
-       (COIProcessDestroy): Rename arguments according to headers.
-       Add asserts.  Destroy all undestroyed pipelines.
-       (COIProcessGetFunctionHandles): Rename arguments according to headers.
-       Add asserts.  Use process' main pipes, instead of pipeline's pipes.
-       Remove useless function names.
-       (COIProcessLoadLibraryFromMemory): Add asserts.  Use process' main
-       pipes, instead of pipeline's pipes.
-       (COIProcessUnloadLibrary): Likewise.
-       (COIEngineGetInfo): Add assert.
-       * runtime/emulator/coi_host.h (COIERRORN): New define.
-
-2015-09-28  Ilya Verbin  <ilya.verbin@intel.com>
-
-       PR other/67652
-       * runtime/offload_engine.cpp (Engine::init_process): Fix sizeof.
-
-2015-09-08  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * Makefile.am (liboffloadmic_host_la_DEPENDENCIES): Remove libcoi_host
-       and libmyo-client.  liboffloadmic_host loads them dynamically.
-       * Makefile.in: Regenerate.
-       * doc/doxygen/header.tex: Merge from upstream, version 20150803
-       <https://openmprtl.org/sites/default/files/liboffload_oss_20150803.tgz>.
-       * runtime/cean_util.cpp: Likewise.
-       * runtime/cean_util.h: Likewise.
-       * runtime/coi/coi_client.cpp: Likewise.
-       * runtime/coi/coi_client.h: Likewise.
-       * runtime/coi/coi_server.cpp: Likewise.
-       * runtime/coi/coi_server.h: Likewise.
-       * runtime/compiler_if_host.cpp: Likewise.
-       * runtime/compiler_if_host.h: Likewise.
-       * runtime/compiler_if_target.cpp: Likewise.
-       * runtime/compiler_if_target.h: Likewise.
-       * runtime/dv_util.cpp: Likewise.
-       * runtime/dv_util.h: Likewise.
-       * runtime/liboffload_error.c: Likewise.
-       * runtime/liboffload_error_codes.h: Likewise.
-       * runtime/liboffload_msg.c: Likewise.
-       * runtime/liboffload_msg.h: Likewise.
-       * runtime/mic_lib.f90: Likewise.
-       * runtime/offload.h: Likewise.
-       * runtime/offload_common.cpp: Likewise.
-       * runtime/offload_common.h: Likewise.
-       * runtime/offload_engine.cpp: Likewise.
-       * runtime/offload_engine.h: Likewise.
-       * runtime/offload_env.cpp: Likewise.
-       * runtime/offload_env.h: Likewise.
-       * runtime/offload_host.cpp: Likewise.
-       * runtime/offload_host.h: Likewise.
-       * runtime/offload_iterator.h: Likewise.
-       * runtime/offload_myo_host.cpp: Likewise.
-       * runtime/offload_myo_host.h: Likewise.
-       * runtime/offload_myo_target.cpp: Likewise.
-       * runtime/offload_myo_target.h: Likewise.
-       * runtime/offload_omp_host.cpp: Likewise.
-       * runtime/offload_omp_target.cpp: Likewise.
-       * runtime/offload_orsl.cpp: Likewise.
-       * runtime/offload_orsl.h: Likewise.
-       * runtime/offload_table.cpp: Likewise.
-       * runtime/offload_table.h: Likewise.
-       * runtime/offload_target.cpp: Likewise.
-       * runtime/offload_target.h: Likewise.
-       * runtime/offload_target_main.cpp: Likewise.
-       * runtime/offload_timer.h: Likewise.
-       * runtime/offload_timer_host.cpp: Likewise.
-       * runtime/offload_timer_target.cpp: Likewise.
-       * runtime/offload_trace.cpp: Likewise.
-       * runtime/offload_trace.h: Likewise.
-       * runtime/offload_util.cpp: Likewise.
-       * runtime/offload_util.h: Likewise.
-       * runtime/ofldbegin.cpp: Likewise.
-       * runtime/ofldend.cpp: Likewise.
-       * runtime/orsl-lite/include/orsl-lite.h: Likewise.
-       * runtime/orsl-lite/lib/orsl-lite.c: Likewise.
-       * runtime/use_mpss2.txt: Likewise.
-       * include/coi/common/COIEngine_common.h: Merge from upstream, MPSS
-       version 3.5
-       <http://registrationcenter.intel.com/irc_nas/7445/mpss-src-3.5.tar>.
-       * include/coi/common/COIEvent_common.h: Likewise.
-       * include/coi/common/COIMacros_common.h: Likewise.
-       * include/coi/common/COIPerf_common.h: Likewise.
-       * include/coi/common/COIResult_common.h: Likewise.
-       * include/coi/common/COISysInfo_common.h: Likewise.
-       * include/coi/common/COITypes_common.h: Likewise.
-       * include/coi/sink/COIBuffer_sink.h: Likewise.
-       * include/coi/sink/COIPipeline_sink.h: Likewise.
-       * include/coi/sink/COIProcess_sink.h: Likewise.
-       * include/coi/source/COIBuffer_source.h: Likewise.
-       * include/coi/source/COIEngine_source.h: Likewise.
-       * include/coi/source/COIEvent_source.h: Likewise.
-       * include/coi/source/COIPipeline_source.h: Likewise.
-       * include/coi/source/COIProcess_source.h: Likewise.
-       * include/myo/myo.h: Likewise.
-       * include/myo/myoimpl.h: Likewise.
-       * include/myo/myotypes.h: Likewise.
-       * plugin/Makefile.am (myo_inc_dir): Remove.
-       (libgomp_plugin_intelmic_la_CPPFLAGS): Do not define MYO_SUPPORT.
-       (AM_CPPFLAGS): Likewise for offload_target_main.
-       * plugin/Makefile.in: Regenerate.
-       * runtime/emulator/coi_common.h: Update copyright years.
-       (OFFLOAD_EMUL_KNC_NUM_ENV): Replace with ...
-       (OFFLOAD_EMUL_NUM_ENV): ... this.
-       (enum cmd_t): Add CMD_CLOSE_LIBRARY.
-       * runtime/emulator/coi_device.cpp: Update copyright years.
-       (COIProcessWaitForShutdown): Add space between string constants.
-       Return handle to host in CMD_OPEN_LIBRARY.
-       Support CMD_CLOSE_LIBRARY.
-       * runtime/emulator/coi_device.h: Update copyright years.
-       * runtime/emulator/coi_host.cpp: Update copyright years.
-       (knc_engines_num): Replace with ...
-       (num_engines): ... this.
-       (init): Replace OFFLOAD_EMUL_KNC_NUM_ENV with OFFLOAD_EMUL_NUM_ENV.
-       (COIEngineGetCount): Replace COI_ISA_KNC with COI_ISA_MIC, and
-       knc_engines_num with num_engines.
-       (COIEngineGetHandle): Likewise.
-       (COIProcessCreateFromMemory): Add space between string constants.
-       (COIProcessCreateFromFile): New function.
-       (COIProcessLoadLibraryFromMemory): Rename arguments according to
-       COIProcess_source.h.  Return handle, received from target.
-       (COIProcessUnloadLibrary): New function.
-       (COIPipelineClearCPUMask): New function.
-       (COIPipelineSetCPUMask): New function.
-       (COIEngineGetInfo): New function.
-       * runtime/emulator/coi_host.h: Update copyright years.
-       * runtime/emulator/coi_version_asm.h: Regenerate.
-       * runtime/emulator/coi_version_linker_script.map: Regenerate.
-       * runtime/emulator/myo_client.cpp: Update copyright years.
-       * runtime/emulator/myo_service.cpp: Update copyright years.
-       (myoArenaRelease): New function.
-       (myoArenaAcquire): New function.
-       (myoArenaAlignedFree): New function.
-       (myoArenaAlignedMalloc): New function.
-       * runtime/emulator/myo_service.h: Update copyright years.
-       * runtime/emulator/myo_version_asm.h: Regenerate.
-       * runtime/emulator/myo_version_linker_script.map: Regenerate.
-
-2015-08-24  Nathan Sidwell  <nathan@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_version): New.
-       (GOMP_OFFLOAD_load_image): Add version arg and check it.
-       (GOMP_OFFLOAD_unload_image): Likewise.
-
-2015-08-24  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * plugin/Makefile.am (include_src_dir): Set.
-       [PLUGIN_HOST] (libgomp_plugin_intelmic_la_CPPFLAGS): Use it.
-       * plugin/Makefile.in: Regenerate.
-       * plugin/libgomp-plugin-intelmic.cpp: Include "gomp-constants.h".
-
-2015-07-24  Micahel Darling  <darlingm@gmail.com>
-
-       PR other/66259
-       * configure: Reflects renaming of configure.in to configure.ac
-
-2015-07-17  Nathan Sidwell  <nathan@acm.org>
-           Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (ImgDevAddrMap): Constify.
-       (offload_image, GOMP_OFFLOAD_load_image,
-       GOMP_OFFLOAD_unload_image): Constify target data.
-
-2015-07-08  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * plugin/Makefile.am (main_target_image.h): Change type of data
-       member of struct MainTargetImage to uint8_t.
-       * plugin/Makefile.in: Regenerate.
-
-2015-05-13  Michael Haubenwallner  <michael.haubenwallner@ssi-schaefer.com>
-
-       * Makefile.in: Regenerated with automake-1.11.6.
-       * aclocal.m4: Likewise.
-       * configure: Likewise.
-       * plugin/Makefile.in: Likewise.
-       * plugin/aclocal.m4: Likewise.
-       * plugin/configure: Likewise.
-
-2015-04-06  Ilya Verbin  <ilya.verbin@intel.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp: Include map.
-       (AddrVect, DevAddrVect, ImgDevAddrMap): New typedefs.
-       (num_devices, num_images, address_table): New static vars.
-       (num_libraries, lib_descrs): Remove static vars.
-       (set_mic_lib_path): Rename to ...
-       (init): ... this.  Allocate address_table and get num_devices.
-       (GOMP_OFFLOAD_get_num_devices): return num_devices.
-       (load_lib_and_get_table): Remove static function.
-       (offload_image): New static function.
-       (GOMP_OFFLOAD_get_table): Remove function.
-       (GOMP_OFFLOAD_load_image, GOMP_OFFLOAD_unload_image): New functions.
-
-2015-01-15  Thomas Schwinge  <thomas@codesourcery.com>
-
-       * plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_get_name)
-       (GOMP_OFFLOAD_get_caps, GOMP_OFFLOAD_fini_device): New functions.
-
-2014-11-13  Ilya Verbin  <ilya.verbin@intel.com>
-           Andrey Turetskiy  <andrey.turetskiy@intel.com>
-
-       * Makefile.in: Regenerate.
-       * configure: Regenerate.
-       * configure.ac: Add subdirectory 'plugin'.
-       * plugin/Makefile.am: New file.
-       * plugin/Makefile.in: New file, generated by automake.
-       * plugin/aclocal.m4: New file, generated by aclocal.
-       * plugin/configure: New file, generated by autoconf.
-       * plugin/configure.ac: New file.
-       * plugin/libgomp-plugin-intelmic.cpp: New file.
-       * plugin/offload_target_main.cpp: New file.
-
-2014-11-13  Kirill Yukhin  <kirill.yukhin@intel.com>
-
-       Initial commit.  Imported from upstream:
-       https://www.openmprtl.org/sites/default/files/liboffload_oss.tgz
-       * Makefile.am: New file.
-       * Makefile.in: New file, generated by automake.
-       * aclocal.m4: New file, generated by aclocal.
-       * configure: New file, generated by autoconf.
-       * configure.ac: New file.
-       * configure.tgt: Ditto.
-       * doc/doxygen/config: Ditto.
-       * doc/doxygen/header.tex: Ditto.
-       * include/coi/common/COIEngine_common.h: Ditto.
-       * include/coi/common/COIMacros_common.h: Ditto.
-       * include/coi/common/COIPerf_common.h : Ditto.
-       * include/coi/common/COIResult_common.h : Ditto.
-       * include/coi/common/COITypes_common.h: Ditto.
-       * include/coi/sink/COIBuffer_sink.h: Ditto.
-       * include/coi/sink/COIPipeline_sink.h: Ditto.
-       * include/coi/sink/COIProcess_sink.h: Ditto.
-       * include/coi/source/COIBuffer_source.h: Ditto.
-       * include/coi/source/COIEngine_source.h: Ditto.
-       * include/coi/source/COIEvent_source.h: Ditto.
-       * include/coi/source/COIPipeline_source.h: Ditto.
-       * include/coi/source/COIProcess_source.h: Ditto.
-       * include/myo/myo.h: Ditto.
-       * include/myo/myoimpl.h: Ditto.
-       * include/myo/myotypes.h: Ditto.
-       * liboffloadmic_host.spec.in: Ditto.
-       * liboffloadmic_target.spec.in: Ditto.
-       * runtime/cean_util.cpp: Ditto.
-       * runtime/cean_util.h: Ditto.
-       * runtime/coi/coi_client.cpp: Ditto.
-       * runtime/coi/coi_client.h: Ditto.
-       * runtime/coi/coi_server.cpp: Ditto.
-       * runtime/coi/coi_server.h: Ditto.
-       * runtime/compiler_if_host.cpp: Ditto.
-       * runtime/compiler_if_host.h: Ditto.
-       * runtime/compiler_if_target.cpp: Ditto.
-       * runtime/compiler_if_target.h: Ditto.
-       * runtime/dv_util.cpp: Ditto.
-       * runtime/dv_util.h: Ditto.
-       * runtime/emulator/coi_common.h: Ditto.
-       * runtime/emulator/coi_device.cpp: Ditto.
-       * runtime/emulator/coi_device.h: Ditto.
-       * runtime/emulator/coi_host.cpp: Ditto.
-       * runtime/emulator/coi_host.h: Ditto.
-       * runtime/emulator/coi_version_asm.h: Ditto.
-       * runtime/emulator/coi_version_linker_script.map: Ditto.
-       * runtime/emulator/myo_client.cpp: Ditto.
-       * runtime/emulator/myo_service.cpp: Ditto.
-       * runtime/emulator/myo_service.h: Ditto.
-       * runtime/emulator/myo_version_asm.h: Ditto.
-       * runtime/emulator/myo_version_linker_script.map: Ditto.
-       * runtime/liboffload_error.c: Ditto.
-       * runtime/liboffload_error_codes.h: Ditto.
-       * runtime/liboffload_msg.c: Ditto.
-       * runtime/liboffload_msg.h: Ditto.
-       * runtime/mic_lib.f90: Ditto.
-       * runtime/offload.h: Ditto.
-       * runtime/offload_common.cpp: Ditto.
-       * runtime/offload_common.h: Ditto.
-       * runtime/offload_engine.cpp: Ditto.
-       * runtime/offload_engine.h: Ditto.
-       * runtime/offload_env.cpp: Ditto.
-       * runtime/offload_env.h: Ditto.
-       * runtime/offload_host.cpp: Ditto.
-       * runtime/offload_host.h: Ditto.
-       * runtime/offload_myo_host.cpp: Ditto.
-       * runtime/offload_myo_host.h: Ditto.
-       * runtime/offload_myo_target.cpp: Ditto.
-       * runtime/offload_myo_target.h: Ditto.
-       * runtime/offload_omp_host.cpp: Ditto.
-       * runtime/offload_omp_target.cpp: Ditto.
-       * runtime/offload_orsl.cpp: Ditto.
-       * runtime/offload_orsl.h: Ditto.
-       * runtime/offload_table.cpp: Ditto.
-       * runtime/offload_table.h: Ditto.
-       * runtime/offload_target.cpp: Ditto.
-       * runtime/offload_target.h: Ditto.
-       * runtime/offload_target_main.cpp: Ditto.
-       * runtime/offload_timer.h: Ditto.
-       * runtime/offload_timer_host.cpp: Ditto.
-       * runtime/offload_timer_target.cpp: Ditto.
-       * runtime/offload_trace.cpp: Ditto.
-       * runtime/offload_trace.h: Ditto.
-       * runtime/offload_util.cpp: Ditto.
-       * runtime/offload_util.h: Ditto.
-       * runtime/ofldbegin.cpp: Ditto.
-       * runtime/ofldend.cpp: Ditto.
-       * runtime/orsl-lite/include/orsl-lite.h: Ditto.
-       * runtime/orsl-lite/lib/orsl-lite.c: Ditto.
-       * runtime/orsl-lite/version.txt: Ditto.
-       * runtime/use_mpss2.txt: Ditto.
-\f
-Copyright (C) 2014-2018 Free Software Foundation, Inc.
-
-Copying and distribution of this file, with or without modification,
-are permitted in any medium without royalty provided the copyright
-notice and this notice are preserved.
diff --git a/liboffloadmic/Makefile.am b/liboffloadmic/Makefile.am
deleted file mode 100644 (file)
index 4a15322..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-#
-#    Copyright (c) 2014 Intel Corporation.  All Rights Reserved.
-#
-#    Redistribution and use in source and binary forms, with or without
-#    modification, are permitted provided that the following conditions
-#    are met:
-#
-#      * Redistributions of source code must retain the above copyright
-#        notice, this list of conditions and the following disclaimer.
-#      * Redistributions in binary form must reproduce the above copyright
-#        notice, this list of conditions and the following disclaimer in the
-#        documentation and/or other materials provided with the distribution.
-#      * Neither the name of Intel Corporation nor the names of its
-#        contributors may be used to endorse or promote products derived
-#        from this software without specific prior written permission.
-#
-#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-#    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-#    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-#    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-#    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-#    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-#    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-
-AUTOMAKE_OPTIONS = foreign
-ACLOCAL_AMFLAGS = -I .. -I ../config
-
-# Build plugin for Intel MIC
-SUBDIRS = . plugin
-
-# Directories.
-build_dir = $(top_builddir)
-coi_inc_dir = $(top_srcdir)/include/coi
-libgomp_dir = $(build_dir)/../libgomp
-source_dir = $(top_srcdir)/runtime
-
-# May be used by toolexeclibdir.
-gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
-
-# Target list.
-if LIBOFFLOADMIC_HOST
-  nodist_toolexeclib_HEADERS = liboffloadmic_host.spec
-  toolexeclib_LTLIBRARIES = libcoi_host.la liboffloadmic_host.la
-  nodist_libsubinclude_HEADERS = runtime/compiler_if_host.h
-  ofld_obj =
-else # LIBOFFLOADMIC_TARGET
-  nodist_toolexeclib_HEADERS = liboffloadmic_target.spec
-  toolexeclib_LTLIBRARIES = libcoi_device.la liboffloadmic_target.la
-  nodist_libsubinclude_HEADERS = runtime/compiler_if_target.h
-  ofld_obj = ofldbegin.o ofldend.o
-endif
-
-# Liboffloadmic.
-liboffloadmic_sources = runtime/dv_util.cpp \
-                       runtime/liboffload_error.c \
-                       runtime/liboffload_msg.c \
-                       runtime/offload_common.cpp \
-                       runtime/offload_table.cpp \
-                       runtime/offload_trace.cpp \
-                       runtime/offload_util.cpp
-
-liboffloadmic_cppflags = -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -I$(coi_inc_dir) -I$(source_dir) -I$(libgomp_dir)
-
-liboffloadmic_host_la_SOURCES = $(liboffloadmic_sources) \
-                               runtime/cean_util.cpp \
-                               runtime/coi/coi_client.cpp \
-                               runtime/compiler_if_host.cpp \
-                               runtime/offload_engine.cpp \
-                               runtime/offload_env.cpp \
-                               runtime/offload_host.cpp \
-                               runtime/offload_omp_host.cpp \
-                               runtime/offload_orsl.cpp \
-                               runtime/offload_timer_host.cpp \
-                               runtime/orsl-lite/lib/orsl-lite.c
-
-liboffloadmic_host_la_CPPFLAGS = $(liboffloadmic_cppflags) -DHOST_LIBRARY=1
-liboffloadmic_host_la_LDFLAGS = @lt_cv_dlopen_libs@ -version-info 5:0:0
-
-liboffloadmic_target_la_SOURCES = $(liboffloadmic_sources) \
-                                 runtime/coi/coi_server.cpp \
-                                 runtime/compiler_if_target.cpp \
-                                 runtime/offload_omp_target.cpp \
-                                 runtime/offload_target.cpp \
-                                 runtime/offload_timer_target.cpp
-
-liboffloadmic_target_la_CPPFLAGS = $(liboffloadmic_cppflags) -DHOST_LIBRARY=0
-liboffloadmic_target_la_LDFLAGS = @lt_cv_dlopen_libs@ -version-info 5:0:0
-liboffloadmic_target_la_LIBADD = libcoi_device.la
-liboffloadmic_target_la_DEPENDENCIES = $(liboffloadmic_target_la_LIBADD)
-
-# Emulator.
-libcoi_host_la_SOURCES = runtime/emulator/coi_host.cpp
-libcoi_device_la_SOURCES = runtime/emulator/coi_device.cpp
-
-libcoi_host_la_DEPENDENCIES = runtime/emulator/coi_version_linker_script.map
-libcoi_device_la_DEPENDENCIES = runtime/emulator/coi_version_linker_script.map
-
-libcoi_host_la_CPPFLAGS = -I$(coi_inc_dir)
-libcoi_device_la_CPPFLAGS = -I$(coi_inc_dir)
-
-libcoi_host_la_LDFLAGS = -lrt -Wl,--version-script=$(source_dir)/emulator/coi_version_linker_script.map
-libcoi_device_la_LDFLAGS = -lrt -Wl,--version-script=$(source_dir)/emulator/coi_version_linker_script.map
-
-# ofldbegin, ofldend
-all-local: $(ofld_obj)
-
-ofldbegin.o: runtime/ofldbegin.cpp
-       $(CXXCOMPILE) $(liboffloadmic_target_la_CPPFLAGS) -c $< -o $@
-
-ofldend.o: runtime/ofldend.cpp
-       $(CXXCOMPILE) $(liboffloadmic_target_la_CPPFLAGS) -c $< -o $@
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
-       "AR_FLAGS=$(AR_FLAGS)" \
-       "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-       "CFLAGS=$(CFLAGS)" \
-       "CXXFLAGS=$(CXXFLAGS)" \
-       "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
-       "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-       "INSTALL=$(INSTALL)" \
-       "INSTALL_DATA=$(INSTALL_DATA)" \
-       "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-       "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-       "JC1FLAGS=$(JC1FLAGS)" \
-       "LDFLAGS=$(LDFLAGS)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-       "MAKE=$(MAKE)" \
-       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-       "PICFLAG=$(PICFLAG)" \
-       "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
-       "SHELL=$(SHELL)" \
-       "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
-       "exec_prefix=$(exec_prefix)" \
-       "infodir=$(infodir)" \
-       "libdir=$(libdir)" \
-       "prefix=$(prefix)" \
-       "includedir=$(includedir)" \
-       "AR=$(AR)" \
-       "AS=$(AS)" \
-       "LD=$(LD)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "NM=$(NM)" \
-       "PICFLAG=$(PICFLAG)" \
-       "RANLIB=$(RANLIB)" \
-       "DESTDIR=$(DESTDIR)"
-
-MAKEOVERRIDES =
-
-include $(top_srcdir)/../multilib.am
diff --git a/liboffloadmic/Makefile.in b/liboffloadmic/Makefile.in
deleted file mode 100644 (file)
index 43abc5a..0000000
+++ /dev/null
@@ -1,1310 +0,0 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
-
-# This Makefile.in 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.
-
-@SET_MAKE@
-
-#
-#    Copyright (c) 2014 Intel Corporation.  All Rights Reserved.
-#
-#    Redistribution and use in source and binary forms, with or without
-#    modification, are permitted provided that the following conditions
-#    are met:
-#
-#      * Redistributions of source code must retain the above copyright
-#        notice, this list of conditions and the following disclaimer.
-#      * Redistributions in binary form must reproduce the above copyright
-#        notice, this list of conditions and the following disclaimer in the
-#        documentation and/or other materials provided with the distribution.
-#      * Neither the name of Intel Corporation nor the names of its
-#        contributors may be used to endorse or promote products derived
-#        from this software without specific prior written permission.
-#
-#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-#    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-#    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-#    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-#    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-#    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-#    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
-  if test -z '$(MAKELEVEL)'; then \
-    false; \
-  elif test -n '$(MAKE_HOST)'; then \
-    true; \
-  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-    true; \
-  else \
-    false; \
-  fi; \
-}
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \  ]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../config/acx.m4 \
-       $(top_srcdir)/../config/depstand.m4 \
-       $(top_srcdir)/../config/lead-dot.m4 \
-       $(top_srcdir)/../config/multi.m4 \
-       $(top_srcdir)/../config/override.m4 \
-       $(top_srcdir)/../config/toolexeclibdir.m4 \
-       $(top_srcdir)/../libtool.m4 $(top_srcdir)/../ltoptions.m4 \
-       $(top_srcdir)/../ltsugar.m4 $(top_srcdir)/../ltversion.m4 \
-       $(top_srcdir)/../lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
-       $(am__configure_deps)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
-CONFIG_CLEAN_FILES = liboffloadmic_host.spec liboffloadmic_target.spec
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
-       "$(DESTDIR)$(libsubincludedir)" "$(DESTDIR)$(toolexeclibdir)"
-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-libcoi_device_la_LIBADD =
-am_libcoi_device_la_OBJECTS = libcoi_device_la-coi_device.lo
-libcoi_device_la_OBJECTS = $(am_libcoi_device_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-libcoi_device_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-       $(AM_CXXFLAGS) $(CXXFLAGS) $(libcoi_device_la_LDFLAGS) \
-       $(LDFLAGS) -o $@
-@LIBOFFLOADMIC_HOST_FALSE@am_libcoi_device_la_rpath = -rpath \
-@LIBOFFLOADMIC_HOST_FALSE@     $(toolexeclibdir)
-libcoi_host_la_LIBADD =
-am_libcoi_host_la_OBJECTS = libcoi_host_la-coi_host.lo
-libcoi_host_la_OBJECTS = $(am_libcoi_host_la_OBJECTS)
-libcoi_host_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-       $(AM_CXXFLAGS) $(CXXFLAGS) $(libcoi_host_la_LDFLAGS) \
-       $(LDFLAGS) -o $@
-@LIBOFFLOADMIC_HOST_TRUE@am_libcoi_host_la_rpath = -rpath \
-@LIBOFFLOADMIC_HOST_TRUE@      $(toolexeclibdir)
-liboffloadmic_host_la_LIBADD =
-am__objects_1 = liboffloadmic_host_la-dv_util.lo \
-       liboffloadmic_host_la-liboffload_error.lo \
-       liboffloadmic_host_la-liboffload_msg.lo \
-       liboffloadmic_host_la-offload_common.lo \
-       liboffloadmic_host_la-offload_table.lo \
-       liboffloadmic_host_la-offload_trace.lo \
-       liboffloadmic_host_la-offload_util.lo
-am_liboffloadmic_host_la_OBJECTS = $(am__objects_1) \
-       liboffloadmic_host_la-cean_util.lo \
-       liboffloadmic_host_la-coi_client.lo \
-       liboffloadmic_host_la-compiler_if_host.lo \
-       liboffloadmic_host_la-offload_engine.lo \
-       liboffloadmic_host_la-offload_env.lo \
-       liboffloadmic_host_la-offload_host.lo \
-       liboffloadmic_host_la-offload_omp_host.lo \
-       liboffloadmic_host_la-offload_orsl.lo \
-       liboffloadmic_host_la-offload_timer_host.lo \
-       liboffloadmic_host_la-orsl-lite.lo
-liboffloadmic_host_la_OBJECTS = $(am_liboffloadmic_host_la_OBJECTS)
-liboffloadmic_host_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-       $(AM_CXXFLAGS) $(CXXFLAGS) $(liboffloadmic_host_la_LDFLAGS) \
-       $(LDFLAGS) -o $@
-@LIBOFFLOADMIC_HOST_TRUE@am_liboffloadmic_host_la_rpath = -rpath \
-@LIBOFFLOADMIC_HOST_TRUE@      $(toolexeclibdir)
-am__objects_2 = liboffloadmic_target_la-dv_util.lo \
-       liboffloadmic_target_la-liboffload_error.lo \
-       liboffloadmic_target_la-liboffload_msg.lo \
-       liboffloadmic_target_la-offload_common.lo \
-       liboffloadmic_target_la-offload_table.lo \
-       liboffloadmic_target_la-offload_trace.lo \
-       liboffloadmic_target_la-offload_util.lo
-am_liboffloadmic_target_la_OBJECTS = $(am__objects_2) \
-       liboffloadmic_target_la-coi_server.lo \
-       liboffloadmic_target_la-compiler_if_target.lo \
-       liboffloadmic_target_la-offload_omp_target.lo \
-       liboffloadmic_target_la-offload_target.lo \
-       liboffloadmic_target_la-offload_timer_target.lo
-liboffloadmic_target_la_OBJECTS =  \
-       $(am_liboffloadmic_target_la_OBJECTS)
-liboffloadmic_target_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-       $(AM_CXXFLAGS) $(CXXFLAGS) $(liboffloadmic_target_la_LDFLAGS) \
-       $(LDFLAGS) -o $@
-@LIBOFFLOADMIC_HOST_FALSE@am_liboffloadmic_target_la_rpath = -rpath \
-@LIBOFFLOADMIC_HOST_FALSE@     $(toolexeclibdir)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/../depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
-       $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
-       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-       $(AM_CFLAGS) $(CFLAGS)
-AM_V_CC = $(am__v_CC_@AM_V@)
-am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
-am__v_CC_0 = @echo "  CC      " $@;
-am__v_CC_1 = 
-CCLD = $(CC)
-LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-       $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CCLD = $(am__v_CCLD_@AM_V@)
-am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
-am__v_CCLD_0 = @echo "  CCLD    " $@;
-am__v_CCLD_1 = 
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-       $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-       $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(libcoi_device_la_SOURCES) $(libcoi_host_la_SOURCES) \
-       $(liboffloadmic_host_la_SOURCES) \
-       $(liboffloadmic_target_la_SOURCES)
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-       ctags-recursive dvi-recursive html-recursive info-recursive \
-       install-data-recursive install-dvi-recursive \
-       install-exec-recursive install-html-recursive \
-       install-info-recursive install-pdf-recursive \
-       install-ps-recursive install-recursive installcheck-recursive \
-       installdirs-recursive pdf-recursive ps-recursive \
-       tags-recursive uninstall-recursive
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-HEADERS = $(nodist_libsubinclude_HEADERS) \
-       $(nodist_toolexeclib_HEADERS)
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive        \
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-       cscope
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-DIST_SUBDIRS = $(SUBDIRS)
-ACLOCAL = @ACLOCAL@
-ALLOCA = @ALLOCA@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-get_gcc_base_ver = @get_gcc_base_ver@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-link_offloadmic_host = @link_offloadmic_host@
-link_offloadmic_target = @link_offloadmic_target@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_cv_dlopen_libs = @lt_cv_dlopen_libs@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-multi_basedir = @multi_basedir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-subdirs = @subdirs@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-toolexecdir = @toolexecdir@
-toolexeclibdir = @toolexeclibdir@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-ACLOCAL_AMFLAGS = -I .. -I ../config
-
-# Build plugin for Intel MIC
-SUBDIRS = . plugin
-
-# Directories.
-build_dir = $(top_builddir)
-coi_inc_dir = $(top_srcdir)/include/coi
-libgomp_dir = $(build_dir)/../libgomp
-source_dir = $(top_srcdir)/runtime
-
-# May be used by toolexeclibdir.
-gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../gcc/BASE-VER)
-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)/include
-@LIBOFFLOADMIC_HOST_FALSE@nodist_toolexeclib_HEADERS = liboffloadmic_target.spec
-
-# Target list.
-@LIBOFFLOADMIC_HOST_TRUE@nodist_toolexeclib_HEADERS = liboffloadmic_host.spec
-@LIBOFFLOADMIC_HOST_FALSE@toolexeclib_LTLIBRARIES = libcoi_device.la liboffloadmic_target.la
-@LIBOFFLOADMIC_HOST_TRUE@toolexeclib_LTLIBRARIES = libcoi_host.la liboffloadmic_host.la
-@LIBOFFLOADMIC_HOST_FALSE@nodist_libsubinclude_HEADERS = runtime/compiler_if_target.h
-@LIBOFFLOADMIC_HOST_TRUE@nodist_libsubinclude_HEADERS = runtime/compiler_if_host.h
-@LIBOFFLOADMIC_HOST_FALSE@ofld_obj = ofldbegin.o ofldend.o
-@LIBOFFLOADMIC_HOST_TRUE@ofld_obj = 
-
-# Liboffloadmic.
-liboffloadmic_sources = runtime/dv_util.cpp \
-                       runtime/liboffload_error.c \
-                       runtime/liboffload_msg.c \
-                       runtime/offload_common.cpp \
-                       runtime/offload_table.cpp \
-                       runtime/offload_trace.cpp \
-                       runtime/offload_util.cpp
-
-liboffloadmic_cppflags = -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -I$(coi_inc_dir) -I$(source_dir) -I$(libgomp_dir)
-liboffloadmic_host_la_SOURCES = $(liboffloadmic_sources) \
-                               runtime/cean_util.cpp \
-                               runtime/coi/coi_client.cpp \
-                               runtime/compiler_if_host.cpp \
-                               runtime/offload_engine.cpp \
-                               runtime/offload_env.cpp \
-                               runtime/offload_host.cpp \
-                               runtime/offload_omp_host.cpp \
-                               runtime/offload_orsl.cpp \
-                               runtime/offload_timer_host.cpp \
-                               runtime/orsl-lite/lib/orsl-lite.c
-
-liboffloadmic_host_la_CPPFLAGS = $(liboffloadmic_cppflags) -DHOST_LIBRARY=1
-liboffloadmic_host_la_LDFLAGS = @lt_cv_dlopen_libs@ -version-info 5:0:0
-liboffloadmic_target_la_SOURCES = $(liboffloadmic_sources) \
-                                 runtime/coi/coi_server.cpp \
-                                 runtime/compiler_if_target.cpp \
-                                 runtime/offload_omp_target.cpp \
-                                 runtime/offload_target.cpp \
-                                 runtime/offload_timer_target.cpp
-
-liboffloadmic_target_la_CPPFLAGS = $(liboffloadmic_cppflags) -DHOST_LIBRARY=0
-liboffloadmic_target_la_LDFLAGS = @lt_cv_dlopen_libs@ -version-info 5:0:0
-liboffloadmic_target_la_LIBADD = libcoi_device.la
-liboffloadmic_target_la_DEPENDENCIES = $(liboffloadmic_target_la_LIBADD)
-
-# Emulator.
-libcoi_host_la_SOURCES = runtime/emulator/coi_host.cpp
-libcoi_device_la_SOURCES = runtime/emulator/coi_device.cpp
-libcoi_host_la_DEPENDENCIES = runtime/emulator/coi_version_linker_script.map
-libcoi_device_la_DEPENDENCIES = runtime/emulator/coi_version_linker_script.map
-libcoi_host_la_CPPFLAGS = -I$(coi_inc_dir)
-libcoi_device_la_CPPFLAGS = -I$(coi_inc_dir)
-libcoi_host_la_LDFLAGS = -lrt -Wl,--version-script=$(source_dir)/emulator/coi_version_linker_script.map
-libcoi_device_la_LDFLAGS = -lrt -Wl,--version-script=$(source_dir)/emulator/coi_version_linker_script.map
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
-       "AR_FLAGS=$(AR_FLAGS)" \
-       "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-       "CFLAGS=$(CFLAGS)" \
-       "CXXFLAGS=$(CXXFLAGS)" \
-       "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
-       "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-       "INSTALL=$(INSTALL)" \
-       "INSTALL_DATA=$(INSTALL_DATA)" \
-       "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-       "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-       "JC1FLAGS=$(JC1FLAGS)" \
-       "LDFLAGS=$(LDFLAGS)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-       "MAKE=$(MAKE)" \
-       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-       "PICFLAG=$(PICFLAG)" \
-       "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
-       "SHELL=$(SHELL)" \
-       "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
-       "exec_prefix=$(exec_prefix)" \
-       "infodir=$(infodir)" \
-       "libdir=$(libdir)" \
-       "prefix=$(prefix)" \
-       "includedir=$(includedir)" \
-       "AR=$(AR)" \
-       "AS=$(AS)" \
-       "LD=$(LD)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "NM=$(NM)" \
-       "PICFLAG=$(PICFLAG)" \
-       "RANLIB=$(RANLIB)" \
-       "DESTDIR=$(DESTDIR)"
-
-MAKEOVERRIDES = 
-MULTISRCTOP = 
-MULTIBUILDTOP = 
-MULTIDIRS = 
-MULTISUBDIR = 
-MULTIDO = true
-MULTICLEAN = true
-all: all-recursive
-
-.SUFFIXES:
-.SUFFIXES: .c .cpp .lo .o .obj
-am--refresh: Makefile
-       @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../multilib.am $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
-             $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
-               && exit 0; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           echo ' $(SHELL) ./config.status'; \
-           $(SHELL) ./config.status;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-       esac;
-$(top_srcdir)/../multilib.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-liboffloadmic_host.spec: $(top_builddir)/config.status $(srcdir)/liboffloadmic_host.spec.in
-       cd $(top_builddir) && $(SHELL) ./config.status $@
-liboffloadmic_target.spec: $(top_builddir)/config.status $(srcdir)/liboffloadmic_target.spec.in
-       cd $(top_builddir) && $(SHELL) ./config.status $@
-
-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
-       @$(NORMAL_INSTALL)
-       @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
-       list2=; for p in $$list; do \
-         if test -f $$p; then \
-           list2="$$list2 $$p"; \
-         else :; fi; \
-       done; \
-       test -z "$$list2" || { \
-         echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
-         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(toolexeclibdir)'"; \
-         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(toolexeclibdir)"; \
-       }
-
-uninstall-toolexeclibLTLIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
-       for p in $$list; do \
-         $(am__strip_dir) \
-         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(toolexeclibdir)/$$f'"; \
-         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(toolexeclibdir)/$$f"; \
-       done
-
-clean-toolexeclibLTLIBRARIES:
-       -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
-       @list='$(toolexeclib_LTLIBRARIES)'; \
-       locs=`for p in $$list; do echo $$p; done | \
-             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-             sort -u`; \
-       test -z "$$locs" || { \
-         echo rm -f $${locs}; \
-         rm -f $${locs}; \
-       }
-
-libcoi_device.la: $(libcoi_device_la_OBJECTS) $(libcoi_device_la_DEPENDENCIES) $(EXTRA_libcoi_device_la_DEPENDENCIES) 
-       $(AM_V_CXXLD)$(libcoi_device_la_LINK) $(am_libcoi_device_la_rpath) $(libcoi_device_la_OBJECTS) $(libcoi_device_la_LIBADD) $(LIBS)
-
-libcoi_host.la: $(libcoi_host_la_OBJECTS) $(libcoi_host_la_DEPENDENCIES) $(EXTRA_libcoi_host_la_DEPENDENCIES) 
-       $(AM_V_CXXLD)$(libcoi_host_la_LINK) $(am_libcoi_host_la_rpath) $(libcoi_host_la_OBJECTS) $(libcoi_host_la_LIBADD) $(LIBS)
-
-liboffloadmic_host.la: $(liboffloadmic_host_la_OBJECTS) $(liboffloadmic_host_la_DEPENDENCIES) $(EXTRA_liboffloadmic_host_la_DEPENDENCIES) 
-       $(AM_V_CXXLD)$(liboffloadmic_host_la_LINK) $(am_liboffloadmic_host_la_rpath) $(liboffloadmic_host_la_OBJECTS) $(liboffloadmic_host_la_LIBADD) $(LIBS)
-
-liboffloadmic_target.la: $(liboffloadmic_target_la_OBJECTS) $(liboffloadmic_target_la_DEPENDENCIES) $(EXTRA_liboffloadmic_target_la_DEPENDENCIES) 
-       $(AM_V_CXXLD)$(liboffloadmic_target_la_LINK) $(am_liboffloadmic_target_la_rpath) $(liboffloadmic_target_la_OBJECTS) $(liboffloadmic_target_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-       -rm -f *.$(OBJEXT)
-
-distclean-compile:
-       -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcoi_device_la-coi_device.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcoi_host_la-coi_host.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-cean_util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-coi_client.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-compiler_if_host.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-dv_util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-liboffload_error.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-liboffload_msg.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_engine.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_env.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_host.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_omp_host.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_orsl.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_timer_host.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_trace.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-offload_util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_host_la-orsl-lite.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-coi_server.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-compiler_if_target.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-dv_util.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-liboffload_error.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-liboffload_msg.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_common.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_omp_target.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_table.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_target.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_timer_target.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_trace.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/liboffloadmic_target_la-offload_util.Plo@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
-
-.c.obj:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
-
-liboffloadmic_host_la-liboffload_error.lo: runtime/liboffload_error.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liboffloadmic_host_la-liboffload_error.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-liboffload_error.Tpo -c -o liboffloadmic_host_la-liboffload_error.lo `test -f 'runtime/liboffload_error.c' || echo '$(srcdir)/'`runtime/liboffload_error.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-liboffload_error.Tpo $(DEPDIR)/liboffloadmic_host_la-liboffload_error.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='runtime/liboffload_error.c' object='liboffloadmic_host_la-liboffload_error.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liboffloadmic_host_la-liboffload_error.lo `test -f 'runtime/liboffload_error.c' || echo '$(srcdir)/'`runtime/liboffload_error.c
-
-liboffloadmic_host_la-liboffload_msg.lo: runtime/liboffload_msg.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liboffloadmic_host_la-liboffload_msg.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-liboffload_msg.Tpo -c -o liboffloadmic_host_la-liboffload_msg.lo `test -f 'runtime/liboffload_msg.c' || echo '$(srcdir)/'`runtime/liboffload_msg.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-liboffload_msg.Tpo $(DEPDIR)/liboffloadmic_host_la-liboffload_msg.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='runtime/liboffload_msg.c' object='liboffloadmic_host_la-liboffload_msg.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liboffloadmic_host_la-liboffload_msg.lo `test -f 'runtime/liboffload_msg.c' || echo '$(srcdir)/'`runtime/liboffload_msg.c
-
-liboffloadmic_host_la-orsl-lite.lo: runtime/orsl-lite/lib/orsl-lite.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liboffloadmic_host_la-orsl-lite.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-orsl-lite.Tpo -c -o liboffloadmic_host_la-orsl-lite.lo `test -f 'runtime/orsl-lite/lib/orsl-lite.c' || echo '$(srcdir)/'`runtime/orsl-lite/lib/orsl-lite.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-orsl-lite.Tpo $(DEPDIR)/liboffloadmic_host_la-orsl-lite.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='runtime/orsl-lite/lib/orsl-lite.c' object='liboffloadmic_host_la-orsl-lite.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liboffloadmic_host_la-orsl-lite.lo `test -f 'runtime/orsl-lite/lib/orsl-lite.c' || echo '$(srcdir)/'`runtime/orsl-lite/lib/orsl-lite.c
-
-liboffloadmic_target_la-liboffload_error.lo: runtime/liboffload_error.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liboffloadmic_target_la-liboffload_error.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-liboffload_error.Tpo -c -o liboffloadmic_target_la-liboffload_error.lo `test -f 'runtime/liboffload_error.c' || echo '$(srcdir)/'`runtime/liboffload_error.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-liboffload_error.Tpo $(DEPDIR)/liboffloadmic_target_la-liboffload_error.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='runtime/liboffload_error.c' object='liboffloadmic_target_la-liboffload_error.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liboffloadmic_target_la-liboffload_error.lo `test -f 'runtime/liboffload_error.c' || echo '$(srcdir)/'`runtime/liboffload_error.c
-
-liboffloadmic_target_la-liboffload_msg.lo: runtime/liboffload_msg.c
-@am__fastdepCC_TRUE@   $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT liboffloadmic_target_la-liboffload_msg.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-liboffload_msg.Tpo -c -o liboffloadmic_target_la-liboffload_msg.lo `test -f 'runtime/liboffload_msg.c' || echo '$(srcdir)/'`runtime/liboffload_msg.c
-@am__fastdepCC_TRUE@   $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-liboffload_msg.Tpo $(DEPDIR)/liboffloadmic_target_la-liboffload_msg.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      $(AM_V_CC)source='runtime/liboffload_msg.c' object='liboffloadmic_target_la-liboffload_msg.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@  $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o liboffloadmic_target_la-liboffload_msg.lo `test -f 'runtime/liboffload_msg.c' || echo '$(srcdir)/'`runtime/liboffload_msg.c
-
-.cpp.o:
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-libcoi_device_la-coi_device.lo: runtime/emulator/coi_device.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcoi_device_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcoi_device_la-coi_device.lo -MD -MP -MF $(DEPDIR)/libcoi_device_la-coi_device.Tpo -c -o libcoi_device_la-coi_device.lo `test -f 'runtime/emulator/coi_device.cpp' || echo '$(srcdir)/'`runtime/emulator/coi_device.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/libcoi_device_la-coi_device.Tpo $(DEPDIR)/libcoi_device_la-coi_device.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/emulator/coi_device.cpp' object='libcoi_device_la-coi_device.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcoi_device_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcoi_device_la-coi_device.lo `test -f 'runtime/emulator/coi_device.cpp' || echo '$(srcdir)/'`runtime/emulator/coi_device.cpp
-
-libcoi_host_la-coi_host.lo: runtime/emulator/coi_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcoi_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libcoi_host_la-coi_host.lo -MD -MP -MF $(DEPDIR)/libcoi_host_la-coi_host.Tpo -c -o libcoi_host_la-coi_host.lo `test -f 'runtime/emulator/coi_host.cpp' || echo '$(srcdir)/'`runtime/emulator/coi_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/libcoi_host_la-coi_host.Tpo $(DEPDIR)/libcoi_host_la-coi_host.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/emulator/coi_host.cpp' object='libcoi_host_la-coi_host.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcoi_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libcoi_host_la-coi_host.lo `test -f 'runtime/emulator/coi_host.cpp' || echo '$(srcdir)/'`runtime/emulator/coi_host.cpp
-
-liboffloadmic_host_la-dv_util.lo: runtime/dv_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-dv_util.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-dv_util.Tpo -c -o liboffloadmic_host_la-dv_util.lo `test -f 'runtime/dv_util.cpp' || echo '$(srcdir)/'`runtime/dv_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-dv_util.Tpo $(DEPDIR)/liboffloadmic_host_la-dv_util.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/dv_util.cpp' object='liboffloadmic_host_la-dv_util.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-dv_util.lo `test -f 'runtime/dv_util.cpp' || echo '$(srcdir)/'`runtime/dv_util.cpp
-
-liboffloadmic_host_la-offload_common.lo: runtime/offload_common.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_common.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_common.Tpo -c -o liboffloadmic_host_la-offload_common.lo `test -f 'runtime/offload_common.cpp' || echo '$(srcdir)/'`runtime/offload_common.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_common.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_common.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_common.cpp' object='liboffloadmic_host_la-offload_common.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_common.lo `test -f 'runtime/offload_common.cpp' || echo '$(srcdir)/'`runtime/offload_common.cpp
-
-liboffloadmic_host_la-offload_table.lo: runtime/offload_table.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_table.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_table.Tpo -c -o liboffloadmic_host_la-offload_table.lo `test -f 'runtime/offload_table.cpp' || echo '$(srcdir)/'`runtime/offload_table.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_table.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_table.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_table.cpp' object='liboffloadmic_host_la-offload_table.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_table.lo `test -f 'runtime/offload_table.cpp' || echo '$(srcdir)/'`runtime/offload_table.cpp
-
-liboffloadmic_host_la-offload_trace.lo: runtime/offload_trace.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_trace.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_trace.Tpo -c -o liboffloadmic_host_la-offload_trace.lo `test -f 'runtime/offload_trace.cpp' || echo '$(srcdir)/'`runtime/offload_trace.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_trace.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_trace.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_trace.cpp' object='liboffloadmic_host_la-offload_trace.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_trace.lo `test -f 'runtime/offload_trace.cpp' || echo '$(srcdir)/'`runtime/offload_trace.cpp
-
-liboffloadmic_host_la-offload_util.lo: runtime/offload_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_util.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_util.Tpo -c -o liboffloadmic_host_la-offload_util.lo `test -f 'runtime/offload_util.cpp' || echo '$(srcdir)/'`runtime/offload_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_util.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_util.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_util.cpp' object='liboffloadmic_host_la-offload_util.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_util.lo `test -f 'runtime/offload_util.cpp' || echo '$(srcdir)/'`runtime/offload_util.cpp
-
-liboffloadmic_host_la-cean_util.lo: runtime/cean_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-cean_util.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-cean_util.Tpo -c -o liboffloadmic_host_la-cean_util.lo `test -f 'runtime/cean_util.cpp' || echo '$(srcdir)/'`runtime/cean_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-cean_util.Tpo $(DEPDIR)/liboffloadmic_host_la-cean_util.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/cean_util.cpp' object='liboffloadmic_host_la-cean_util.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-cean_util.lo `test -f 'runtime/cean_util.cpp' || echo '$(srcdir)/'`runtime/cean_util.cpp
-
-liboffloadmic_host_la-coi_client.lo: runtime/coi/coi_client.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-coi_client.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-coi_client.Tpo -c -o liboffloadmic_host_la-coi_client.lo `test -f 'runtime/coi/coi_client.cpp' || echo '$(srcdir)/'`runtime/coi/coi_client.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-coi_client.Tpo $(DEPDIR)/liboffloadmic_host_la-coi_client.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/coi/coi_client.cpp' object='liboffloadmic_host_la-coi_client.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-coi_client.lo `test -f 'runtime/coi/coi_client.cpp' || echo '$(srcdir)/'`runtime/coi/coi_client.cpp
-
-liboffloadmic_host_la-compiler_if_host.lo: runtime/compiler_if_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-compiler_if_host.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-compiler_if_host.Tpo -c -o liboffloadmic_host_la-compiler_if_host.lo `test -f 'runtime/compiler_if_host.cpp' || echo '$(srcdir)/'`runtime/compiler_if_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-compiler_if_host.Tpo $(DEPDIR)/liboffloadmic_host_la-compiler_if_host.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/compiler_if_host.cpp' object='liboffloadmic_host_la-compiler_if_host.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-compiler_if_host.lo `test -f 'runtime/compiler_if_host.cpp' || echo '$(srcdir)/'`runtime/compiler_if_host.cpp
-
-liboffloadmic_host_la-offload_engine.lo: runtime/offload_engine.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_engine.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_engine.Tpo -c -o liboffloadmic_host_la-offload_engine.lo `test -f 'runtime/offload_engine.cpp' || echo '$(srcdir)/'`runtime/offload_engine.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_engine.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_engine.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_engine.cpp' object='liboffloadmic_host_la-offload_engine.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_engine.lo `test -f 'runtime/offload_engine.cpp' || echo '$(srcdir)/'`runtime/offload_engine.cpp
-
-liboffloadmic_host_la-offload_env.lo: runtime/offload_env.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_env.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_env.Tpo -c -o liboffloadmic_host_la-offload_env.lo `test -f 'runtime/offload_env.cpp' || echo '$(srcdir)/'`runtime/offload_env.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_env.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_env.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_env.cpp' object='liboffloadmic_host_la-offload_env.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_env.lo `test -f 'runtime/offload_env.cpp' || echo '$(srcdir)/'`runtime/offload_env.cpp
-
-liboffloadmic_host_la-offload_host.lo: runtime/offload_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_host.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_host.Tpo -c -o liboffloadmic_host_la-offload_host.lo `test -f 'runtime/offload_host.cpp' || echo '$(srcdir)/'`runtime/offload_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_host.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_host.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_host.cpp' object='liboffloadmic_host_la-offload_host.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_host.lo `test -f 'runtime/offload_host.cpp' || echo '$(srcdir)/'`runtime/offload_host.cpp
-
-liboffloadmic_host_la-offload_omp_host.lo: runtime/offload_omp_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_omp_host.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_omp_host.Tpo -c -o liboffloadmic_host_la-offload_omp_host.lo `test -f 'runtime/offload_omp_host.cpp' || echo '$(srcdir)/'`runtime/offload_omp_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_omp_host.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_omp_host.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_omp_host.cpp' object='liboffloadmic_host_la-offload_omp_host.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_omp_host.lo `test -f 'runtime/offload_omp_host.cpp' || echo '$(srcdir)/'`runtime/offload_omp_host.cpp
-
-liboffloadmic_host_la-offload_orsl.lo: runtime/offload_orsl.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_orsl.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_orsl.Tpo -c -o liboffloadmic_host_la-offload_orsl.lo `test -f 'runtime/offload_orsl.cpp' || echo '$(srcdir)/'`runtime/offload_orsl.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_orsl.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_orsl.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_orsl.cpp' object='liboffloadmic_host_la-offload_orsl.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_orsl.lo `test -f 'runtime/offload_orsl.cpp' || echo '$(srcdir)/'`runtime/offload_orsl.cpp
-
-liboffloadmic_host_la-offload_timer_host.lo: runtime/offload_timer_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_host_la-offload_timer_host.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_host_la-offload_timer_host.Tpo -c -o liboffloadmic_host_la-offload_timer_host.lo `test -f 'runtime/offload_timer_host.cpp' || echo '$(srcdir)/'`runtime/offload_timer_host.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_host_la-offload_timer_host.Tpo $(DEPDIR)/liboffloadmic_host_la-offload_timer_host.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_timer_host.cpp' object='liboffloadmic_host_la-offload_timer_host.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_host_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_host_la-offload_timer_host.lo `test -f 'runtime/offload_timer_host.cpp' || echo '$(srcdir)/'`runtime/offload_timer_host.cpp
-
-liboffloadmic_target_la-dv_util.lo: runtime/dv_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-dv_util.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-dv_util.Tpo -c -o liboffloadmic_target_la-dv_util.lo `test -f 'runtime/dv_util.cpp' || echo '$(srcdir)/'`runtime/dv_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-dv_util.Tpo $(DEPDIR)/liboffloadmic_target_la-dv_util.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/dv_util.cpp' object='liboffloadmic_target_la-dv_util.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-dv_util.lo `test -f 'runtime/dv_util.cpp' || echo '$(srcdir)/'`runtime/dv_util.cpp
-
-liboffloadmic_target_la-offload_common.lo: runtime/offload_common.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_common.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_common.Tpo -c -o liboffloadmic_target_la-offload_common.lo `test -f 'runtime/offload_common.cpp' || echo '$(srcdir)/'`runtime/offload_common.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_common.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_common.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_common.cpp' object='liboffloadmic_target_la-offload_common.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_common.lo `test -f 'runtime/offload_common.cpp' || echo '$(srcdir)/'`runtime/offload_common.cpp
-
-liboffloadmic_target_la-offload_table.lo: runtime/offload_table.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_table.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_table.Tpo -c -o liboffloadmic_target_la-offload_table.lo `test -f 'runtime/offload_table.cpp' || echo '$(srcdir)/'`runtime/offload_table.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_table.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_table.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_table.cpp' object='liboffloadmic_target_la-offload_table.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_table.lo `test -f 'runtime/offload_table.cpp' || echo '$(srcdir)/'`runtime/offload_table.cpp
-
-liboffloadmic_target_la-offload_trace.lo: runtime/offload_trace.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_trace.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_trace.Tpo -c -o liboffloadmic_target_la-offload_trace.lo `test -f 'runtime/offload_trace.cpp' || echo '$(srcdir)/'`runtime/offload_trace.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_trace.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_trace.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_trace.cpp' object='liboffloadmic_target_la-offload_trace.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_trace.lo `test -f 'runtime/offload_trace.cpp' || echo '$(srcdir)/'`runtime/offload_trace.cpp
-
-liboffloadmic_target_la-offload_util.lo: runtime/offload_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_util.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_util.Tpo -c -o liboffloadmic_target_la-offload_util.lo `test -f 'runtime/offload_util.cpp' || echo '$(srcdir)/'`runtime/offload_util.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_util.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_util.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_util.cpp' object='liboffloadmic_target_la-offload_util.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_util.lo `test -f 'runtime/offload_util.cpp' || echo '$(srcdir)/'`runtime/offload_util.cpp
-
-liboffloadmic_target_la-coi_server.lo: runtime/coi/coi_server.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-coi_server.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-coi_server.Tpo -c -o liboffloadmic_target_la-coi_server.lo `test -f 'runtime/coi/coi_server.cpp' || echo '$(srcdir)/'`runtime/coi/coi_server.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-coi_server.Tpo $(DEPDIR)/liboffloadmic_target_la-coi_server.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/coi/coi_server.cpp' object='liboffloadmic_target_la-coi_server.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-coi_server.lo `test -f 'runtime/coi/coi_server.cpp' || echo '$(srcdir)/'`runtime/coi/coi_server.cpp
-
-liboffloadmic_target_la-compiler_if_target.lo: runtime/compiler_if_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-compiler_if_target.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-compiler_if_target.Tpo -c -o liboffloadmic_target_la-compiler_if_target.lo `test -f 'runtime/compiler_if_target.cpp' || echo '$(srcdir)/'`runtime/compiler_if_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-compiler_if_target.Tpo $(DEPDIR)/liboffloadmic_target_la-compiler_if_target.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/compiler_if_target.cpp' object='liboffloadmic_target_la-compiler_if_target.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-compiler_if_target.lo `test -f 'runtime/compiler_if_target.cpp' || echo '$(srcdir)/'`runtime/compiler_if_target.cpp
-
-liboffloadmic_target_la-offload_omp_target.lo: runtime/offload_omp_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_omp_target.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_omp_target.Tpo -c -o liboffloadmic_target_la-offload_omp_target.lo `test -f 'runtime/offload_omp_target.cpp' || echo '$(srcdir)/'`runtime/offload_omp_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_omp_target.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_omp_target.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_omp_target.cpp' object='liboffloadmic_target_la-offload_omp_target.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_omp_target.lo `test -f 'runtime/offload_omp_target.cpp' || echo '$(srcdir)/'`runtime/offload_omp_target.cpp
-
-liboffloadmic_target_la-offload_target.lo: runtime/offload_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_target.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_target.Tpo -c -o liboffloadmic_target_la-offload_target.lo `test -f 'runtime/offload_target.cpp' || echo '$(srcdir)/'`runtime/offload_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_target.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_target.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_target.cpp' object='liboffloadmic_target_la-offload_target.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_target.lo `test -f 'runtime/offload_target.cpp' || echo '$(srcdir)/'`runtime/offload_target.cpp
-
-liboffloadmic_target_la-offload_timer_target.lo: runtime/offload_timer_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT liboffloadmic_target_la-offload_timer_target.lo -MD -MP -MF $(DEPDIR)/liboffloadmic_target_la-offload_timer_target.Tpo -c -o liboffloadmic_target_la-offload_timer_target.lo `test -f 'runtime/offload_timer_target.cpp' || echo '$(srcdir)/'`runtime/offload_timer_target.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/liboffloadmic_target_la-offload_timer_target.Tpo $(DEPDIR)/liboffloadmic_target_la-offload_timer_target.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='runtime/offload_timer_target.cpp' object='liboffloadmic_target_la-offload_timer_target.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(liboffloadmic_target_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o liboffloadmic_target_la-offload_timer_target.lo `test -f 'runtime/offload_timer_target.cpp' || echo '$(srcdir)/'`runtime/offload_timer_target.cpp
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-distclean-libtool:
-       -rm -f libtool config.lt
-install-nodist_libsubincludeHEADERS: $(nodist_libsubinclude_HEADERS)
-       @$(NORMAL_INSTALL)
-       @list='$(nodist_libsubinclude_HEADERS)'; test -n "$(libsubincludedir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(libsubincludedir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(libsubincludedir)" || exit 1; \
-       fi; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libsubincludedir)'"; \
-         $(INSTALL_HEADER) $$files "$(DESTDIR)$(libsubincludedir)" || exit $$?; \
-       done
-
-uninstall-nodist_libsubincludeHEADERS:
-       @$(NORMAL_UNINSTALL)
-       @list='$(nodist_libsubinclude_HEADERS)'; test -n "$(libsubincludedir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(libsubincludedir)'; $(am__uninstall_files_from_dir)
-install-nodist_toolexeclibHEADERS: $(nodist_toolexeclib_HEADERS)
-       @$(NORMAL_INSTALL)
-       @list='$(nodist_toolexeclib_HEADERS)'; test -n "$(toolexeclibdir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
-       fi; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(toolexeclibdir)'"; \
-         $(INSTALL_HEADER) $$files "$(DESTDIR)$(toolexeclibdir)" || exit $$?; \
-       done
-
-uninstall-nodist_toolexeclibHEADERS:
-       @$(NORMAL_UNINSTALL)
-       @list='$(nodist_toolexeclib_HEADERS)'; test -n "$(toolexeclibdir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(toolexeclibdir)'; $(am__uninstall_files_from_dir)
-
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-       @fail=; \
-       if $(am__make_keepgoing); then \
-         failcom='fail=yes'; \
-       else \
-         failcom='exit 1'; \
-       fi; \
-       dot_seen=no; \
-       target=`echo $@ | sed s/-recursive//`; \
-       case "$@" in \
-         distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-         *) list='$(SUBDIRS)' ;; \
-       esac; \
-       for subdir in $$list; do \
-         echo "Making $$target in $$subdir"; \
-         if test "$$subdir" = "."; then \
-           dot_seen=yes; \
-           local_target="$$target-am"; \
-         else \
-           local_target="$$target"; \
-         fi; \
-         ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-         || eval $$failcom; \
-       done; \
-       if test "$$dot_seen" = "no"; then \
-         $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-       fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-       $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-       set x; \
-       here=`pwd`; \
-       if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-         include_option=--etags-include; \
-         empty_fix=.; \
-       else \
-         include_option=--include; \
-         empty_fix=; \
-       fi; \
-       list='$(SUBDIRS)'; for subdir in $$list; do \
-         if test "$$subdir" = .; then :; else \
-           test ! -f $$subdir/TAGS || \
-             set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-         fi; \
-       done; \
-       $(am__define_uniq_tagged_files); \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-       $(am__define_uniq_tagged_files); \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
-
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
-       test ! -s cscope.files \
-         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
-       -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-       list='$(am__tagged_files)'; \
-       case "$(srcdir)" in \
-         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-         *) sdir=$(subdir)/$(srcdir) ;; \
-       esac; \
-       for i in $$list; do \
-         if test -f "$$i"; then \
-           echo "$(subdir)/$$i"; \
-         else \
-           echo "$$sdir/$$i"; \
-         fi; \
-       done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-check-am: all-am
-check: check-recursive
-all-am: Makefile $(LTLIBRARIES) $(HEADERS) all-local
-installdirs: installdirs-recursive
-installdirs-am:
-       for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(libsubincludedir)" "$(DESTDIR)$(toolexeclibdir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-recursive
-install-strip:
-       if test -z '$(STRIP)'; then \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-             install; \
-       else \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-       fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
-
-clean-am: clean-generic clean-libtool clean-local \
-       clean-toolexeclibLTLIBRARIES mostlyclean-am
-
-distclean: distclean-recursive
-       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-       distclean-libtool distclean-local distclean-tags
-
-dvi: dvi-recursive
-
-dvi-am:
-
-html: html-recursive
-
-html-am:
-
-info: info-recursive
-
-info-am:
-
-install-data-am: install-nodist_libsubincludeHEADERS
-
-install-dvi: install-dvi-recursive
-
-install-dvi-am:
-
-install-exec-am: install-exec-local install-nodist_toolexeclibHEADERS \
-       install-toolexeclibLTLIBRARIES
-
-install-html: install-html-recursive
-
-install-html-am:
-
-install-info: install-info-recursive
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-recursive
-
-install-pdf-am:
-
-install-ps: install-ps-recursive
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-recursive
-       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-       -rm -rf $(top_srcdir)/autom4te.cache
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic \
-       maintainer-clean-local
-
-mostlyclean: mostlyclean-recursive
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool mostlyclean-local
-
-pdf: pdf-recursive
-
-pdf-am:
-
-ps: ps-recursive
-
-ps-am:
-
-uninstall-am: uninstall-nodist_libsubincludeHEADERS \
-       uninstall-nodist_toolexeclibHEADERS \
-       uninstall-toolexeclibLTLIBRARIES
-
-.MAKE: $(am__recursive_targets) install-am install-strip
-
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \
-       am--refresh check check-am clean clean-cscope clean-generic \
-       clean-libtool clean-local clean-toolexeclibLTLIBRARIES cscope \
-       cscopelist-am ctags ctags-am distclean distclean-compile \
-       distclean-generic distclean-libtool distclean-local \
-       distclean-tags dvi dvi-am html html-am info info-am install \
-       install-am install-data install-data-am install-dvi \
-       install-dvi-am install-exec install-exec-am install-exec-local \
-       install-html install-html-am install-info install-info-am \
-       install-man install-nodist_libsubincludeHEADERS \
-       install-nodist_toolexeclibHEADERS install-pdf install-pdf-am \
-       install-ps install-ps-am install-strip \
-       install-toolexeclibLTLIBRARIES installcheck installcheck-am \
-       installdirs installdirs-am maintainer-clean \
-       maintainer-clean-generic maintainer-clean-local mostlyclean \
-       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-       mostlyclean-local pdf pdf-am ps ps-am tags tags-am uninstall \
-       uninstall-am uninstall-nodist_libsubincludeHEADERS \
-       uninstall-nodist_toolexeclibHEADERS \
-       uninstall-toolexeclibLTLIBRARIES
-
-.PRECIOUS: Makefile
-
-
-# ofldbegin, ofldend
-all-local: $(ofld_obj)
-
-ofldbegin.o: runtime/ofldbegin.cpp
-       $(CXXCOMPILE) $(liboffloadmic_target_la_CPPFLAGS) -c $< -o $@
-
-ofldend.o: runtime/ofldend.cpp
-       $(CXXCOMPILE) $(liboffloadmic_target_la_CPPFLAGS) -c $< -o $@
-
-# GNU Make needs to see an explicit $(MAKE) variable in the command it
-# runs to enable its job server during parallel builds.  Hence the
-# comments below.
-all-multi:
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
-install-multi:
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
-mostlyclean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
-clean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
-distclean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
-maintainer-clean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
-
-.MAKE .PHONY: all-multi clean-multi distclean-multi install-am \
-             install-multi maintainer-clean-multi mostlyclean-multi
-
-install-exec-local: install-multi
-
-all-local: all-multi
-mostlyclean-local: mostlyclean-multi
-clean-local: clean-multi
-distclean-local: distclean-multi
-maintainer-clean-local: maintainer-clean-multi
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/liboffloadmic/aclocal.m4 b/liboffloadmic/aclocal.m4
deleted file mode 100644 (file)
index 31a2695..0000000
+++ /dev/null
@@ -1,1180 +0,0 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 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.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-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'.])])
-
-# Copyright (C) 2002-2017 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.15'
-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.15.1], [],
-      [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.15.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
-
-# Copyright (C) 2001-2017 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-2017 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-2017 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-2017 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.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
-])# _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.  FIXME.  This creates each '.P' file that we will
-# 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" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake.                             -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 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
-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_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([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:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://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
-])
-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: <http://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-2017 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])])
-
-# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2017 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-2017 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 to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-       @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
-
-# Copyright (C) 1997-2017 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
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-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-2017 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-2017 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-2017 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-2017 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-2017 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-2017 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-2017 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-2017 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([../config/acx.m4])
-m4_include([../config/depstand.m4])
-m4_include([../config/lead-dot.m4])
-m4_include([../config/multi.m4])
-m4_include([../config/override.m4])
-m4_include([../config/toolexeclibdir.m4])
-m4_include([../libtool.m4])
-m4_include([../ltoptions.m4])
-m4_include([../ltsugar.m4])
-m4_include([../ltversion.m4])
-m4_include([../lt~obsolete.m4])
diff --git a/liboffloadmic/configure b/liboffloadmic/configure
deleted file mode 100755 (executable)
index b3cfff7..0000000
+++ /dev/null
@@ -1,17512 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for MIC Offload Runtime Library 1.0.
-#
-#
-# 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 about your system,
-$0: 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='MIC Offload Runtime Library'
-PACKAGE_TARNAME='liboffloadmic'
-PACKAGE_VERSION='1.0'
-PACKAGE_STRING='MIC Offload Runtime Library 1.0'
-PACKAGE_BUGREPORT=''
-PACKAGE_URL=''
-
-enable_option_checking=no
-# 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='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-get_gcc_base_ver
-link_offloadmic_target
-link_offloadmic_host
-lt_cv_dlopen_libs
-toolexeclibdir
-toolexecdir
-CXXCPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-RANLIB
-AR
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-SED
-LIBTOOL
-LIBOFFLOADMIC_HOST_FALSE
-LIBOFFLOADMIC_HOST_TRUE
-ALLOCA
-EGREP
-GREP
-CPP
-subdirs
-multi_basedir
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_os
-target_vendor
-target_cpu
-target
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-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'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_maintainer_mode
-enable_dependency_tracking
-enable_multilib
-enable_version_specific_runtime_libs
-with_toolexeclibdir
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-enable_libtool_lock
-with_gcc_major_version_only
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CXX
-CXXFLAGS
-CCC
-CPP
-CXXCPP'
-ac_subdirs_all='plugin'
-
-# 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 MIC Offload Runtime Library 1.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/liboffloadmic]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-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 MIC Offload Runtime Library 1.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]
-  --enable-silent-rules   less verbose build output (undo: "make V=1")
-  --disable-silent-rules  verbose build output (undo: "make V=0")
-  --enable-maintainer-mode
-                          enable make rules and dependencies not useful (and
-                          sometimes confusing) to the casual installer
-  --enable-dependency-tracking
-                          do not reject slow dependency extractors
-  --disable-dependency-tracking
-                          speeds up one-time build
-  --enable-multilib       build many library versions (default)
-  --enable-version-specific-runtime-libs
-                          Specify that runtime libraries should be installed
-                          in a compiler-specific directory
-  --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)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-toolexeclibdir=DIR
-                          install libraries built with a cross compiler within
-                          DIR
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-gcc-major-version-only
-                          use only GCC major number in filesystem paths
-
-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
-  CPP         C preprocessor
-  CXXCPP      C++ preprocessor
-
-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 the package provider.
-_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
-MIC Offload Runtime Library configure 1.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_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
-
-# 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_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_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_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_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;}
-    ;;
-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_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
-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 MIC Offload Runtime Library $as_me 1.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_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}
-
-
-am__api_version='1.15'
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-         if test $ac_prog = install &&
-           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # AIX install.  It has an incompatible calling convention.
-           :
-         elif test $ac_prog = install &&
-           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # program-specific install script used by HP pwplus--don't use.
-           :
-         else
-           rm -rf conftest.one conftest.two conftest.dir
-           echo one > conftest.one
-           echo two > conftest.two
-           mkdir conftest.dir
-           if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-             test -s conftest.one && test -s conftest.two &&
-             test -s conftest.dir/conftest.one &&
-             test -s conftest.dir/conftest.two
-           then
-             ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-             break 3
-           fi
-         fi
-       fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# 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]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-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".
-       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment" "$LINENO" 5
-     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
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# 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
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
-  am_missing_run="$MISSING "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-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
-
-# 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.
-if test "$cross_compiling" != no; then
-  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
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-        for ac_exec_ext in '' $ac_executable_extensions; do
-          as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
-          case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-            'mkdir (GNU coreutils) '* | \
-            'mkdir (coreutils) '* | \
-            'mkdir (fileutils) '4.1*)
-              ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-              break 3;;
-          esac
-        done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-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
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-       @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-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
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
-  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
-
-
-# Define the identity of the package.
- PACKAGE='liboffloadmic'
- VERSION='1.0'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver).  The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar  pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# 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: <http://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
-    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
-  fi
-fi
-
-
-{ $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
-
-
-
-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
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-       @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# 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
-
-
-
-depcc="$CC"   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_CC_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_CC_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
-  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_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-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
-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
-
-depcc="$CXX"  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_CXX_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_CXX_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
-  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_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-ac_config_files="$ac_config_files Makefile liboffloadmic_host.spec liboffloadmic_target.spec"
-
-# Default to --enable-multilib
-# Check whether --enable-multilib was given.
-if test "${enable_multilib+set}" = set; then :
-  enableval=$enable_multilib; case "$enableval" in
-  yes) multilib=yes ;;
-  no)  multilib=no ;;
-  *)   as_fn_error $? "bad value $enableval for multilib option" "$LINENO" 5 ;;
- esac
-else
-  multilib=yes
-fi
-
-
-# We may get other options which we leave undocumented:
-# --with-target-subdir, --with-multisrctop, --with-multisubdir
-# See config-ml.in if you want the gory details.
-
-if test "$srcdir" = "."; then
-  if test "$with_target_subdir" != "."; then
-    multi_basedir="$srcdir/$with_multisrctop../.."
-  else
-    multi_basedir="$srcdir/$with_multisrctop.."
-  fi
-else
-  multi_basedir="$srcdir/.."
-fi
-
-
-# Even if the default multilib is not a cross compilation,
-# it may be that some of the other multilibs are.
-if test $cross_compiling = no && test $multilib = yes \
-   && test "x${with_multisubdir}" != x ; then
-   cross_compiling=maybe
-fi
-
-ac_config_commands="$ac_config_commands default-1"
-
-
-
-subdirs="$subdirs plugin"
-
-
-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 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"
-
-
-{ $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
-
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
-# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
-# for constant arguments.  Useless!
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working alloca.h" >&5
-$as_echo_n "checking for working alloca.h... " >&6; }
-if ${ac_cv_working_alloca_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <alloca.h>
-int
-main ()
-{
-char *p = (char *) alloca (2 * sizeof (int));
-                         if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_working_alloca_h=yes
-else
-  ac_cv_working_alloca_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
-$as_echo "$ac_cv_working_alloca_h" >&6; }
-if test $ac_cv_working_alloca_h = yes; then
-
-$as_echo "#define HAVE_ALLOCA_H 1" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for alloca" >&5
-$as_echo_n "checking for alloca... " >&6; }
-if ${ac_cv_func_alloca_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __GNUC__
-# define alloca __builtin_alloca
-#else
-# ifdef _MSC_VER
-#  include <malloc.h>
-#  define alloca _alloca
-# else
-#  ifdef HAVE_ALLOCA_H
-#   include <alloca.h>
-#  else
-#   ifdef _AIX
- #pragma alloca
-#   else
-#    ifndef alloca /* predefined by HP cc +Olibcalls */
-void *alloca (size_t);
-#    endif
-#   endif
-#  endif
-# endif
-#endif
-
-int
-main ()
-{
-char *p = (char *) alloca (1);
-                                   if (p) return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_func_alloca_works=yes
-else
-  ac_cv_func_alloca_works=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
-$as_echo "$ac_cv_func_alloca_works" >&6; }
-
-if test $ac_cv_func_alloca_works = yes; then
-
-$as_echo "#define HAVE_ALLOCA 1" >>confdefs.h
-
-else
-  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
-# that cause trouble.  Some versions do not even contain alloca or
-# contain a buggy version.  If you still want to use their alloca,
-# use ar to extract alloca.o from them instead of compiling alloca.c.
-
-ALLOCA=\${LIBOBJDIR}alloca.$ac_objext
-
-$as_echo "#define C_ALLOCA 1" >>confdefs.h
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether \`alloca.c' needs Cray hooks" >&5
-$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
-if ${ac_cv_os_cray+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#if defined CRAY && ! defined CRAY2
-webecray
-#else
-wenotbecray
-#endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "webecray" >/dev/null 2>&1; then :
-  ac_cv_os_cray=yes
-else
-  ac_cv_os_cray=no
-fi
-rm -f conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_os_cray" >&5
-$as_echo "$ac_cv_os_cray" >&6; }
-if test $ac_cv_os_cray = yes; then
-  for ac_func in _getb67 GETB67 getb67; do
-    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-
-cat >>confdefs.h <<_ACEOF
-#define CRAY_STACKSEG_END $ac_func
-_ACEOF
-
-    break
-fi
-
-  done
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking stack direction for C alloca" >&5
-$as_echo_n "checking stack direction for C alloca... " >&6; }
-if ${ac_cv_c_stack_direction+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_c_stack_direction=0
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-find_stack_direction (int *addr, int depth)
-{
-  int dir, dummy = 0;
-  if (! addr)
-    addr = &dummy;
-  *addr = addr < &dummy ? 1 : addr == &dummy ? 0 : -1;
-  dir = depth ? find_stack_direction (addr, depth - 1) : 0;
-  return dir + dummy;
-}
-
-int
-main (int argc, char **argv)
-{
-  return find_stack_direction (0, argc + !argv + 20) < 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_stack_direction=1
-else
-  ac_cv_c_stack_direction=-1
-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: $ac_cv_c_stack_direction" >&5
-$as_echo "$ac_cv_c_stack_direction" >&6; }
-cat >>confdefs.h <<_ACEOF
-#define STACK_DIRECTION $ac_cv_c_stack_direction
-_ACEOF
-
-
-fi
-
-for ac_header in mm_malloc.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "mm_malloc.h" "ac_cv_header_mm_malloc_h" "$ac_includes_default"
-if test "x$ac_cv_header_mm_malloc_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_MM_MALLOC_H 1
-_ACEOF
-
-else
-  as_fn_error $? "\"Couldn't find mm_malloc.h\"" "$LINENO" 5
-fi
-
-done
-
-for ac_func in __secure_getenv secure_getenv
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-# Get target configure.
-. ${srcdir}/configure.tgt
-if test -n "$UNSUPPORTED"; then
-  as_fn_error $? "Configuration ${target} is unsupported" "$LINENO" 5
-fi
-
-if test "${multilib}" = "yes"; then
-  multilib_arg="--enable-multilib"
-else
-  multilib_arg=
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-version-specific-runtime-libs" >&5
-$as_echo_n "checking for --enable-version-specific-runtime-libs... " >&6; }
-# Check whether --enable-version-specific-runtime-libs was given.
-if test "${enable_version_specific_runtime_libs+set}" = set; then :
-  enableval=$enable_version_specific_runtime_libs; case "$enableval" in
-    yes) enable_version_specific_runtime_libs=yes ;;
-    no)  enable_version_specific_runtime_libs=no ;;
-    *)   as_fn_error $? "Unknown argument to enable/disable version-specific libs" "$LINENO" 5;;
-   esac
-else
-  enable_version_specific_runtime_libs=no
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_version_specific_runtime_libs" >&5
-$as_echo "$enable_version_specific_runtime_libs" >&6; }
-
-# Make sure liboffloadmic is enabled
-case "$enable_liboffloadmic" in
-  host | target)
-    ;;
-  *)
-    as_fn_error $? "Liboffloadmic is disabled" "$LINENO" 5 ;;
-esac
- if test x"$enable_liboffloadmic" = xhost; then
-  LIBOFFLOADMIC_HOST_TRUE=
-  LIBOFFLOADMIC_HOST_FALSE='#'
-else
-  LIBOFFLOADMIC_HOST_TRUE='#'
-  LIBOFFLOADMIC_HOST_FALSE=
-fi
-
-
-
-# Check whether --with-toolexeclibdir was given.
-if test "${with_toolexeclibdir+set}" = set; then :
-  withval=$with_toolexeclibdir; case ${with_toolexeclibdir} in
-  /)
-    ;;
-  */)
-    with_toolexeclibdir=`echo $with_toolexeclibdir | sed 's,/$,,'`
-    ;;
-esac
-else
-  with_toolexeclibdir=no
-fi
-
-
-
-# Calculate toolexeclibdir.
-# Also toolexecdir, though it's only used in toolexeclibdir.
-case ${enable_version_specific_runtime_libs} in
-  yes)
-    # Need the gcc compiler version to know where to install libraries
-    # and header files if --enable-version-specific-runtime-libs option
-    # is selected.
-    toolexecdir='$(libdir)/gcc/$(target_alias)'
-    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
-    ;;
-  no)
-    if test -n "$with_cross_host" &&
-       test x"$with_cross_host" != x"no"; then
-      # Install a library built with a cross compiler in tooldir, not libdir.
-      toolexecdir='$(exec_prefix)/$(target_alias)'
-      case ${with_toolexeclibdir} in
-       no)
-         toolexeclibdir='$(toolexecdir)/lib'
-         ;;
-       *)
-         toolexeclibdir=${with_toolexeclibdir}
-         ;;
-      esac
-    else
-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-      toolexeclibdir='$(libdir)'
-    fi
-    multi_os_directory=`$CC -print-multi-os-directory`
-    case $multi_os_directory in
-      .) ;; # Avoid trailing /.
-      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
-    esac
-    ;;
-esac
-
-enable_dlopen=yes
-
-
-
-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.2.7a'
-macro_revision='1.3134'
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && 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
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
-         lt_cv_path_NM="$tmp_nm -B"
-         break
-         ;;
-       *)
-         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-         */dev/null*)
-           lt_cv_path_NM="$tmp_nm -p"
-           break
-           ;;
-         *)
-           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 "$lt_cv_path_NM" != "no"; 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 /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      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;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # 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
-    ;;
-
-  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"; 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"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
-                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-             test $i != 17 # 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"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-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 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
-  darwin*)
-    if test "$GCC" = yes; 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}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
-# which 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='/usr/bin/file -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.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && 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
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    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*)
-  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=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  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 Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  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=/usr/bin/file
-  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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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
-  ;;
-vxworks*)
-  # Assume VxWorks cross toolchains are built on Linux, possibly
-  # as canadian for Windows hosts.
-  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_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}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; 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}ar"
-    $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
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; 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="ar"
-    $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
-
-  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
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-
-
-
-
-
-
-
-
-
-
-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
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 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 "$host_cpu" = ia64; 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
-
-# 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 -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$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 -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/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
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print 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
-
-  # 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
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && 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
-#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.  */
-const struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$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_save_LIBS="$LIBS"
-         lt_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_save_LIBS"
-         CFLAGS="$lt_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 "$pipe_works" = yes; 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && 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 which ABI we are using.
-  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 `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-       HPUX_IA64_MODE="32"
-       ;;
-      *ELF-64*)
-       HPUX_IA64_MODE="64"
-       ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  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 "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-       *32-bit*)
-         LD="${LD-ld} -melf32bsmip"
-         ;;
-       *N32*)
-         LD="${LD-ld} -melf32bmipn32"
-         ;;
-       *64-bit*)
-         LD="${LD-ld} -melf64bmip"
-       ;;
-      esac
-    else
-      case `/usr/bin/file 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*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  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 `/usr/bin/file conftest.o` in
-      *32-bit*)
-       case $host in
-         x86_64-*kfreebsd*-gnu)
-           LD="${LD-ld} -m elf_i386_fbsd"
-           ;;
-         x86_64-*linux*)
-           case `/usr/bin/file 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 x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  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 `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-       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"
-
-
-  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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; 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 cru libconftest.a conftest.o" >&5
-      $AR cru libconftest.a conftest.o 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 -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; 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; }
-    # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
-    # build without first building modern cctools / linker.
-    case $host_cpu-$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*)
-      # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
-      # deployment target is forced to an earlier version.
-      case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
-       UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
-         ;;
-       10.[012][,.]*)
-         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         ;;
-       *)
-         ;;
-     esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; 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 "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-
-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
-
-
-
-
-
-
-# Set options
-
-
-
-
-  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; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
-  # 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
-
-
-
-
-
-
-
-
-
-
-
-# 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 "X${COLLECT_NAMES+set}" != Xset; 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,
-# which needs '.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
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# 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 "$GCC" = yes; 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"
-   # 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 x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; 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=
-
-{ $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 test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; 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'
-      ;;
-
-    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 '
-      lt_prog_compiler_pic='-Xcompiler -fPIC'
-      ;;
-    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 "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static='-Bstatic'
-      else
-       lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    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'
-      ;;
-
-    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)
-      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'
-        ;;
-      # 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'
-       ;;
-      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\ F* | *Sun*Fortran*)
-         # 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\ C*)
-         # Sun C 5.9
-         lt_prog_compiler_pic='-KPIC'
-         lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl='-Wl,'
-         ;;
-       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*)
-       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 which 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}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
-
-
-#
-# 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"
-   # 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 x"$lt_cv_prog_compiler_pic_works" = xyes; 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 x"$lt_cv_prog_compiler_static_works" = xyes; 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 "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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_flag_spec_ld=
-  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++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=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 "$with_gnu_ld" = yes; 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 "$lt_use_gnu_ld_interface" = yes; 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 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 "$host_cpu" != ia64; 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/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
-      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 (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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
-      ;;
-
-    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 | uclinuxfdpiceabi)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; 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 "$tmp_diet" = no
-      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' ;;
-       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 "x$supports_anon_versioning" = xyes; 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
-       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=
-         hardcode_libdir_flag_spec_ld='-rpath $libdir'
-         archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-         if test "x$supports_anon_versioning" = xyes; 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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-         fi
-         ;;
-       esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      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 $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'
-      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 $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
-      ;;
-
-    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 can not
-*** 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 $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
-
-    if test "$ld_shlibs" = no; 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 "$GCC" = yes && 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 "$host_cpu" = ia64; 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 AIX nm, but means don't demangle with GNU nm
-       # Also, AIX nm treats weak defined symbols like other global
-       # defined symbols, whereas GNU nm marks them as "W".
-       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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | 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
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-         ;;
-       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,'
-
-      if test "$GCC" = yes; 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 "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
-       fi
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-         fi
-       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_use_runtimelinking" = yes; 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.
-        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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-       if test "$host_cpu" = ia64; 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.
-        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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "$with_gnu_ld" = yes; 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
-         # This is similar to how AIX traditionally builds its shared libraries.
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       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++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      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'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; 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*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes && test "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared -fPIC ${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 "$with_gnu_ld" = no; then
-       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld='+b $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 "$GCC" = yes && test "$with_gnu_ld" = no; then
-       case $host_cpu in
-       hppa*64*)
-         archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       ia64*)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds='$CC -shared -fPIC ${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 ${wl}+nodefaultrpath -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 x"$lt_cv_prog_compiler__b" = xyes; 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 "$with_gnu_ld" = no; 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 "$GCC" = yes; then
-       archive_cmds='$CC -shared $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.
-        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) {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $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
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
-      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
-      ;;
-
-    netbsd*)
-      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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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
-         case $host_os in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-         esac
-       fi
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; 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 "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_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 "$GCC" = yes; then
-       wlarc='${wl}'
-       archive_cmds='$CC -shared ${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 ${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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; 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 "$GCC" = yes; 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 can NOT 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 "$GCC" = yes; 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 x$host_vendor = xsni; 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 "$ld_shlibs" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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 "$GCC" = yes; 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`
-  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"
-    else
-      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
-  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
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; 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
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # 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}'
-    else
-      # 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'
-    fi
-    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%'\''`; test $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
-  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,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    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
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # 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
-  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*)
-  # 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} $libname${shared_ext}'
-      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
-  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=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/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 "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  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
-  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 "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       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
-  ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being.  (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
-  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'
-  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
-
-  # Append ld.so.conf contents 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'
-  ;;
-
-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
-  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
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  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
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-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
-  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 "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  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
-    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=freebsd-elf
-  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 "$with_gnu_ld" = yes; 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
-  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
-  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
-  ;;
-
-# Shared libraries for VwWorks, >= 7 only at this stage
-# and (fpic) still incompatible with "large" code models
-# in a few configurations. Only for RTP mode in any case,
-# and upon explicit request at configure time.
-vxworks7*)
-  dynamic_linker=no
-  case ${with_multisubdir}-${enable_shared} in
-    *large*)
-      ;;
-    *mrtp*-yes)
-      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'
-      dynamic_linker="$host_os module_loader"
-      ;;
-  esac
-  ;;
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $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 "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # 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 "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; 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 "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-  if test "x$enable_dlopen" != xyes; 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
-
-    ;;
-
-  *)
-    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 "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && 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 "$cross_compiling" = yes; 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 11449 "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 -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=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 "x$lt_cv_dlopen_self" = xyes; 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 "$cross_compiling" = yes; 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 11555 "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 -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=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 -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $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
-
-
-
-
-
-
-
-
-
-
-
-
-  # Report which 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    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 "$enable_shared" = yes || 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 "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; 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_flag_spec_ld_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 "$_lt_caught_CXX_error" != yes; 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_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++"}
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; 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 "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && 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 "$with_gnu_ld" = yes; 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 "$host_cpu" = ia64; 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
-          # need to do runtime linking.
-          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
-           ;;
-          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,'
-
-        if test "$GXX" = yes; 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 "$aix_use_runtimelinking" = yes; then
-           shared_flag="$shared_flag "'${wl}-G'
-         fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then
-             shared_flag='${wl}-G'
-           else
-             shared_flag='${wl}-bM:SRE'
-           fi
-          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_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; 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.
-           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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "$with_gnu_ld" = yes; 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
-           # This is similar to how AIX traditionally builds its shared
-           # libraries.
-           archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          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*)
-        # _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 (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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
-        ;;
-      darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; 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 "$lt_cv_apple_cc_single_mod" != "yes"; 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
-
-       ;;
-
-      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*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      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 $output_objdir/$soname = $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 "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; 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 ${wl}+nodefaultrpath -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 "$GXX" = yes; then
-             if test $with_gnu_ld = no; then
-               case $host_cpu in
-                 hppa*64*)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-                   ;;
-                 ia64*)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-                   ;;
-                 *)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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 "$GXX" = yes; then
-             if test "$with_gnu_ld" = no; then
-               archive_cmds_CXX='$CC -shared -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 -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)
-        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 "x$supports_anon_versioning" = xyes; 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
-       ;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-       ld_shlibs_CXX=no
-       ;;
-
-      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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 "$GXX" = yes && test "$with_gnu_ld" = no; 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 -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*)
-           # 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 "$GXX" = yes && test "$with_gnu_ld" = no; then
-             no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-             if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $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 -nostdlib ${wl}-M $wl$lib.exp -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 $LDFLAGS $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 -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 can NOT 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*)
-        # For VxWorks ports, we assume the use of a GNU linker with
-        # standard elf conventions.
-        ld_shlibs_CXX=yes
-        ;;
-
-      *)
-        # 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 "$ld_shlibs_CXX" = no && 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
-
-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 $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-        prev=$p
-        continue
-       else
-        prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        case $p 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
-       ;;
-
-    *.$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 "$pre_test_object_deps_done" = no; 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
-
-# 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=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-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=
-
-{ $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; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; 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 "$host_cpu" = ia64; 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'
-      ;;
-    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 "$host_cpu" = ia64; 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
-       ;;
-      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*)
-       # 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 "$host_cpu" != ia64; 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)
-       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*)
-       ;;
-      *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*)
-           # 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 which 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}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
-
-
-
-#
-# 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"
-   # 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 x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; 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 x"$lt_cv_prog_compiler_static_works_CXX" = xyes; 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 "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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'
-  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 AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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
-  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
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; 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
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # 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}'
-    else
-      # 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'
-    fi
-    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%'\''`; test $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
-  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,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    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
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # 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
-  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*)
-  # 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} $libname${shared_ext}'
-      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
-  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=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/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 "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  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
-  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 "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       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
-  ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being.  (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
-  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'
-  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
-
-  # Append ld.so.conf contents 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'
-  ;;
-
-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
-  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
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  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
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-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
-  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 "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  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
-    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=freebsd-elf
-  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 "$with_gnu_ld" = yes; 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
-  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
-  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
-  ;;
-
-# Shared libraries for VwWorks, >= 7 only at this stage
-# and (fpic) still incompatible with "large" code models
-# in a few configurations. Only for RTP mode in any case,
-# and upon explicit request at configure time.
-vxworks7*)
-  dynamic_linker=no
-  case ${with_multisubdir}-${enable_shared} in
-    *large*)
-      ;;
-    *mrtp*-yes)
-      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'
-      dynamic_linker="$host_os module_loader"
-      ;;
-  esac
-  ;;
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $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 "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # 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 "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; 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 "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  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 "$_lt_caught_CXX_error" != yes
-
-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:
-
-
-# Forbid libtool to hardcode RPATH, because we want to be able to specify
-# library search directory using LD_LIBRARY_PATH
-hardcode_into_libs=no
-
-
-
-
-
-if test $enable_shared = yes; then
-  link_offloadmic_host="-loffloadmic_host %{static: $LIBS}"
-  link_offloadmic_target="-loffloadmic_target %{static: $LIBS}"
-else
-  link_offloadmic_host="-loffloadmic_host $LIBS"
-  link_offloadmic_target="-loffloadmic_target $LIBS"
-fi
-
-
-
-# Determine what GCC version number to use in filesystem paths.
-
-  get_gcc_base_ver="cat"
-
-# Check whether --with-gcc-major-version-only was given.
-if test "${with_gcc_major_version_only+set}" = set; then :
-  withval=$with_gcc_major_version_only; if test x$with_gcc_major_version_only = xyes ; then
-        get_gcc_base_ver="sed -e 's/^\([0-9]*\).*/\1/'"
-      fi
-
-fi
-
-
-
-
-# Must be last
-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}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-:mline
-/\\$/{
- N
- s,\\\n,,
- b mline
-}
-t clear
-:clear
-s/^[    ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[    ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[     `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
-       g
-       s/^\n//
-       s/\n/ /g
-       p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.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
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
-   if test -n "$am_sleep_pid"; then
-     # Hide warnings about reused PIDs.
-     wait $am_sleep_pid 2>/dev/null
-   fi
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-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 "${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__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${LIBOFFLOADMIC_HOST_TRUE}" && test -z "${LIBOFFLOADMIC_HOST_FALSE}"; then
-  as_fn_error $? "conditional \"LIBOFFLOADMIC_HOST\" 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 MIC Offload Runtime Library $as_me 1.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
-
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-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
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-MIC Offload Runtime Library config.status 1.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'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-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;;
-  --he | --h |  --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
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-srcdir="$srcdir"
-host="$host"
-target="$target"
-with_multisubdir="$with_multisubdir"
-with_multisrctop="$with_multisrctop"
-with_target_subdir="$with_target_subdir"
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-multi_basedir="$multi_basedir"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="$CC"
-CXX="$CXX"
-GFORTRAN="$GFORTRAN"
-GDC="$GDC"
-
-
-# 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"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $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"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $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"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $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_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"`'
-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_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $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"`'
-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_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $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"`'
-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $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"`'
-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"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $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_wl_CXX='`$ECHO "$lt_prog_compiler_wl_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_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_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_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"`'
-fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_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"`'
-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 \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-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_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-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_wl_CXX \
-lt_prog_compiler_pic_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_flag_spec_ld_CXX \
-hardcode_libdir_separator_CXX \
-fix_srcfile_path_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\\"\\\`\\\\\\""
-      ;;
-    *)
-      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 \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-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; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which 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'
-    TIMESTAMP='$TIMESTAMP'
-    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
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "liboffloadmic_host.spec") CONFIG_FILES="$CONFIG_FILES liboffloadmic_host.spec" ;;
-    "liboffloadmic_target.spec") CONFIG_FILES="$CONFIG_FILES liboffloadmic_target.spec" ;;
-    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-
-  *) 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_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 = "\a"
-
-}
-{
-  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"
-
-
-eval set X "  :F $CONFIG_FILES      :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
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_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
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;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
- ;;
-
-
-  :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
-    "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.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$mf" : 'X\(//\)[^/]' \| \
-        X"$mf" : 'X\(//\)$' \| \
-        X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$file" : 'X\(//\)[^/]' \| \
-        X"$file" : 'X\(//\)$' \| \
-        X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-    "default-1":C)
-# Only add multilib support code if we just rebuilt the top-level
-# Makefile.
-case " $CONFIG_FILES " in
- *" Makefile "*)
-   ac_file=Makefile . ${multi_basedir}/config-ml.in
-   ;;
-esac ;;
-    "libtool":C)
-
-    # See if we are running on zsh, and set the options which 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
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### 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
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# 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
-
-# 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
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# 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 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 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
-
-# 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
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# 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
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# 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
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# 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
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# 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
-
-# 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
-
-  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 "X${COLLECT_NAMES+set}" != Xset; 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$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
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_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
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_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
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_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
-
-# 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
-
-#
-# CONFIG_SUBDIRS section.
-#
-if test "$no_recursion" != yes; then
-
-  # Remove --cache-file, --srcdir, and --disable-option-checking arguments
-  # so they do not pile up.
-  ac_sub_configure_args=
-  ac_prev=
-  eval "set x $ac_configure_args"
-  shift
-  for ac_arg
-  do
-    if test -n "$ac_prev"; then
-      ac_prev=
-      continue
-    fi
-    case $ac_arg in
-    -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=*)
-      ;;
-    --config-cache | -C)
-      ;;
-    -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-      ac_prev=srcdir ;;
-    -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-      ;;
-    -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-      ac_prev=prefix ;;
-    -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-      ;;
-    --disable-option-checking)
-      ;;
-    *)
-      case $ac_arg in
-      *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-      esac
-      as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
-    esac
-  done
-
-  # Always prepend --prefix to ensure using the same prefix
-  # in subdir configurations.
-  ac_arg="--prefix=$prefix"
-  case $ac_arg in
-  *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-  esac
-  ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args"
-
-  # Pass --silent
-  if test "$silent" = yes; then
-    ac_sub_configure_args="--silent $ac_sub_configure_args"
-  fi
-
-  # Always prepend --disable-option-checking to silence warnings, since
-  # different subdirs can have different --enable and --with options.
-  ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args"
-
-  ac_popdir=`pwd`
-  for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue
-
-    # Do not complain, so a configure script can configure whichever
-    # parts of a large source tree are present.
-    test -d "$srcdir/$ac_dir" || continue
-
-    ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
-    $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
-    $as_echo "$ac_msg" >&6
-    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
-
-
-    cd "$ac_dir"
-
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      ac_sub_configure=$ac_srcdir/configure.gnu
-    elif test -f "$ac_srcdir/configure"; then
-      ac_sub_configure=$ac_srcdir/configure
-    elif test -f "$ac_srcdir/configure.in"; then
-      # This should be Cygnus configure.
-      ac_sub_configure=$ac_aux_dir/configure
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
-$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
-      ac_sub_configure=
-    fi
-
-    # The recursion is here.
-    if test -n "$ac_sub_configure"; then
-      # Make the cache file name correct relative to the subdirectory.
-      case $cache_file in
-      [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;;
-      *) # Relative name.
-       ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
-      esac
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
-$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
-      # The eval makes quoting arguments work.
-      eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
-          --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
-       as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
-    fi
-
-    cd "$ac_popdir"
-  done
-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
-
diff --git a/liboffloadmic/configure.ac b/liboffloadmic/configure.ac
deleted file mode 100644 (file)
index f64f182..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-#    Copyright (c) 2014 Intel Corporation.  All Rights Reserved.
-#
-#    Redistribution and use in source and binary forms, with or without
-#    modification, are permitted provided that the following conditions
-#    are met:
-#
-#      * Redistributions of source code must retain the above copyright
-#        notice, this list of conditions and the following disclaimer.
-#      * Redistributions in binary form must reproduce the above copyright
-#        notice, this list of conditions and the following disclaimer in the
-#        documentation and/or other materials provided with the distribution.
-#      * Neither the name of Intel Corporation nor the names of its
-#        contributors may be used to endorse or promote products derived
-#        from this software without specific prior written permission.
-#
-#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-#    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-#    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-#    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-#    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-#    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-#    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Process this file with autoconf to produce a configure script, like so:
-# aclocal -I .. -I ../config && autoconf && automake
-
-AC_INIT([MIC Offload Runtime Library], [1.0], ,[liboffloadmic])
-
-AC_CANONICAL_SYSTEM
-target_alias=${target_alias-$host_alias}
-AC_SUBST(target_alias)
-
-AM_INIT_AUTOMAKE(foreign no-dist)
-AM_MAINTAINER_MODE
-
-AC_PROG_CC
-AC_PROG_CXX
-AC_CONFIG_FILES([Makefile liboffloadmic_host.spec liboffloadmic_target.spec])
-AM_ENABLE_MULTILIB(, ..)
-AC_CONFIG_SUBDIRS(plugin)
-AC_FUNC_ALLOCA
-AC_CHECK_HEADERS([mm_malloc.h], [], [AC_MSG_ERROR(["Couldn't find mm_malloc.h"])])
-AC_CHECK_FUNCS([__secure_getenv secure_getenv])
-
-# Get target configure.
-. ${srcdir}/configure.tgt
-if test -n "$UNSUPPORTED"; then
-  AC_MSG_ERROR([Configuration ${target} is unsupported])
-fi
-
-if test "${multilib}" = "yes"; then
-  multilib_arg="--enable-multilib"
-else
-  multilib_arg=
-fi
-
-AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
-AC_ARG_ENABLE([version-specific-runtime-libs],
-  AC_HELP_STRING([--enable-version-specific-runtime-libs],
-                [Specify that runtime libraries should be installed in a compiler-specific directory]),
-  [case "$enableval" in
-    yes) enable_version_specific_runtime_libs=yes ;;
-    no)  enable_version_specific_runtime_libs=no ;;
-    *)   AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
-   esac],
-  [enable_version_specific_runtime_libs=no])
-AC_MSG_RESULT($enable_version_specific_runtime_libs)
-
-# Make sure liboffloadmic is enabled
-case "$enable_liboffloadmic" in
-  host | target)
-    ;;
-  *)
-    AC_MSG_ERROR([Liboffloadmic is disabled]) ;;
-esac
-AM_CONDITIONAL(LIBOFFLOADMIC_HOST, [test x"$enable_liboffloadmic" = xhost])
-
-GCC_WITH_TOOLEXECLIBDIR
-
-# Calculate toolexeclibdir.
-# Also toolexecdir, though it's only used in toolexeclibdir.
-case ${enable_version_specific_runtime_libs} in
-  yes)
-    # Need the gcc compiler version to know where to install libraries
-    # and header files if --enable-version-specific-runtime-libs option
-    # is selected.
-    toolexecdir='$(libdir)/gcc/$(target_alias)'
-    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
-    ;;
-  no)
-    if test -n "$with_cross_host" &&
-       test x"$with_cross_host" != x"no"; then
-      # Install a library built with a cross compiler in tooldir, not libdir.
-      toolexecdir='$(exec_prefix)/$(target_alias)'
-      case ${with_toolexeclibdir} in
-       no)
-         toolexeclibdir='$(toolexecdir)/lib'
-         ;;
-       *)
-         toolexeclibdir=${with_toolexeclibdir}
-         ;;
-      esac
-    else
-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-      toolexeclibdir='$(libdir)'
-    fi
-    multi_os_directory=`$CC -print-multi-os-directory`
-    case $multi_os_directory in
-      .) ;; # Avoid trailing /.
-      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
-    esac
-    ;;
-esac
-
-AC_LIBTOOL_DLOPEN
-AM_PROG_LIBTOOL
-# Forbid libtool to hardcode RPATH, because we want to be able to specify
-# library search directory using LD_LIBRARY_PATH
-hardcode_into_libs=no
-AC_SUBST(toolexecdir)
-AC_SUBST(toolexeclibdir)
-
-AC_SUBST(lt_cv_dlopen_libs)
-
-if test $enable_shared = yes; then
-  link_offloadmic_host="-loffloadmic_host %{static: $LIBS}"
-  link_offloadmic_target="-loffloadmic_target %{static: $LIBS}"
-else
-  link_offloadmic_host="-loffloadmic_host $LIBS"
-  link_offloadmic_target="-loffloadmic_target $LIBS"
-fi
-AC_SUBST(link_offloadmic_host)
-AC_SUBST(link_offloadmic_target)
-
-# Determine what GCC version number to use in filesystem paths.
-GCC_BASE_VER
-
-# Must be last
-AC_OUTPUT
diff --git a/liboffloadmic/configure.tgt b/liboffloadmic/configure.tgt
deleted file mode 100644 (file)
index 3c0310c..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-#    Copyright (c) 2014 Intel Corporation.  All Rights Reserved.
-#
-#    Redistribution and use in source and binary forms, with or without
-#    modification, are permitted provided that the following conditions
-#    are met:
-#
-#      * Redistributions of source code must retain the above copyright
-#        notice, this list of conditions and the following disclaimer.
-#      * Redistributions in binary form must reproduce the above copyright
-#        notice, this list of conditions and the following disclaimer in the
-#        documentation and/or other materials provided with the distribution.
-#      * Neither the name of Intel Corporation nor the names of its
-#        contributors may be used to endorse or promote products derived
-#        from this software without specific prior written permission.
-#
-#    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-#    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-#    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-#    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-#    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-#    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-#    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-#    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-#    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-#    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-#    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# Disable Offload Runtime library for non x86 architecture.
-case "${target}" in
-  x86_64-*-linux*)
-    ;;
-  i?86-*-linux*)
-    ;;
-  *-*-*)
-    UNSUPPORTED=1 ;;
-esac
-
-# Disable liboffloadmic on non POSIX hosted systems.
-. ${srcdir}/../config/target-posix
diff --git a/liboffloadmic/doc/doxygen/config b/liboffloadmic/doc/doxygen/config
deleted file mode 100644 (file)
index 3ef1019..0000000
+++ /dev/null
@@ -1,2328 +0,0 @@
-# Doxyfile 1.8.6
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
-#
-# All text after a double hash (##) is considered a comment and is placed in
-# front of the TAG it is preceding.
-#
-# All text after a single hash (#) is considered a comment and will be ignored.
-# The format is:
-# TAG = value [value, ...]
-# For lists, items can also be appended using:
-# TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (\" \").
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# This tag specifies the encoding used for all characters in the config file
-# that follow. The default is UTF-8 which is also the encoding used for all text
-# before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
-# built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
-# for the list of possible encodings.
-# The default value is: UTF-8.
-
-DOXYFILE_ENCODING      = UTF-8
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
-# double-quotes, unless you are using Doxywizard) that should identify the
-# project for which the documentation is generated. This name is used in the
-# title of most generated pages and in a few other places.
-# The default value is: My Project.
-
-PROJECT_NAME           = "Intel&reg;&nbsp;Offload Runtime Library"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
-# could be handy for archiving the generated documentation or if some version
-# control system is used.
-
-PROJECT_NUMBER         = 
-
-# Using the PROJECT_BRIEF tag one can provide an optional one line description
-# for a project that appears at the top of each page and should give viewer a
-# quick idea about the purpose of the project. Keep the description short.
-
-PROJECT_BRIEF          = 
-
-# With the PROJECT_LOGO tag one can specify an logo or icon that is included in
-# the documentation. The maximum height of the logo should not exceed 55 pixels
-# and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
-# to the output directory.
-
-PROJECT_LOGO           = 
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
-# into which the generated documentation will be written. If a relative path is
-# entered, it will be relative to the location where doxygen was started. If
-# left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = doc/doxygen/generated
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
-# directories (in 2 levels) under the output directory of each output format and
-# will distribute the generated files over these directories. Enabling this
-# option can be useful when feeding doxygen a huge amount of source files, where
-# putting all generated files in the same directory would otherwise causes
-# performance problems for the file system.
-# The default value is: NO.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all
-# documentation generated by doxygen is written. Doxygen will use this
-# information to generate all constant output in the proper language.
-# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
-# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
-# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
-# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
-# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
-# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
-# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
-# Ukrainian and Vietnamese.
-# The default value is: English.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
-# descriptions after the members that are listed in the file and class
-# documentation (similar to Javadoc). Set to NO to disable this.
-# The default value is: YES.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
-# description of a member or function before the detailed description
-#
-# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
-# brief descriptions will be completely suppressed.
-# The default value is: YES.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator that is
-# used to form the text in various listings. Each string in this list, if found
-# as the leading text of the brief description, will be stripped from the text
-# and the result, after processing the whole list, is used as the annotated
-# text. Otherwise, the brief description is used as-is. If left blank, the
-# following values are used ($name is automatically replaced with the name of
-# the entity):The $name class, The $name widget, The $name file, is, provides,
-# specifies, contains, represents, a, an and the.
-
-ABBREVIATE_BRIEF       = "The $name class" \
-                         "The $name widget" \
-                         "The $name file" \
-                         is \
-                         provides \
-                         specifies \
-                         contains \
-                         represents \
-                         a \
-                         an \
-                         the
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
-# doxygen will generate a detailed section even if there is only a brief
-# description.
-# The default value is: NO.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
-# inherited members of a class in the documentation of that class as if those
-# members were ordinary class members. Constructors, destructors and assignment
-# operators of the base classes will not be shown.
-# The default value is: NO.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
-# before files name in the file list and in the header files. If set to NO the
-# shortest path that makes the file name unique will be used
-# The default value is: YES.
-
-FULL_PATH_NAMES        = YES
-
-# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
-# Stripping is only done if one of the specified strings matches the left-hand
-# part of the path. The tag can be used to show relative paths in the file list.
-# If left blank the directory from which doxygen is run is used as the path to
-# strip.
-#
-# Note that you can specify absolute paths here, but also relative paths, which
-# will be relative from the directory where doxygen is started.
-# This tag requires that the tag FULL_PATH_NAMES is set to YES.
-
-STRIP_FROM_PATH        = src/
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
-# path mentioned in the documentation of a class, which tells the reader which
-# header file to include in order to use a class. If left blank only the name of
-# the header file containing the class definition is used. Otherwise one should
-# specify the list of include paths that are normally passed to the compiler
-# using the -I flag.
-
-STRIP_FROM_INC_PATH    = src/
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
-# less readable) file names. This can be useful is your file systems doesn't
-# support long names like on DOS, Mac, or CD-ROM.
-# The default value is: NO.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
-# first line (until the first dot) of a Javadoc-style comment as the brief
-# description. If set to NO, the Javadoc-style will behave just like regular Qt-
-# style comments (thus requiring an explicit @brief command for a brief
-# description.)
-# The default value is: NO.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
-# line (until the first dot) of a Qt-style comment as the brief description. If
-# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
-# requiring an explicit \brief command for a brief description.)
-# The default value is: NO.
-
-QT_AUTOBRIEF           = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
-# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
-# a brief description. This used to be the default behavior. The new default is
-# to treat a multi-line C++ comment block as a detailed description. Set this
-# tag to YES if you prefer the old behavior instead.
-#
-# Note that setting this tag to YES also means that rational rose comments are
-# not recognized any more.
-# The default value is: NO.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
-# documentation from any documented member that it re-implements.
-# The default value is: YES.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
-# new page for each member. If set to NO, the documentation of a member will be
-# part of the file/class/namespace that contains it.
-# The default value is: NO.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
-# uses this value to replace tabs by spaces in code fragments.
-# Minimum value: 1, maximum value: 16, default value: 4.
-
-TAB_SIZE               = 8
-
-# This tag can be used to specify a number of aliases that act as commands in
-# the documentation. An alias has the form:
-# name=value
-# For example adding
-# "sideeffect=@par Side Effects:\n"
-# will allow you to put the command \sideeffect (or @sideeffect) in the
-# documentation, which will result in a user-defined paragraph with heading
-# "Side Effects:". You can put \n's in the value part of an alias to insert
-# newlines.
-
-ALIASES                = 
-
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding "class=itcl::class"
-# will allow you to use the command class in the itcl::class meaning.
-
-TCL_SUBST              = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
-# only. Doxygen will then generate output that is more tailored for C. For
-# instance, some of the names that are used will be different. The list of all
-# members will be omitted, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
-# Python sources only. Doxygen will then generate output that is more tailored
-# for that language. For instance, namespaces will be presented as packages,
-# qualified scopes will look different, etc.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
-# sources. Doxygen will then generate output that is tailored for Fortran.
-# The default value is: NO.
-
-OPTIMIZE_FOR_FORTRAN   = NO
-
-# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
-# sources. Doxygen will then generate output that is tailored for VHDL.
-# The default value is: NO.
-
-OPTIMIZE_OUTPUT_VHDL   = NO
-
-# Doxygen selects the parser to use depending on the extension of the files it
-# parses. With this tag you can assign which parser to use for a given
-# extension. Doxygen has a built-in mapping, but you can override or extend it
-# using this tag. The format is ext=language, where ext is a file extension, and
-# language is one of the parsers supported by doxygen: IDL, Java, Javascript,
-# C#, C, C++, D, PHP, Objective-C, Python, Fortran, VHDL. For instance to make
-# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
-# (default is Fortran), use: inc=Fortran f=C.
-#
-# Note For files without extension you can use no_extension as a placeholder.
-#
-# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
-# the files are not read by doxygen.
-
-EXTENSION_MAPPING      = 
-
-# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
-# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
-# The output of markdown processing is further processed by doxygen, so you can
-# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
-# case of backward compatibilities issues.
-# The default value is: YES.
-
-MARKDOWN_SUPPORT       = YES
-
-# When enabled doxygen tries to link words that correspond to documented
-# classes, or namespaces to their corresponding documentation. Such a link can
-# be prevented in individual cases by by putting a % sign in front of the word
-# or globally by setting AUTOLINK_SUPPORT to NO.
-# The default value is: YES.
-
-AUTOLINK_SUPPORT       = YES
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
-# to include (a tag file for) the STL sources as input, then you should set this
-# tag to YES in order to let doxygen match functions declarations and
-# definitions whose arguments contain STL classes (e.g. func(std::string);
-# versus func(std::string) {}). This also make the inheritance and collaboration
-# diagrams that involve STL classes more complete and accurate.
-# The default value is: NO.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If you use Microsoft's C++/CLI language, you should set this option to YES to
-# enable parsing support.
-# The default value is: NO.
-
-CPP_CLI_SUPPORT        = NO
-
-# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
-# http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
-# will parse them like normal C++ but will assume all classes use public instead
-# of private inheritance when no explicit protection keyword is present.
-# The default value is: NO.
-
-SIP_SUPPORT            = NO
-
-# For Microsoft's IDL there are propget and propput attributes to indicate
-# getter and setter methods for a property. Setting this option to YES will make
-# doxygen to replace the get and set methods by a property in the documentation.
-# This will only work if the methods are indeed getting or setting a simple
-# type. If this is not the case, or you want to show the methods anyway, you
-# should set this option to NO.
-# The default value is: YES.
-
-IDL_PROPERTY_SUPPORT   = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
-# tag is set to YES, then doxygen will reuse the documentation of the first
-# member in the group (if any) for the other members of the group. By default
-# all members of a group must be documented explicitly.
-# The default value is: NO.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES to allow class member groups of the same type
-# (for instance a group of public functions) to be put as a subgroup of that
-# type (e.g. under the Public Functions section). Set it to NO to prevent
-# subgrouping. Alternatively, this can be done per class using the
-# \nosubgrouping command.
-# The default value is: YES.
-
-SUBGROUPING            = YES
-
-# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
-# are shown inside the group in which they are included (e.g. using \ingroup)
-# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
-# and RTF).
-#
-# Note that this feature does not work in combination with
-# SEPARATE_MEMBER_PAGES.
-# The default value is: NO.
-
-INLINE_GROUPED_CLASSES = NO
-
-# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
-# with only public data fields or simple typedef fields will be shown inline in
-# the documentation of the scope in which they are defined (i.e. file,
-# namespace, or group documentation), provided this scope is documented. If set
-# to NO, structs, classes, and unions are shown on a separate page (for HTML and
-# Man pages) or section (for LaTeX and RTF).
-# The default value is: NO.
-
-INLINE_SIMPLE_STRUCTS  = NO
-
-# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
-# enum is documented as struct, union, or enum with the name of the typedef. So
-# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
-# with name TypeT. When disabled the typedef will appear as a member of a file,
-# namespace, or class. And the struct will be named TypeS. This can typically be
-# useful for C code in case the coding convention dictates that all compound
-# types are typedef'ed and only the typedef is referenced, never the tag name.
-# The default value is: NO.
-
-TYPEDEF_HIDES_STRUCT   = NO
-
-# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
-# cache is used to resolve symbols given their name and scope. Since this can be
-# an expensive process and often the same symbol appears multiple times in the
-# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
-# doxygen will become slower. If the cache is too large, memory is wasted. The
-# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
-# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
-# symbols. At the end of a run doxygen will report the cache usage and suggest
-# the optimal cache size from a speed point of view.
-# Minimum value: 0, maximum value: 9, default value: 0.
-
-LOOKUP_CACHE_SIZE      = 0
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
-# documentation are documented, even if no documentation was available. Private
-# class members and static file members will be hidden unless the
-# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
-# Note: This will also disable the warnings about undocumented members that are
-# normally produced when WARNINGS is set to YES.
-# The default value is: NO.
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
-# be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PRIVATE        = YES
-
-# If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
-# scope will be included in the documentation.
-# The default value is: NO.
-
-EXTRACT_PACKAGE        = YES
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file will be
-# included in the documentation.
-# The default value is: NO.
-
-EXTRACT_STATIC         = YES
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
-# locally in source files will be included in the documentation. If set to NO
-# only classes defined in header files are included. Does not have any effect
-# for Java sources.
-# The default value is: YES.
-
-EXTRACT_LOCAL_CLASSES  = YES
-
-# This flag is only useful for Objective-C code. When set to YES local methods,
-# which are defined in the implementation section but not in the interface are
-# included in the documentation. If set to NO only methods in the interface are
-# included.
-# The default value is: NO.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If this flag is set to YES, the members of anonymous namespaces will be
-# extracted and appear in the documentation as a namespace called
-# 'anonymous_namespace{file}', where file will be replaced with the base name of
-# the file that contains the anonymous namespace. By default anonymous namespace
-# are hidden.
-# The default value is: NO.
-
-EXTRACT_ANON_NSPACES   = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
-# undocumented members inside documented classes or files. If set to NO these
-# members will be included in the various overviews, but no documentation
-# section is generated. This option has no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
-# undocumented classes that are normally visible in the class hierarchy. If set
-# to NO these classes will be included in the various overviews. This option has
-# no effect if EXTRACT_ALL is enabled.
-# The default value is: NO.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
-# (class|struct|union) declarations. If set to NO these declarations will be
-# included in the documentation.
-# The default value is: NO.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
-# documentation blocks found inside the body of a function. If set to NO these
-# blocks will be appended to the function's detailed documentation block.
-# The default value is: NO.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation that is typed after a
-# \internal command is included. If the tag is set to NO then the documentation
-# will be excluded. Set it to YES to include the internal documentation.
-# The default value is: NO.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
-# names in lower-case letters. If set to YES upper-case letters are also
-# allowed. This is useful if you have classes or files whose names only differ
-# in case and if your file system supports case sensitive file names. Windows
-# and Mac users are advised to set this option to NO.
-# The default value is: system dependent.
-
-CASE_SENSE_NAMES       = NO
-
-# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
-# their full class and namespace scopes in the documentation. If set to YES the
-# scope will be hidden.
-# The default value is: NO.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
-# the files that are included by a file in the documentation of that file.
-# The default value is: YES.
-
-SHOW_INCLUDE_FILES     = YES
-
-
-SHOW_GROUPED_MEMB_INC  = NO
-
-# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
-# files with double quotes in the documentation rather than with sharp brackets.
-# The default value is: NO.
-
-FORCE_LOCAL_INCLUDES   = NO
-
-# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
-# documentation for inline members.
-# The default value is: YES.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
-# (detailed) documentation of file and class members alphabetically by member
-# name. If set to NO the members will appear in declaration order.
-# The default value is: YES.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
-# descriptions of file, namespace and class members alphabetically by member
-# name. If set to NO the members will appear in declaration order. Note that
-# this will also influence the order of the classes in the class list.
-# The default value is: NO.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
-# (brief and detailed) documentation of class members so that constructors and
-# destructors are listed first. If set to NO the constructors will appear in the
-# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
-# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
-# member documentation.
-# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
-# detailed member documentation.
-# The default value is: NO.
-
-SORT_MEMBERS_CTORS_1ST = NO
-
-# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
-# of group names into alphabetical order. If set to NO the group names will
-# appear in their defined order.
-# The default value is: NO.
-
-SORT_GROUP_NAMES       = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
-# fully-qualified names, including namespaces. If set to NO, the class list will
-# be sorted only by class name, not including the namespace part.
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the alphabetical
-# list.
-# The default value is: NO.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
-# type resolution of all parameters of a function it will reject a match between
-# the prototype and the implementation of a member function even if there is
-# only one candidate or it is obvious which candidate to choose by doing a
-# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
-# accept a match between prototype and implementation in such cases.
-# The default value is: NO.
-
-STRICT_PROTO_MATCHING  = NO
-
-# The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
-# todo list. This list is created by putting \todo commands in the
-# documentation.
-# The default value is: YES.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
-# test list. This list is created by putting \test commands in the
-# documentation.
-# The default value is: YES.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
-# list. This list is created by putting \bug commands in the documentation.
-# The default value is: YES.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
-# the deprecated list. This list is created by putting \deprecated commands in
-# the documentation.
-# The default value is: YES.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional documentation
-# sections, marked by \if <section_label> ... \endif and \cond <section_label>
-# ... \endcond blocks.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
-# initial value of a variable or macro / define can have for it to appear in the
-# documentation. If the initializer consists of more lines than specified here
-# it will be hidden. Use a value of 0 to hide initializers completely. The
-# appearance of the value of individual variables and macros / defines can be
-# controlled using \showinitializer or \hideinitializer command in the
-# documentation regardless of this setting.
-# Minimum value: 0, maximum value: 10000, default value: 30.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
-# the bottom of the documentation of classes and structs. If set to YES the list
-# will mention the files that were used to generate the documentation.
-# The default value is: YES.
-
-SHOW_USED_FILES        = YES
-
-# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
-# will remove the Files entry from the Quick Index and from the Folder Tree View
-# (if specified).
-# The default value is: YES.
-
-SHOW_FILES             = YES
-
-# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
-# page. This will remove the Namespaces entry from the Quick Index and from the
-# Folder Tree View (if specified).
-# The default value is: YES.
-
-SHOW_NAMESPACES        = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that
-# doxygen should invoke to get the current version for each file (typically from
-# the version control system). Doxygen will invoke the program by executing (via
-# popen()) the command command input-file, where command is the value of the
-# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
-# by doxygen. Whatever the program writes to standard output is used as the file
-# version. For an example see the documentation.
-
-FILE_VERSION_FILTER    = 
-
-# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
-# by doxygen. The layout file controls the global structure of the generated
-# output files in an output format independent way. To create the layout file
-# that represents doxygen's defaults, run doxygen with the -l option. You can
-# optionally specify a file name after the option, if omitted DoxygenLayout.xml
-# will be used as the name of the layout file.
-#
-# Note that if you run doxygen from a directory containing a file called
-# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
-# tag is left empty.
-
-LAYOUT_FILE            = 
-
-# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
-# the reference definitions. This must be a list of .bib files. The .bib
-# extension is automatically appended if omitted. This requires the bibtex tool
-# to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
-# For LaTeX the style of the bibliography can be controlled using
-# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
-# search path. Do not use file names with spaces, bibtex cannot handle them. See
-# also \cite for info how to create references.
-
-CITE_BIB_FILES         = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated to
-# standard output by doxygen. If QUIET is set to YES this implies that the
-# messages are off.
-# The default value is: NO.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are
-# generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
-# this implies that the warnings are on.
-#
-# Tip: Turn warnings on while writing the documentation.
-# The default value is: YES.
-
-WARNINGS               = YES
-
-# If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
-# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
-# will automatically be disabled.
-# The default value is: YES.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
-# potential errors in the documentation, such as not documenting some parameters
-# in a documented function, or documenting parameters that don't exist or using
-# markup commands wrongly.
-# The default value is: YES.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
-# are documented, but have no documentation for their parameters or return
-# value. If set to NO doxygen will only warn about wrong or incomplete parameter
-# documentation, but not about the absence of documentation.
-# The default value is: NO.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that doxygen
-# can produce. The string should contain the $file, $line, and $text tags, which
-# will be replaced by the file and line number from which the warning originated
-# and the warning text. Optionally the format may contain $version, which will
-# be replaced by the version of the file (if it could be obtained via
-# FILE_VERSION_FILTER)
-# The default value is: $file:$line: $text.
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning and error
-# messages should be written. If left blank the output is written to standard
-# error (stderr).
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag is used to specify the files and/or directories that contain
-# documented source files. You may enter file names like myfile.cpp or
-# directories like /usr/src/myproject. Separate the files or directories with
-# spaces.
-# Note: If this tag is empty the current directory is searched.
-
-INPUT                  = src
-
-# This tag can be used to specify the character encoding of the source files
-# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
-# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
-# documentation (see: http://www.gnu.org/software/libiconv) for the list of
-# possible encodings.
-# The default value is: UTF-8.
-
-INPUT_ENCODING         = UTF-8
-
-# If the value of the INPUT tag contains directories, you can use the
-# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank the
-# following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
-# *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
-# *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
-# *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
-# *.qsf, *.as and *.js.
-
-FILE_PATTERNS          = *.c *.h *.cpp *.f90
-
-# The RECURSIVE tag can be used to specify whether or not subdirectories should
-# be searched for input files as well.
-# The default value is: NO.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should be
-# excluded from the INPUT source files. This way you can easily exclude a
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-#
-# Note that relative paths are relative to the directory from which doxygen is
-# run.
-
-EXCLUDE                = src/imported src/rdtsc.h
-
-# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
-# directories that are symbolic links (a Unix file system feature) are excluded
-# from the input.
-# The default value is: NO.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
-# certain files from those directories.
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = 
-
-# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
-# (namespaces, classes, functions, etc.) that should be excluded from the
-# output. The symbol name can be a fully qualified name, a word, or if the
-# wildcard * is used, a substring. Examples: ANamespace, AClass,
-# AClass::ANamespace, ANamespace::*Test
-#
-# Note that the wildcards are matched against the file with absolute path, so to
-# exclude all test directories use the pattern */test/*
-
-EXCLUDE_SYMBOLS        = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or directories
-# that contain example code fragments that are included (see the \include
-# command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
-# *.h) to filter out the source-files in the directories. If left blank all
-# files are included.
-
-EXAMPLE_PATTERNS       = *
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
-# searched for input files to be used with the \include or \dontinclude commands
-# irrespective of the value of the RECURSIVE tag.
-# The default value is: NO.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or directories
-# that contain images that are to be included in the documentation (see the
-# \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should
-# invoke to filter for each input file. Doxygen will invoke the filter program
-# by executing (via popen()) the command:
-#
-# <filter> <input-file>
-#
-# where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
-# name of an input file. Doxygen will then use the output that the filter
-# program writes to standard output. If FILTER_PATTERNS is specified, this tag
-# will be ignored.
-#
-# Note that the filter must not add or remove lines; it is applied before the
-# code is scanned, but not when the output code is generated. If lines are added
-# or removed, the anchors will not be placed correctly.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
-# basis. Doxygen will compare the file name with each pattern and apply the
-# filter if there is a match. The filters are a list of the form: pattern=filter
-# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
-# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
-# patterns match the file name, INPUT_FILTER is applied.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
-# INPUT_FILTER ) will also be used to filter the input files that are used for
-# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
-# The default value is: NO.
-
-FILTER_SOURCE_FILES    = NO
-
-# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
-# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
-# it is also possible to disable source filtering for a specific pattern using
-# *.ext= (so without naming a filter).
-# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
-
-FILTER_SOURCE_PATTERNS = 
-
-# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
-# is part of the input, its contents will be placed on the main page
-# (index.html). This can be useful if you have a project on for instance GitHub
-# and want to reuse the introduction page also for the doxygen output.
-
-USE_MDFILE_AS_MAINPAGE = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
-# generated. Documented entities will be cross-referenced with these sources.
-#
-# Note: To get rid of all source code in the generated output, make sure that
-# also VERBATIM_HEADERS is set to NO.
-# The default value is: NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body of functions,
-# classes and enums directly into the documentation.
-# The default value is: NO.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
-# special comment blocks from generated source code fragments. Normal C, C++ and
-# Fortran comments will always remain visible.
-# The default value is: YES.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
-# function all documented functions referencing it will be listed.
-# The default value is: NO.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES then for each documented function
-# all documented entities called/used by that function will be listed.
-# The default value is: NO.
-
-REFERENCES_RELATION    = NO
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
-# to YES, then the hyperlinks from functions in REFERENCES_RELATION and
-# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
-# link to the documentation.
-# The default value is: YES.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
-# source code will show a tooltip with additional information such as prototype,
-# brief description and links to the definition and documentation. Since this
-# will make the HTML file larger and loading of large files a bit slower, you
-# can opt to disable this feature.
-# The default value is: YES.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-SOURCE_TOOLTIPS        = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code will
-# point to the HTML generated by the htags(1) tool instead of doxygen built-in
-# source browser. The htags tool is part of GNU's global source tagging system
-# (see http://www.gnu.org/software/global/global.html). You will need version
-# 4.8.6 or higher.
-#
-# To use it do the following:
-# - Install the latest version of global
-# - Enable SOURCE_BROWSER and USE_HTAGS in the config file
-# - Make sure the INPUT points to the root of the source tree
-# - Run doxygen as normal
-#
-# Doxygen will invoke htags (and that will in turn invoke gtags), so these
-# tools must be available from the command line (i.e. in the search path).
-#
-# The result: instead of the source browser generated by doxygen, the links to
-# source code will now point to the output of htags.
-# The default value is: NO.
-# This tag requires that the tag SOURCE_BROWSER is set to YES.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
-# verbatim copy of the header file for each class for which an include is
-# specified. Set to NO to disable this.
-# See also: Section \class.
-# The default value is: YES.
-
-VERBATIM_HEADERS       = YES
-
-# If the CLANG_ASSISTED_PARSING tag is set to YES, then doxygen will use the
-# clang parser (see: http://clang.llvm.org/) for more acurate parsing at the
-# cost of reduced performance. This can be particularly helpful with template
-# rich C++ code for which doxygen's built-in parser lacks the necessary type
-# information.
-# Note: The availability of this option depends on whether or not doxygen was
-# compiled with the --with-libclang option.
-# The default value is: NO.
-
-CLANG_ASSISTED_PARSING = NO
-
-# If clang assisted parsing is enabled you can provide the compiler with command
-# line options that you would normally use when invoking the compiler. Note that
-# the include paths will already be set by doxygen for the files and directories
-# specified with INPUT and INCLUDE_PATH.
-# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES.
-
-CLANG_OPTIONS          = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
-# compounds will be generated. Enable this if the project contains a lot of
-# classes, structs, unions or interfaces.
-# The default value is: YES.
-
-ALPHABETICAL_INDEX     = YES
-
-# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
-# which the alphabetical index list will be split.
-# Minimum value: 1, maximum value: 20, default value: 5.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all classes will
-# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
-# can be used to specify a prefix (or a list of prefixes) that should be ignored
-# while generating the index headers.
-# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
-# The default value is: YES.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_OUTPUT            = html
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
-# generated HTML page (for example: .htm, .php, .asp).
-# The default value is: .html.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
-# each generated HTML page. If the tag is left blank doxygen will generate a
-# standard header.
-#
-# To get valid HTML the header file that includes any scripts and style sheets
-# that doxygen needs, which is dependent on the configuration options used (e.g.
-# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
-# default header using
-# doxygen -w html new_header.html new_footer.html new_stylesheet.css
-# YourConfigFile
-# and then modify the file new_header.html. See also section "Doxygen usage"
-# for information on how to generate the default header that doxygen normally
-# uses.
-# Note: The header is subject to change so you typically have to regenerate the
-# default header when upgrading to a newer version of doxygen. For a description
-# of the possible markers and block names see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
-# generated HTML page. If the tag is left blank doxygen will generate a standard
-# footer. See HTML_HEADER for more information on how to generate a default
-# footer and what special commands can be used inside the footer. See also
-# section "Doxygen usage" for information on how to generate the default footer
-# that doxygen normally uses.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
-# sheet that is used by each HTML page. It can be used to fine-tune the look of
-# the HTML output. If left blank doxygen will generate a default style sheet.
-# See also section "Doxygen usage" for information on how to generate the style
-# sheet that doxygen normally uses.
-# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
-# it is more robust and this tag (HTML_STYLESHEET) will in the future become
-# obsolete.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_STYLESHEET        = 
-
-# The HTML_EXTRA_STYLESHEET tag can be used to specify an additional user-
-# defined cascading style sheet that is included after the standard style sheets
-# created by doxygen. Using this option one can overrule certain style aspects.
-# This is preferred over using HTML_STYLESHEET since it does not replace the
-# standard style sheet and is therefor more robust against future updates.
-# Doxygen will copy the style sheet file to the output directory. For an example
-# see the documentation.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_STYLESHEET  = 
-
-# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the HTML output directory. Note
-# that these files will be copied to the base HTML output directory. Use the
-# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
-# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
-# files will be copied as-is; there are no commands or markers available.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_EXTRA_FILES       = 
-
-# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
-# will adjust the colors in the stylesheet and background images according to
-# this color. Hue is specified as an angle on a colorwheel, see
-# http://en.wikipedia.org/wiki/Hue for more information. For instance the value
-# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
-# purple, and 360 is red again.
-# Minimum value: 0, maximum value: 359, default value: 220.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_HUE    = 220
-
-# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
-# in the HTML output. For a value of 0 the output will use grayscales only. A
-# value of 255 will produce the most vivid colors.
-# Minimum value: 0, maximum value: 255, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_SAT    = 100
-
-# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
-# luminance component of the colors in the HTML output. Values below 100
-# gradually make the output lighter, whereas values above 100 make the output
-# darker. The value divided by 100 is the actual gamma applied, so 80 represents
-# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
-# change the gamma.
-# Minimum value: 40, maximum value: 240, default value: 80.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_COLORSTYLE_GAMMA  = 80
-
-# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
-# page will contain the date and time when the page was generated. Setting this
-# to NO can help when comparing the output of multiple runs.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_TIMESTAMP         = YES
-
-# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
-# documentation will contain sections that can be hidden and shown after the
-# page has loaded.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_DYNAMIC_SECTIONS  = NO
-
-# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
-# shown in the various tree structured indices initially; the user can expand
-# and collapse entries dynamically later on. Doxygen will expand the tree to
-# such a level that at most the specified number of entries are visible (unless
-# a fully collapsed tree already exceeds this amount). So setting the number of
-# entries 1 will produce a full collapsed tree by default. 0 is a special value
-# representing an infinite number of entries and will result in a full expanded
-# tree by default.
-# Minimum value: 0, maximum value: 9999, default value: 100.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-HTML_INDEX_NUM_ENTRIES = 100
-
-# If the GENERATE_DOCSET tag is set to YES, additional index files will be
-# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: http://developer.apple.com/tools/xcode/), introduced with
-# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
-# Makefile in the HTML output directory. Running make will produce the docset in
-# that directory and running make install will install the docset in
-# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
-# startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
-# for more information.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_DOCSET        = NO
-
-# This tag determines the name of the docset feed. A documentation feed provides
-# an umbrella under which multiple documentation sets from a single provider
-# (such as a company or product suite) can be grouped.
-# The default value is: Doxygen generated docs.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_FEEDNAME        = "Doxygen generated docs"
-
-# This tag specifies a string that should uniquely identify the documentation
-# set bundle. This should be a reverse domain-name style string, e.g.
-# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_BUNDLE_ID       = org.doxygen.Project
-
-# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
-# the documentation publisher. This should be a reverse domain-name style
-# string, e.g. com.mycompany.MyDocSet.documentation.
-# The default value is: org.doxygen.Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
-
-# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
-# The default value is: Publisher.
-# This tag requires that the tag GENERATE_DOCSET is set to YES.
-
-DOCSET_PUBLISHER_NAME  = Publisher
-
-# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
-# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
-# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
-# (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
-# Windows.
-#
-# The HTML Help Workshop contains a compiler that can convert all HTML output
-# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
-# files are now used as the Windows 98 help format, and will replace the old
-# Windows help format (.hlp) on all Windows platforms in the future. Compressed
-# HTML files also contain an index, a table of contents, and you can search for
-# words in the documentation. The HTML workshop also contains a viewer for
-# compressed HTML files.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_HTMLHELP      = NO
-
-# The CHM_FILE tag can be used to specify the file name of the resulting .chm
-# file. You can add a path in front of the file if the result should not be
-# written to the html output directory.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_FILE               = 
-
-# The HHC_LOCATION tag can be used to specify the location (absolute path
-# including file name) of the HTML help compiler ( hhc.exe). If non-empty
-# doxygen will try to run the HTML help compiler on the generated index.hhp.
-# The file has to be specified with full path.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-HHC_LOCATION           = 
-
-# The GENERATE_CHI flag controls if a separate .chi index file is generated (
-# YES) or that it should be included in the master .chm file ( NO).
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-GENERATE_CHI           = NO
-
-# The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
-# and project file content.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-CHM_INDEX_ENCODING     = 
-
-# The BINARY_TOC flag controls whether a binary table of contents is generated (
-# YES) or a normal table of contents ( NO) in the .chm file.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members to
-# the table of contents of the HTML help documentation and to the tree view.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-
-TOC_EXPAND             = NO
-
-# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
-# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
-# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
-# (.qch) of the generated HTML documentation.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_QHP           = NO
-
-# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
-# the file name of the resulting .qch file. The path specified is relative to
-# the HTML output folder.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QCH_FILE               = 
-
-# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
-# Project output. For more information please see Qt Help Project / Namespace
-# (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_NAMESPACE          = org.doxygen.Project
-
-# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
-# Help Project output. For more information please see Qt Help Project / Virtual
-# Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
-# folders).
-# The default value is: doc.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_VIRTUAL_FOLDER     = doc
-
-# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
-# filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_NAME   = 
-
-# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
-# custom filter to add. For more information please see Qt Help Project / Custom
-# Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
-# filters).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_CUST_FILTER_ATTRS  = 
-
-# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
-# project's filter section matches. Qt Help Project / Filter Attributes (see:
-# http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHP_SECT_FILTER_ATTRS  = 
-
-# The QHG_LOCATION tag can be used to specify the location of Qt's
-# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
-# generated .qhp file.
-# This tag requires that the tag GENERATE_QHP is set to YES.
-
-QHG_LOCATION           = 
-
-# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
-# generated, together with the HTML files, they form an Eclipse help plugin. To
-# install this plugin and make it available under the help contents menu in
-# Eclipse, the contents of the directory containing the HTML and XML files needs
-# to be copied into the plugins directory of eclipse. The name of the directory
-# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
-# After copying Eclipse needs to be restarted before the help appears.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_ECLIPSEHELP   = NO
-
-# A unique identifier for the Eclipse help plugin. When installing the plugin
-# the directory name containing the HTML and XML files should also have this
-# name. Each documentation set should have its own identifier.
-# The default value is: org.doxygen.Project.
-# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
-
-ECLIPSE_DOC_ID         = org.doxygen.Project
-
-# If you want full control over the layout of the generated HTML pages it might
-# be necessary to disable the index and replace it with your own. The
-# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
-# of each HTML page. A value of NO enables the index and the value YES disables
-# it. Since the tabs in the index contain the same information as the navigation
-# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-DISABLE_INDEX          = NO
-
-# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
-# structure should be generated to display hierarchical information. If the tag
-# value is set to YES, a side panel will be generated containing a tree-like
-# index structure (just like the one that is generated for HTML Help). For this
-# to work a browser that supports JavaScript, DHTML, CSS and frames is required
-# (i.e. any modern browser). Windows users are probably better off using the
-# HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
-# further fine-tune the look of the index. As an example, the default style
-# sheet generated by doxygen has an example that shows how to put an image at
-# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
-# the same information as the tab index, you could consider setting
-# DISABLE_INDEX to YES when enabling this option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-GENERATE_TREEVIEW      = NO
-
-# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
-# doxygen will group on one line in the generated HTML documentation.
-#
-# Note that a value of 0 will completely suppress the enum values from appearing
-# in the overview section.
-# Minimum value: 0, maximum value: 20, default value: 4.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
-# to set the initial width (in pixels) of the frame in which the tree is shown.
-# Minimum value: 0, maximum value: 1500, default value: 250.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-TREEVIEW_WIDTH         = 250
-
-# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
-# external symbols imported via tag files in a separate window.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-EXT_LINKS_IN_WINDOW    = NO
-
-# Use this tag to change the font size of LaTeX formulas included as images in
-# the HTML documentation. When you change the font size after a successful
-# doxygen run you need to manually remove any form_*.png images from the HTML
-# output directory to force them to be regenerated.
-# Minimum value: 8, maximum value: 50, default value: 10.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_FONTSIZE       = 10
-
-# Use the FORMULA_TRANPARENT tag to determine whether or not the images
-# generated for formulas are transparent PNGs. Transparent PNGs are not
-# supported properly for IE 6.0, but are supported on all modern browsers.
-#
-# Note that when changing this option you need to delete any form_*.png files in
-# the HTML output directory before the changes have effect.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-FORMULA_TRANSPARENT    = YES
-
-# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
-# http://www.mathjax.org) which uses client side Javascript for the rendering
-# instead of using prerendered bitmaps. Use this if you do not have LaTeX
-# installed or if you want to formulas look prettier in the HTML output. When
-# enabled you may also need to install MathJax separately and configure the path
-# to it using the MATHJAX_RELPATH option.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-USE_MATHJAX            = NO
-
-# When MathJax is enabled you can set the default output format to be used for
-# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
-# Possible values are: HTML-CSS (which is slower, but has the best
-# compatibility), NativeMML (i.e. MathML) and SVG.
-# The default value is: HTML-CSS.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_FORMAT         = HTML-CSS
-
-# When MathJax is enabled you need to specify the location relative to the HTML
-# output directory using the MATHJAX_RELPATH option. The destination directory
-# should contain the MathJax.js script. For instance, if the mathjax directory
-# is located at the same level as the HTML output directory, then
-# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
-# Content Delivery Network so you can quickly see the result without installing
-# MathJax. However, it is strongly recommended to install a local copy of
-# MathJax from http://www.mathjax.org before deployment.
-# The default value is: http://cdn.mathjax.org/mathjax/latest.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_RELPATH        = http://cdn.mathjax.org/mathjax/latest
-
-# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
-# extension names that should be enabled during MathJax rendering. For example
-# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_EXTENSIONS     = 
-
-# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
-# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
-# example see the documentation.
-# This tag requires that the tag USE_MATHJAX is set to YES.
-
-MATHJAX_CODEFILE       = 
-
-# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
-# the HTML output. The underlying search engine uses javascript and DHTML and
-# should work on any modern browser. Note that when using HTML help
-# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
-# there is already a search function so this one should typically be disabled.
-# For large projects the javascript based search engine can be slow, then
-# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
-# search using the keyboard; to jump to the search box use <access key> + S
-# (what the <access key> is depends on the OS and browser, but it is typically
-# <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
-# key> to jump into the search results window, the results can be navigated
-# using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
-# the search. The filter options can be selected when the cursor is inside the
-# search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
-# to select a filter and <Enter> or <escape> to activate or cancel the filter
-# option.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_HTML is set to YES.
-
-SEARCHENGINE           = YES
-
-# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
-# implemented using a web server instead of a web client using Javascript. There
-# are two flavours of web server based searching depending on the
-# EXTERNAL_SEARCH setting. When disabled, doxygen will generate a PHP script for
-# searching and an index file used by the script. When EXTERNAL_SEARCH is
-# enabled the indexing and searching needs to be provided by external tools. See
-# the section "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SERVER_BASED_SEARCH    = NO
-
-# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
-# script for searching. Instead the search results are written to an XML file
-# which needs to be processed by an external indexer. Doxygen will invoke an
-# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
-# search results.
-#
-# Doxygen ships with an example indexer ( doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/).
-#
-# See the section "External Indexing and Searching" for details.
-# The default value is: NO.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH        = NO
-
-# The SEARCHENGINE_URL should point to a search engine hosted by a web server
-# which will return the search results when EXTERNAL_SEARCH is enabled.
-#
-# Doxygen ships with an example indexer ( doxyindexer) and search engine
-# (doxysearch.cgi) which are based on the open source search engine library
-# Xapian (see: http://xapian.org/). See the section "External Indexing and
-# Searching" for details.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHENGINE_URL       = 
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
-# search data is written to a file for indexing by an external tool. With the
-# SEARCHDATA_FILE tag the name of this file can be specified.
-# The default file is: searchdata.xml.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-SEARCHDATA_FILE        = searchdata.xml
-
-# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
-# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
-# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
-# projects and redirect the results back to the right project.
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTERNAL_SEARCH_ID     = 
-
-# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
-# projects other than the one defined by this configuration file, but that are
-# all added to the same external search index. Each project needs to have a
-# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
-# to a relative location where the documentation can be found. The format is:
-# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
-# This tag requires that the tag SEARCHENGINE is set to YES.
-
-EXTRA_SEARCH_MAPPINGS  = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
-# The default value is: YES.
-
-GENERATE_LATEX         = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
-# invoked.
-#
-# Note that when enabling USE_PDFLATEX this option is only used for generating
-# bitmaps for formulas in the HTML output, but not in the Makefile that is
-# written to the output directory.
-# The default file is: latex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
-# index for LaTeX.
-# The default file is: makeindex.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used by the
-# printer.
-# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
-# 14 inches) and executive (7.25 x 10.5 inches).
-# The default value is: a4.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PAPER_TYPE             = a4
-
-# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
-# that should be included in the LaTeX output. To get the times font for
-# instance you can specify
-# EXTRA_PACKAGES=times
-# If left blank no extra packages will be included.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
-# generated LaTeX document. The header should contain everything until the first
-# chapter. If it is left blank doxygen will generate a standard header. See
-# section "Doxygen usage" for information on how to let doxygen write the
-# default header to a separate file.
-#
-# Note: Only use a user-defined header if you know what you are doing! The
-# following commands have a special meaning inside the header: $title,
-# $datetime, $date, $doxygenversion, $projectname, $projectnumber. Doxygen will
-# replace them by respectively the title of the page, the current date and time,
-# only the current date, the version number of doxygen, the project name (see
-# PROJECT_NAME), or the project number (see PROJECT_NUMBER).
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HEADER           = doc/doxygen/header.tex
-
-# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
-# generated LaTeX document. The footer should contain everything after the last
-# chapter. If it is left blank doxygen will generate a standard footer.
-#
-# Note: Only use a user-defined footer if you know what you are doing!
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_FOOTER           = 
-
-# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
-# other source files which should be copied to the LATEX_OUTPUT output
-# directory. Note that the files will be copied as-is; there are no commands or
-# markers available.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_EXTRA_FILES      = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
-# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
-# contain links (just like the HTML output) instead of page references. This
-# makes the output suitable for online browsing using a PDF viewer.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-PDF_HYPERLINKS         = YES
-
-# If the LATEX_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
-# the PDF file directly from the LaTeX files. Set this option to YES to get a
-# higher quality PDF documentation.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-USE_PDFLATEX           = YES
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
-# command to the generated LaTeX files. This will instruct LaTeX to keep running
-# if errors occur, instead of asking the user for help. This option is also used
-# when generating formulas in HTML.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BATCHMODE        = NO
-
-# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
-# index chapters (such as File Index, Compound Index, etc.) in the output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_HIDE_INDICES     = NO
-
-# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
-# code with syntax highlighting in the LaTeX output.
-#
-# Note that which sources are shown also depends on other settings such as
-# SOURCE_BROWSER.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_SOURCE_CODE      = NO
-
-# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
-# bibliography, e.g. plainnat, or ieeetr. See
-# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
-# The default value is: plain.
-# This tag requires that the tag GENERATE_LATEX is set to YES.
-
-LATEX_BIB_STYLE        = plain
-
-#---------------------------------------------------------------------------
-# Configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
-# RTF output is optimized for Word 97 and may not look too pretty with other RTF
-# readers/editors.
-# The default value is: NO.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: rtf.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
-# documents. This may be useful for small projects and may help to save some
-# trees in general.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
-# contain hyperlink fields. The RTF file will contain links (just like the HTML
-# output) instead of page references. This makes the output suitable for online
-# browsing using Word or some other Word compatible readers that support those
-# fields.
-#
-# Note: WordPad (write) and others do not support links.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's config
-# file, i.e. a series of assignments. You only have to provide replacements,
-# missing definitions are set to their default value.
-#
-# See also section "Doxygen usage" for information on how to generate the
-# default style sheet that doxygen normally uses.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an RTF document. Syntax is
-# similar to doxygen's config file. A template extensions file can be generated
-# using doxygen -e rtf extensionFile.
-# This tag requires that the tag GENERATE_RTF is set to YES.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
-# classes and files.
-# The default value is: NO.
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it. A directory man3 will be created inside the directory specified by
-# MAN_OUTPUT.
-# The default directory is: man.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to the generated
-# man pages. In case the manual section does not start with a number, the number
-# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
-# optional.
-# The default value is: .3.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
-# will generate one additional man file for each entity documented in the real
-# man page(s). These additional files only source the real man page, but without
-# them the man command would be unable to find the correct page.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_MAN is set to YES.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
-# captures the structure of the code including all documentation.
-# The default value is: NO.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
-# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
-# it.
-# The default directory is: xml.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify a XML schema, which can be used by a
-# validating XML parser to check the syntax of the XML files.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify a XML DTD, which can be used by a
-# validating XML parser to check the syntax of the XML files.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
-# listings (including syntax highlighting and cross-referencing information) to
-# the XML output. Note that enabling this will significantly increase the size
-# of the XML output.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_XML is set to YES.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to the DOCBOOK output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
-# that can be used to generate PDF.
-# The default value is: NO.
-
-GENERATE_DOCBOOK       = NO
-
-# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
-# front of it.
-# The default directory is: docbook.
-# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
-
-DOCBOOK_OUTPUT         = docbook
-
-#---------------------------------------------------------------------------
-# Configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
-# Definitions (see http://autogen.sf.net) file that captures the structure of
-# the code including all documentation. Note that this feature is still
-# experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# Configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
-# file that captures the structure of the code including all documentation.
-#
-# Note that this feature is still experimental and incomplete at the moment.
-# The default value is: NO.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
-# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
-# output from the Perl module output.
-# The default value is: NO.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
-# formatted so it can be parsed by a human reader. This is useful if you want to
-# understand what is going on. On the other hand, if this tag is set to NO the
-# size of the Perl module output will be much smaller and Perl will parse it
-# just the same.
-# The default value is: YES.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file are
-# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
-# so different doxyrules.make files included by the same Makefile don't
-# overwrite each other's variables.
-# This tag requires that the tag GENERATE_PERLMOD is set to YES.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
-# C-preprocessor directives found in the sources and include files.
-# The default value is: YES.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
-# in the source code. If set to NO only conditional compilation will be
-# performed. Macro expansion can be done in a controlled way by setting
-# EXPAND_ONLY_PREDEF to YES.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-MACRO_EXPANSION        = YES
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
-# the macro expansion is limited to the macros specified with the PREDEFINED and
-# EXPAND_AS_DEFINED tags.
-# The default value is: NO.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_ONLY_PREDEF     = YES
-
-# If the SEARCH_INCLUDES tag is set to YES the includes files in the
-# INCLUDE_PATH will be searched if a #include is found.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that
-# contain include files that are not input files but should be processed by the
-# preprocessor.
-# This tag requires that the tag SEARCH_INCLUDES is set to YES.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
-# patterns (like *.h and *.hpp) to filter out the header-files in the
-# directories. If left blank, the patterns specified with FILE_PATTERNS will be
-# used.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that are
-# defined before the preprocessor is started (similar to the -D option of e.g.
-# gcc). The argument of the tag is a list of macros of the form: name or
-# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
-# is assumed. To prevent a macro definition from being undefined via #undef or
-# recursively expanded use the := operator instead of the = operator.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-PREDEFINED             = COI_LIBRARY_VERSION=2 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
-# tag can be used to specify a list of macro names that should be expanded. The
-# macro definition that is found in the sources will be used. Use the PREDEFINED
-# tag if you want to use a different macro definition that overrules the
-# definition found in the source code.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
-# remove all refrences to function-like macros that are alone on a line, have an
-# all uppercase name, and do not end with a semicolon. Such function macros are
-# typically used for boiler-plate code, and will confuse the parser if not
-# removed.
-# The default value is: YES.
-# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration options related to external references
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tag files. For each tag
-# file the location of the external documentation should be added. The format of
-# a tag file without this location is as follows:
-# TAGFILES = file1 file2 ...
-# Adding location for the tag files is done as follows:
-# TAGFILES = file1=loc1 "file2 = loc2" ...
-# where loc1 and loc2 can be relative or absolute paths or URLs. See the
-# section "Linking to external documentation" for more information about the use
-# of tag files.
-# Note: Each tag file must have an unique name (where the name does NOT include
-# the path). If a tag file is not located in the directory in which doxygen is
-# run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
-# tag file that is based on the input files it reads. See section "Linking to
-# external documentation" for more information about the usage of tag files.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external class will be listed in the
-# class index. If set to NO only the inherited external classes will be listed.
-# The default value is: NO.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
-# the modules index. If set to NO, only the current project's groups will be
-# listed.
-# The default value is: YES.
-
-EXTERNAL_GROUPS        = YES
-
-# If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
-# the related pages index. If set to NO, only the current project's pages will
-# be listed.
-# The default value is: YES.
-
-EXTERNAL_PAGES         = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script
-# interpreter (i.e. the result of 'which perl').
-# The default file (with absolute path) is: /usr/bin/perl.
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
-# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
-# NO turns the diagrams off. Note that this option also works with HAVE_DOT
-# disabled, but it is recommended to install and use dot, since it yields more
-# powerful graphs.
-# The default value is: YES.
-
-CLASS_DIAGRAMS         = YES
-
-# You can define message sequence charts within doxygen comments using the \msc
-# command. Doxygen will then run the mscgen tool (see:
-# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
-# documentation. The MSCGEN_PATH tag allows you to specify the directory where
-# the mscgen tool resides. If left empty the tool is assumed to be found in the
-# default search path.
-
-MSCGEN_PATH            = 
-
-# You can include diagrams made with dia in doxygen documentation. Doxygen will
-# then run dia to produce the diagram and insert it in the documentation. The
-# DIA_PATH tag allows you to specify the directory where the dia binary resides.
-# If left empty dia is assumed to be found in the default search path.
-
-DIA_PATH               = 
-
-# If set to YES, the inheritance and collaboration graphs will hide inheritance
-# and usage relations if the target is undocumented or is not a class.
-# The default value is: YES.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
-# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
-# Bell Labs. The other options in this section have no effect if this option is
-# set to NO
-# The default value is: NO.
-
-HAVE_DOT               = NO
-
-# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
-# to run in parallel. When set to 0 doxygen will base this on the number of
-# processors available in the system. You can set it explicitly to a value
-# larger than 0 to get control over the balance between CPU load and processing
-# speed.
-# Minimum value: 0, maximum value: 32, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_NUM_THREADS        = 0
-
-# When you want a differently looking font n the dot files that doxygen
-# generates you can specify the font name using DOT_FONTNAME. You need to make
-# sure dot is able to find the font, which can be done by putting it in a
-# standard location or by setting the DOTFONTPATH environment variable or by
-# setting DOT_FONTPATH to the directory containing the font.
-# The default value is: Helvetica.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTNAME           = Helvetica
-
-# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
-# dot graphs.
-# Minimum value: 4, maximum value: 24, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTSIZE           = 10
-
-# By default doxygen will tell dot to use the default font as specified with
-# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
-# the path where dot can find it using this tag.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_FONTPATH           = 
-
-# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
-# each documented class showing the direct and indirect inheritance relations.
-# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
-# graph for each documented class showing the direct and indirect implementation
-# dependencies (inheritance, containment, and class references variables) of the
-# class with other documented classes.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
-# groups, showing the direct groups dependencies.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
-# collaboration diagrams in a style similar to the OMG's Unified Modeling
-# Language.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LOOK               = NO
-
-# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
-# class node. If there are many fields or methods and many nodes the graph may
-# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
-# number of items for each type to make the size more manageable. Set this to 0
-# for no limit. Note that the threshold may be exceeded by 50% before the limit
-# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
-# but if the number exceeds 15, the total amount of fields shown is limited to
-# 10.
-# Minimum value: 0, maximum value: 100, default value: 10.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-UML_LIMIT_NUM_FIELDS   = 10
-
-# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
-# collaboration graphs will show the relations between templates and their
-# instances.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
-# YES then doxygen will generate a graph for each documented file showing the
-# direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDE_GRAPH          = YES
-
-# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
-# set to YES then doxygen will generate a graph for each documented file showing
-# the direct and indirect include dependencies of the file with other documented
-# files.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable call graphs for selected
-# functions only using the \callgraph command.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
-# dependency graph for every global function or class method.
-#
-# Note that enabling this option will significantly increase the time of a run.
-# So in most cases it will be better to enable caller graphs for selected
-# functions only using the \callergraph command.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
-# hierarchy of all classes instead of a textual one.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
-# dependencies a directory has on other directories in a graphical way. The
-# dependency relations are determined by the #include relations between the
-# files in the directories.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
-# generated by dot.
-# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
-# to make the SVG files visible in IE 9+ (other browsers do not have this
-# requirement).
-# Possible values are: png, jpg, gif and svg.
-# The default value is: png.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_IMAGE_FORMAT       = png
-
-# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
-# enable generation of interactive SVG images that allow zooming and panning.
-#
-# Note that this requires a modern browser other than Internet Explorer. Tested
-# and working are Firefox, Chrome, Safari, and Opera.
-# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
-# the SVG files visible. Older versions of IE do not have SVG support.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-INTERACTIVE_SVG        = NO
-
-# The DOT_PATH tag can be used to specify the path where the dot tool can be
-# found. If left blank, it is assumed the dot tool can be found in the path.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_PATH               = 
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that
-# contain dot files that are included in the documentation (see the \dotfile
-# command).
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOTFILE_DIRS           = 
-
-# The MSCFILE_DIRS tag can be used to specify one or more directories that
-# contain msc files that are included in the documentation (see the \mscfile
-# command).
-
-MSCFILE_DIRS           = 
-
-# The DIAFILE_DIRS tag can be used to specify one or more directories that
-# contain dia files that are included in the documentation (see the \diafile
-# command).
-
-DIAFILE_DIRS           = 
-
-# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
-# that will be shown in the graph. If the number of nodes in a graph becomes
-# larger than this value, doxygen will truncate the graph, which is visualized
-# by representing a node as a red box. Note that doxygen if the number of direct
-# children of the root node in a graph is already larger than
-# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
-# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
-# Minimum value: 0, maximum value: 10000, default value: 50.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_GRAPH_MAX_NODES    = 50
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
-# generated by dot. A depth value of 3 means that only nodes reachable from the
-# root by following a path via at most 3 edges will be shown. Nodes that lay
-# further from the root node will be omitted. Note that setting this option to 1
-# or 2 may greatly reduce the computation time needed for large code bases. Also
-# note that the size of a graph can be further restricted by
-# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
-# Minimum value: 0, maximum value: 1000, default value: 0.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
-# background. This is disabled by default, because dot on Windows does not seem
-# to support this out of the box.
-#
-# Warning: Depending on the platform used, enabling this option may lead to
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
-# read).
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
-# files in one run (i.e. multiple -o and -T options on the command line). This
-# makes dot run faster, but since only newer versions of dot (>1.8.10) support
-# this, this feature is disabled by default.
-# The default value is: NO.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
-# explaining the meaning of the various boxes and arrows in the dot generated
-# graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
-# files that are used to generate the various graphs.
-# The default value is: YES.
-# This tag requires that the tag HAVE_DOT is set to YES.
-
-DOT_CLEANUP            = YES
diff --git a/liboffloadmic/doc/doxygen/header.tex b/liboffloadmic/doc/doxygen/header.tex
deleted file mode 100644 (file)
index e91d4be..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-% Latex header for doxygen 1.8.3.1
-\documentclass{book}
-\usepackage[a4paper,top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm]{geometry}
-\usepackage{makeidx}
-\usepackage{natbib}
-\usepackage{graphicx}
-\usepackage{multicol}
-\usepackage{float}
-\usepackage{listings}
-\usepackage{color}
-\usepackage{ifthen}
-\usepackage[table]{xcolor}
-\usepackage{textcomp}
-\usepackage{alltt}
-\usepackage{ifpdf}
-\ifpdf
-\usepackage[pdftex,
-            pagebackref=true,
-            colorlinks=true,
-            linkcolor=blue,
-            unicode
-           ]{hyperref}
-\else
-\usepackage[ps2pdf,
-            pagebackref=true,
-            colorlinks=true,
-            linkcolor=blue,
-            unicode
-           ]{hyperref}
-\usepackage{pspicture}
-\fi
-\usepackage[utf8]{inputenc}
-\usepackage{mathptmx}
-\usepackage[scaled=.90]{helvet}
-\usepackage{courier}
-\usepackage{sectsty}
-\usepackage{amssymb}
-\usepackage[titles]{tocloft}
-\usepackage{doxygen}
-\usepackage{fancyhdr}
-\pagestyle{fancy}
-\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=4,numbers=left }
-\makeindex
-\setcounter{tocdepth}{3}
-\renewcommand{\footrulewidth}{0.4pt}
-\renewcommand{\familydefault}{\sfdefault}
-\hfuzz=15pt
-\setlength{\emergencystretch}{15pt}
-\hbadness=750
-\tolerance=750
-\begin{document}
-\hypersetup{pageanchor=false,citecolor=blue}
-\begin{titlepage}
-\vspace*{7cm}
-\begin{center}
-{\Large Intel\textsuperscript{\textregistered} Offload Runtime Library }\\
-\vspace*{1cm}
-{\large Generated by Doxygen $doxygenversion }\\
-\vspace*{0.5cm}
-{\small $datetime }\\
-\end{center}
-\end{titlepage}
-
-{\bf FTC Optimization Notice}
-
-Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for
-optimizations that are not unique to Intel microprocessors. These optimizations include SSE2,
-SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the
-availability, functionality, or effectiveness of any optimization on microprocessors not
-manufactured by Intel.
-
-Microprocessor-dependent optimizations in this product are intended for use with Intel
-microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for
-Intel microprocessors. Please refer to the applicable product User and Reference Guides for
-more information regarding the specific instruction sets covered by this notice.
-
-Notice revision \#20110804
-
-\vspace*{0.5cm}
-
-{\bf Trademarks}
-
-Intel, Xeon, and Intel Xeon Phi are trademarks of Intel Corporation in the U.S. and/or other countries.
-
-This document is Copyright \textcopyright 2014-2016, Intel Corporation. All rights reserved.
-
-\pagenumbering{roman}
-\tableofcontents
-\pagenumbering{arabic}
-\hypersetup{pageanchor=true,citecolor=blue}
diff --git a/liboffloadmic/include/coi/common/COIEngine_common.h b/liboffloadmic/include/coi/common/COIEngine_common.h
deleted file mode 100644 (file)
index 836e3e8..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIENGINE_COMMON_H
-#define _COIENGINE_COMMON_H
-
-/** @ingroup COIEngine
- *  @addtogroup COIEnginecommon
-@{
-* @file common/COIEngine_common.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-#define COI_MAX_ISA_x86_64_DEVICES 128
-#define COI_MAX_ISA_MIC_DEVICES    128
-#define COI_MAX_ISA_KNF_DEVICES    0
-#define COI_MAX_ISA_KNC_DEVICES    COI_MAX_ISA_MIC_DEVICES
-#define COI_MAX_ISA_KNL_DEVICES    COI_MAX_ISA_MIC_DEVICES
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// List of ISA types of supported engines.
-///
-typedef enum
-{
-    COI_DEVICE_INVALID = 0,        ///< Represents an invalid device type.
-    COI_DEVICE_SOURCE,             ///< The engine from which offload originates
-    COI_DEVICE_MIC,                ///< Special value used to represent any device
-    ///< in the Intel(R) Many Integrated Core family.
-    COI_DEVICE_DEPRECATED_0,       ///< Placeholder for L1OM devices (deprecated).
-    COI_DEVICE_KNC,                ///< K1OM devices (Knigts Corner).
-    COI_DEVICE_KNL,                ///< Knights Landing devices
-    COI_DEVICE_MAX,
-    COI_DEVICE_KNF = COI_DEVICE_DEPRECATED_0
-} COI_DEVICE_TYPE;
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// List of deprecated device types for backward compatibility
-///
-#define COI_ISA_INVALID COI_DEVICE_INVALID
-#define COI_ISA_x86_64  COI_DEVICE_SOURCE
-#define COI_ISA_MIC     COI_DEVICE_MIC
-#define COI_ISA_KNF     COI_DEVICE_KNF
-#define COI_ISA_KNC     COI_DEVICE_KNC
-
-typedef COI_DEVICE_TYPE COI_ISA_TYPE;
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Get the information about the COIEngine executing this function call.
-///
-/// @param  out_pType
-///         [out] The COI_DEVICE_TYPE of the engine.
-///
-/// @param  out_pIndex
-///         [out] The zero-based index of this engine in the collection of
-///         engines of the ISA returned in out_pType.
-///
-/// @return COI_INVALID_POINTER if any of the parameters are NULL.
-///
-/// @return COI_SUCCESS
-///
-COIACCESSAPI
-COIRESULT
-COIEngineGetIndex(
-    COI_DEVICE_TYPE    *out_pType,
-    uint32_t           *out_pIndex);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIENGINE_COMMON_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/common/COIEvent_common.h b/liboffloadmic/include/coi/common/COIEvent_common.h
deleted file mode 100644 (file)
index 9d5623d..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIEVENT_COMMON_H
-#define _COIEVENT_COMMON_H
-
-/** @ingroup COIEvent
- *  @addtogroup COIEventcommon
-@{
-* @file common/COIEvent_common.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Signal one shot user event. User events created on source can be
-/// signaled from both sink and source. This fires the event and wakes up
-/// threads waiting on COIEventWait.
-///
-/// Note: For events that are not registered or already signaled this call
-///       will behave as a NOP. Users need to make sure that they pass valid
-///       events on the sink side.
-///
-/// @param  in_Event
-///         Event Handle to be signaled.
-///
-/// @return COI_INVAILD_HANDLE if in_Event was not a User event.
-///
-/// @return COI_ERROR if the signal fails to be sent from the sink.
-///
-/// @return COI_SUCCESS if the event was successfully signaled or ignored.
-///
-COIACCESSAPI
-COIRESULT COIEventSignalUserEvent(COIEVENT in_Event);
-///
-///
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIEVENT_COMMON_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/common/COIMacros_common.h b/liboffloadmic/include/coi/common/COIMacros_common.h
deleted file mode 100644 (file)
index d6811c1..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIMACROS_COMMON_H
-#define _COIMACROS_COMMON_H
-
-#include <string.h>
-#include "../source/COIPipeline_source.h"
-#include "../common/COITypes_common.h"
-
-/// @file common/COIMacros_common.h
-/// Commonly used macros
-
-// Note that UNUSUED_ATTR means that it is "possibly" unused, not "definitely".
-// This should compile out in release mode if indeed it is unused.
-    #define UNUSED_ATTR __attribute__((unused))
-    #include <sched.h>
-#ifndef UNREFERENCED_CONST_PARAM
-#define UNREFERENCED_CONST_PARAM(P)     { void* x UNUSED_ATTR = \
-            (void*)(uint64_t)P; \
-}
-#endif
-
-// This seems to work on everything.
-#ifndef UNREFERENCED_PARAM
-    #define UNREFERENCED_PARAM(P)          (P = P)
-#endif
-
-#ifndef SYMBOL_VERSION
-
-        /* Linux support: */
-
-        #define SYMBOL_VERSION( SYMBOL , VERSION ) SYMBOL ## VERSION
-
-#endif
-
-/* The following are static inline definitions of functions used for manipulating
-   COI_CPU_MASK info (The COI_CPU_MASK type is declared as an array of 16 uint64_t's
-   in COITypes_common.h "typedef uint64_t COI_CPU_MASK[16]").
-
-   These static inlined functions are intended on being roughly the same as the Linux
-   CPU_* macros defined in sched.h - with the important difference being a different
-   fundamental type difference: cpu_set_t versus COI_CPU_MASK.
-
-   The motivation for writing this code was to ease portability on the host side of COI
-   applications to both Windows and Linux.
-*/
-
-/* Roughly equivalent to CPU_ISSET(). */
-static inline uint64_t COI_CPU_MASK_ISSET(int bitNumber, const COI_CPU_MASK cpu_mask)
-{
-    if ((size_t)bitNumber < sizeof(COI_CPU_MASK) * 8)
-        return ((cpu_mask)[bitNumber / 64] & (((uint64_t)1) << (bitNumber % 64)));
-    return 0;
-}
-
-/* Roughly equivalent to CPU_SET(). */
-static inline void COI_CPU_MASK_SET(int bitNumber, COI_CPU_MASK cpu_mask)
-{
-    if ((size_t)bitNumber < sizeof(COI_CPU_MASK) * 8)
-        ((cpu_mask)[bitNumber / 64] |= (((uint64_t)1) << (bitNumber % 64)));
-}
-
-/* Roughly equivalent to CPU_ZERO(). */
-static inline void COI_CPU_MASK_ZERO(COI_CPU_MASK cpu_mask)
-{
-    memset(cpu_mask, 0, sizeof(COI_CPU_MASK));
-}
-
-/* Roughly equivalent to CPU_AND(). */
-static inline void COI_CPU_MASK_AND(COI_CPU_MASK dst, const COI_CPU_MASK src1, const COI_CPU_MASK src2)
-{
-    const unsigned int loopIterations = sizeof(COI_CPU_MASK) / sizeof(dst[0]);
-    unsigned int i = 0;
-
-    for (; i < loopIterations; ++i)
-        dst[i] = src1[i] & src2[i];
-}
-
-/* Roughly equivalent to CPU_XOR(). */
-static inline void COI_CPU_MASK_XOR(COI_CPU_MASK dst, const COI_CPU_MASK src1, const COI_CPU_MASK src2)
-{
-    const unsigned int loopIterations = sizeof(COI_CPU_MASK) / sizeof(dst[0]);
-    unsigned int i = 0;
-
-    for (; i < loopIterations; ++i)
-        dst[i] = src1[i] ^ src2[i];
-}
-
-/* Roughly equivalent to CPU_OR(). */
-static inline void COI_CPU_MASK_OR(COI_CPU_MASK dst, const COI_CPU_MASK src1, const COI_CPU_MASK src2)
-{
-    const unsigned int loopIterations = sizeof(COI_CPU_MASK) / sizeof(dst[0]);
-    unsigned int i = 0;
-
-    for (; i < loopIterations; ++i)
-        dst[i] = src1[i] | src2[i];
-}
-
-/* Utility function for COI_CPU_MASK_COUNT() below. */
-static inline int __COI_CountBits(uint64_t n)
-{
-    int cnt = 0;
-
-    for (; n; cnt++)
-        n &= (n - 1);
-    return cnt;
-}
-
-/* Roughly equivalent to CPU_COUNT(). */
-static inline int COI_CPU_MASK_COUNT(const COI_CPU_MASK cpu_mask)
-{
-    int cnt = 0;
-    const unsigned int loopIterations = sizeof(COI_CPU_MASK) / sizeof(cpu_mask[0]);
-    unsigned int i = 0;
-
-    for (; i < loopIterations; ++i)
-    {
-        cnt += __COI_CountBits(cpu_mask[i]);
-    }
-    return cnt;
-}
-
-/* Roughly equivalent to CPU_EQUAL(). */
-static inline int COI_CPU_MASK_EQUAL(const COI_CPU_MASK cpu_mask1, const COI_CPU_MASK cpu_mask2)
-{
-    const unsigned int loopIterations = sizeof(COI_CPU_MASK) / sizeof(cpu_mask1[0]);
-    unsigned int i = 0;
-
-    for (; i < loopIterations; ++i)
-    {
-        if (cpu_mask1[i] != cpu_mask2[i])
-            return 0;
-    }
-    return 1;
-}
-
-
-/* Utility function to translate from cpu_set * to COI_CPU_MASK. */
-static inline void COI_CPU_MASK_XLATE(COI_CPU_MASK dest, const cpu_set_t *src)
-{
-    unsigned int i;
-    unsigned int j;
-    COI_CPU_MASK_ZERO(dest);
-    #if 0
-    /* Slightly slower version than the following #else/#endif block. Left here only to
-         document the intent of the code. */
-    for (i = 0; i < sizeof(cpu_set_t) * 8; ++i)
-        if (CPU_ISSET(i, src))
-            COI_CPU_MASK_SET(i, dest);
-    #else
-    for (i = 0; i < sizeof(COI_CPU_MASK) / sizeof(dest[0]); ++i)
-    {
-        for (j = 0; j < 64; ++j)
-        {
-            if (CPU_ISSET(i * 64 + j, src))
-                dest[i] |= ((uint64_t)1) << j;
-        }
-    }
-    #endif
-}
-
-/* Utility function to translate from COI_CPU_MASK to cpu_set *. */
-static inline void COI_CPU_MASK_XLATE_EX(cpu_set_t *dest, const COI_CPU_MASK src)
-{
-    unsigned int i;
-    unsigned int j;
-    CPU_ZERO(dest);
-    #if 0
-    /* Slightly slower version than the following #else/#endif block. Left here only to
-         document the intent of the code. */
-    for (i = 0; i < sizeof(COI_CPU_MASK) * 8; ++i)
-        if (COI_CPU_MASK_ISSET(i, src))
-            CPU_SET(i, dest);
-    #else
-    for (i = 0; i < sizeof(COI_CPU_MASK) / sizeof(src[0]); ++i)
-    {
-        const uint64_t cpu_mask = src[i];
-
-        for (j = 0; j < 64; ++j)
-        {
-            const uint64_t bit = ((uint64_t)1) << j;
-
-            if (bit & cpu_mask)
-                CPU_SET(i * 64 + j, dest);
-        }
-    }
-    #endif
-}
-
-
-#endif /* _COIMACROS_COMMON_H */
diff --git a/liboffloadmic/include/coi/common/COIPerf_common.h b/liboffloadmic/include/coi/common/COIPerf_common.h
deleted file mode 100644 (file)
index 0b17e13..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIPERF_COMMON_H
-#define _COIPERF_COMMON_H
-
-/** @ingroup COIPerf
- *  @addtogroup COIPerfCommon
-@{
-
-* @file common/COIPerf_common.h
-* Performance Analysis API */
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#include "../common/COITypes_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Returns a performance counter value
-///
-/// This function returns a performance counter value that increments
-/// at a constant rate for all time and is coherent across all cores.
-///
-/// @return Current performance counter value or 0 if no performance counter
-/////         is available
-///
-///
-COIACCESSAPI
-uint64_t COIPerfGetCycleCounter(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Returns the calculated system frequency in hertz.
-///
-/// @return Current system frequency in hertz.
-///
-COIACCESSAPI
-uint64_t COIPerfGetCycleFrequency(void);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-/*! @} */
-
-#endif /* _COIPERF_COMMON_H */
diff --git a/liboffloadmic/include/coi/common/COIResult_common.h b/liboffloadmic/include/coi/common/COIResult_common.h
deleted file mode 100644 (file)
index d40c0b0..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIRESULT_COMMON_H
-#define _COIRESULT_COMMON_H
-
-/** @ingroup COIResult
- *  @addtogroup COIResultCommon
-@{
-
-* @file common/COIResult_common.h
-* Result codes and definitions. */
-
-#include "../common/COITypes_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef enum COIRESULT
-{
-    COI_SUCCESS = 0,                  ///< The function succeeded without error.
-    COI_ERROR,                        ///< Unspecified error.
-    COI_NOT_INITIALIZED,              ///< The function was called before the
-    ///< system was initialized.
-    COI_ALREADY_INITIALIZED,          ///< The function was called after the
-    ///< system was initialized.
-    COI_ALREADY_EXISTS,               ///< Cannot complete the request due to
-    ///< the existence of a similar object.
-    COI_DOES_NOT_EXIST,               ///< The specified object was not found.
-    COI_INVALID_POINTER,              ///< One of the provided addresses was not
-    ///< valid.
-    COI_OUT_OF_RANGE,                 ///< One of the arguments contains a value
-    ///< that is invalid.
-    COI_NOT_SUPPORTED,                ///< This function is not currently
-    ///< supported as used.
-    COI_TIME_OUT_REACHED,             ///< The specified time out caused the
-    ///< function to abort.
-    COI_MEMORY_OVERLAP,               ///< The source and destination range
-    ///< specified overlaps for the same
-    ///< buffer.
-    COI_ARGUMENT_MISMATCH,            ///< The specified arguments are not
-    ///< compatible.
-    COI_SIZE_MISMATCH,                ///< The specified size does not match the
-    ///< expected size.
-    COI_OUT_OF_MEMORY,                ///< The function was unable to allocate
-    ///< the required memory.
-    COI_INVALID_HANDLE,               ///< One of the provided handles was not
-    ///< valid.
-    COI_RETRY,                        ///< This function currently can't
-    ///< complete, but might be able to later.
-    COI_RESOURCE_EXHAUSTED,           ///< The resource was not large enough.
-    COI_ALREADY_LOCKED,               ///< The object was expected to be
-    ///< unlocked, but was locked.
-    COI_NOT_LOCKED,                   ///< The object was expected to be locked,
-    ///< but was unlocked.
-    COI_MISSING_DEPENDENCY,           ///< One or more dependent components
-    ///< could not be found.
-    COI_UNDEFINED_SYMBOL,             ///< One or more symbols the component
-    ///< required was not defined in any
-    ///< library.
-    COI_PENDING,                      ///< Operation is not finished
-    COI_BINARY_AND_HARDWARE_MISMATCH, ///< A specified binary will not run on
-    ///< the specified hardware.
-    COI_PROCESS_DIED,
-    COI_INVALID_FILE,                 ///< The file is invalid for its intended
-    ///< usage in the function.
-    COI_EVENT_CANCELED,               ///< Event wait on a user event that
-    ///< was unregistered or is being
-    ///< unregistered returns
-    ///< COI_EVENT_CANCELED.
-    COI_VERSION_MISMATCH,             ///< The version of Intel(R) Coprocessor
-    ///< Offload Infrastructure on the host
-    ///< is not compatible with the version
-    ///< on the device.
-    COI_BAD_PORT,                     ///< The port that the host is set to
-    ///< connect to is invalid.
-    COI_AUTHENTICATION_FAILURE,       ///< The daemon was unable to authenticate
-    ///< the user that requested an engine.
-    ///< Only reported if daemon is set up for
-    ///< authorization. Is also reported in
-    ///< Windows if host cannot find user.
-    COI_COMM_NOT_INITIALIZED,         ///< The function was called before the
-    ///< comm was initialized.
-    COI_INCORRECT_FORMAT,             ///< Format of data is incorrect
-    COI_NUM_RESULTS                   ///< Reserved, do not use.
-} COIRESULT;
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Returns the string version of the passed in COIRESULT. Thus if
-/// COI_RETRY is passed in, this function returns the string "COI_RETRY". If
-/// the error code passed ins is not valid then "COI_ERROR" will be returned.
-///
-/// @param in_ResultCode
-///        [in] COIRESULT code to return the string version of.
-///
-/// @return String version of the passed in COIRESULT code.
-///
-COIACCESSAPI
-const char *
-COIResultGetName(
-    COIRESULT       in_ResultCode);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIRESULT_COMMON_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/common/COISysInfo_common.h b/liboffloadmic/include/coi/common/COISysInfo_common.h
deleted file mode 100644 (file)
index cc37647..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COISYSINFO_COMMON_H
-#define _COISYSINFO_COMMON_H
-
-/** @ingroup COISysInfo
- *  @addtogroup COISysInfoCommon
-@{
-* @file common/COISysInfo_common.h
-* This interface allows developers to query the platform for system level
-* information. */
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#include "../common/COITypes_common.h"
-#include <assert.h>
-#include <string.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-#define INITIAL_APIC_ID_BITS 0xFF000000   // EBX[31:24] unique APIC ID
-
-///////////////////////////////////////////////////////////////////////////////
-/// \fn uint32_t COISysGetAPICID(void)
-/// @return The Advanced Programmable Interrupt Controller (APIC) ID of
-/// the hardware thread on which the caller is running.
-///
-/// @warning APIC IDs are unique to each hardware thread within a processor,
-/// but may not be sequential.
-COIACCESSAPI
-uint32_t COISysGetAPICID(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// @return The number of cores exposed by the processor on which the caller is
-/// running. Returns 0 if there is an error loading the processor info.
-COIACCESSAPI
-uint32_t COISysGetCoreCount(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// @return The number of hardware threads exposed by the processor on which
-/// the caller is running. Returns 0 if there is an error loading processor
-/// info.
-COIACCESSAPI
-uint32_t COISysGetHardwareThreadCount(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// @return The index of the hardware thread on which the caller is running.
-///
-/// The indexes of neighboring hardware threads will differ by a value of one
-/// and are within the range zero through COISysGetHardwareThreadCount()-1.
-/// Returns ((uint32_t)-1) if there was an error loading processor info.
-COIACCESSAPI
-uint32_t COISysGetHardwareThreadIndex(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// @return The index of the core on which the caller is running.
-///
-/// The indexes of neighboring cores will differ by a value of one and are
-/// within the range zero through COISysGetCoreCount()-1. Returns ((uint32_t)-1)
-/// if there was an error loading processor info.
-COIACCESSAPI
-uint32_t COISysGetCoreIndex(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// @return The number of level 2 caches within the processor on which the
-/// caller is running. Returns ((uint32_t)-1) if there was an error loading
-/// processor info.
-COIACCESSAPI
-uint32_t COISysGetL2CacheCount(void);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// @return The index of the level 2 cache on which the caller is running.
-/// Returns ((uint32_t)-1) if there was an error loading processor info.
-///
-/// The indexes of neighboring cores will differ by a value of one and are
-/// within the range zero through COISysGetL2CacheCount()-1.
-COIACCESSAPI
-uint32_t COISysGetL2CacheIndex(void);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-/*! @} */
-
-#endif /* _COISYSINFO_COMMON_H */
diff --git a/liboffloadmic/include/coi/common/COITypes_common.h b/liboffloadmic/include/coi/common/COITypes_common.h
deleted file mode 100644 (file)
index 6018b7d..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COITYPES_COMMON_H
-#define _COITYPES_COMMON_H
-
-/** @ingroup COITypes
- *  @addtogroup COITypesSource
-@{
-
-* @file common/COITypes_common.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-        #include <stdint.h>
-        #include <wchar.h>
-        #define COIACCESSAPI /* nothing */
-        #define COIACCESSAPI2 /* nothing */
-#endif /* DOXYGEN_SHOULD_SKIP_THIS */
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-struct coievent
-{
-    uint64_t opaque[2];
-};
-
-typedef struct coiprocess   *COIPROCESS;
-typedef struct coipipeline *COIPIPELINE;
-typedef struct coifunction *COIFUNCTION;
-typedef struct coiengine    *COIENGINE;
-typedef struct coievent      COIEVENT;
-typedef struct coibuffer    *COIBUFFER;
-typedef struct coilibrary   *COILIBRARY;
-typedef struct coimapinst   *COIMAPINSTANCE;
-
-typedef uint64_t COI_CPU_MASK[16];
-
-/**
- * On Windows, coi_wchar_t is a uint32_t. On Windows, wchar_t is 16 bits wide, and on Linux it is 32 bits wide, so uint32_t is used for portability.
- */
-typedef wchar_t  coi_wchar_t;
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COITYPES_COMMON_H */
diff --git a/liboffloadmic/include/coi/sink/COIBuffer_sink.h b/liboffloadmic/include/coi/sink/COIBuffer_sink.h
deleted file mode 100644 (file)
index d36d586..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIBUFFER_SINK_H
-#define _COIBUFFER_SINK_H
-
-/** @ingroup COIBuffer
- *  @addtogroup COIBufferSink
-@{
-
-* @file sink\COIBuffer_sink.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-    #include "../common/COITypes_common.h"
-    #include "../common/COIResult_common.h"
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Adds a reference to the memory of a buffer. The memory of the buffer
-/// will remain on the device until both a corresponding COIBufferReleaseRef()
-/// call is made and the run function that delivered the buffer returns.
-///
-/// Running this API in a thread spawned within the run function is not
-/// supported and will cause unpredictable results and may cause data corruption.
-///
-/// @warning 1.It is possible for enqueued run functions to be unable to
-///            execute due to all card memory being occupied by AddRef'd
-///            buffers. As such, it is important that whenever a buffer is
-///            AddRef'd that there be no dependencies on future run functions
-///            for progress to be made towards releasing the buffer.
-///          2.It is important that AddRef is called within the scope of
-///            run function that carries the buffer to be AddRef'd.
-///
-/// @param  in_pBuffer
-///         [in] Pointer to the start of a buffer being AddRef'd, that was
-///         passed in at the start of the run function.
-///
-/// @return COI_SUCCESS if the buffer ref count was successfully incremented.
-///
-/// @return COI_INVALID_POINTER if the buffer pointer is NULL.
-///
-/// @return COI_INVALID_HANDLE if the buffer pointer is invalid.
-///
-COIRESULT
-COIBufferAddRef(
-    void           *in_pBuffer);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Removes a reference to the memory of a buffer. The memory of the buffer
-/// will be eligible for being freed on the device when the following
-/// conditions are met: the run function that delivered the buffer
-/// returns, and the number of calls to COIBufferReleaseRef() matches the
-/// number of calls to COIBufferAddRef().
-//
-/// Running this API in a thread spawned within the run function is not
-/// supported and will cause unpredictable results and may cause data corruption.
-///
-/// @warning When a buffer is AddRef'd it is assumed that it is in use and all
-///          other operations on that buffer waits for ReleaseRef() to happen.
-///          So you cannot pass the AddRef'd buffer's handle to RunFunction
-///          that calls ReleaseRef(). This is a circular dependency and will
-///          cause a deadlock. Buffer's pointer (buffer's sink side
-///          address/pointer which is different than source side BUFFER handle)
-///          needs to be stored somewhere to retrieve it later to use in
-///          ReleaseRef.
-///
-/// @param  in_pBuffer
-///         [in] Pointer to the start of a buffer previously AddRef'd, that
-///         was passed in at the start of the run function.
-///
-/// @return COI_SUCCESS if the buffer refcount was successfully decremented.
-///
-/// @return COI_INVALID_POINTER if the buffer pointer was invalid.
-///
-/// @return COI_INVALID_HANDLE if the buffer did not have COIBufferAddRef()
-///         previously called on it.
-///
-COIRESULT
-COIBufferReleaseRef(
-    void           *in_pBuffer);
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIBUFFER_SINK_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/sink/COIPipeline_sink.h b/liboffloadmic/include/coi/sink/COIPipeline_sink.h
deleted file mode 100644 (file)
index 9cb1087..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIPIPELINE_SINK_H
-#define _COIPIPELINE_SINK_H
-
-/** @ingroup COIPipeline
- *  @addtogroup COIPipelineSink
-@{
-* @file sink/COIPipeline_sink.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __FreeBSD__
-    #define COINATIVELIBEXPORT_VISIBILITY "extern"
-#else
-    #define COINATIVELIBEXPORT_VISIBILITY "default"
-#endif
-
-#ifdef __cplusplus
-#define COINATIVELIBEXPORT \
-    extern "C" __attribute__ ((visibility(COINATIVELIBEXPORT_VISIBILITY)))
-#else
-#define COINATIVELIBEXPORT \
-    __attribute__ ((visibility(COINATIVELIBEXPORT_VISIBILITY)))
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// This is the prototype that run functions should follow.
-///
-/// @param   in_BufferCount
-///          The number of buffers passed to the run function.
-///
-/// @param   in_ppBufferPointers
-///          An array that is in_BufferCount in length that contains the
-///          sink side virtual addresses for each buffer passed in to
-///          the run function.
-///
-/// @param   in_pBufferLengths
-///          An array that is in_BufferCount in length of uint32_t integers
-///          describing the length of each passed in buffer in bytes.
-///
-/// @param   in_pMiscData
-///          Pointer to the MiscData passed in when the run function
-///          was enqueued on the source.
-///
-/// @param   in_MiscDataLen
-///          Length in bytes of the MiscData passed in when the run function
-///          was enqueued on the source.
-///
-/// @param   in_pReturnValue
-///          Pointer to the location where the return value from this run
-///          function will be stored.
-///
-/// @param   in_ReturnValueLength
-///          Length in bytes of the user-allocated ReturnValue pointer.
-///
-/// @return  A uint64_t that can be retrieved in the out_UserData parameter
-///          from the COIPipelineWaitForEvent function.
-///
-typedef void
-(*RunFunctionPtr_t)(
-    uint32_t        in_BufferCount,
-    void          **in_ppBufferPointers,
-    uint64_t       *in_pBufferLengths,
-    void           *in_pMiscData,
-    uint16_t        in_MiscDataLength,
-    void           *in_pReturnValue,
-    uint16_t        in_ReturnValueLength);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Start processing pipelines on the Sink. This should be done after any
-/// required initialization in the Sink's application has finished. No
-/// run functions will actually be executed (although they may be queued)
-/// until this function is called.
-///
-///
-/// @return COI_SUCCESS if the pipelines were successfully started.
-///
-COIRESULT
-COIPipelineStartExecutingRunFunctions();
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIPIPELINE_SINK_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/sink/COIProcess_sink.h b/liboffloadmic/include/coi/sink/COIProcess_sink.h
deleted file mode 100644 (file)
index 9438925..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIPROCESS_SINK_H
-#define _COIPROCESS_SINK_H
-
-/** @ingroup COIProcess
- *  @addtogroup COIProcessSink
-@{
-* @file sink/COIProcess_sink.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// This call will block while waiting for the source to send a process destroy
-/// message. This provides the sink side application with an event to keep the
-/// main() function from exiting until it is directed to by the source. When
-/// the shutdown message is received this function will stop any future run
-/// functions from executing but will wait for any current run functions to
-/// complete. All Intel® Coprocessor Offload Infrastructure (Intel® COI)
-/// resources will be cleaned up and no additional Intel® Coprocessor Offload
-/// Infrastructure (Intel® COI) APIs should be called after this function
-/// returns. This function does not invoke exit() so the application
-/// can perform any of its own cleanup once this call returns.
-///
-/// @return COI_SUCCESS once the process receives the shutdown message.
-///
-COIRESULT
-COIProcessWaitForShutdown();
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// This call will block until all stdout and stderr output has been proxied
-/// to and written by the source. This call guarantees that any output in a
-/// run function is transmitted to the source before the run function signals
-/// its completion event back to the source.
-///
-/// Note that having an additional thread printing forever while another
-/// calls COIProxyFlush may lead to a hang because the process will be forced
-/// to wait until all that output can be flushed to the source before returning
-/// from this call.
-///
-/// @return COI_SUCCESS once the proxy output has been flushed to and written
-///         written by the host. Note that Intel® Coprocessor Offload
-///         Infrastructure (Intel® COI) on the source writes to stdout and
-///         stderr, but does not flush this output.
-/// @return COI_SUCCESS if the process was created without enabling
-///         proxy IO this function.
-///
-COIRESULT
-COIProcessProxyFlush();
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Loads a shared library from host filesystem into the current sink
-/// process, akin to using dlopen() on a local process in Linux or
-/// LoadLibrary() in Windows.
-///
-/// @param  in_pFileName
-///         [in] The name of the shared library file on the source's file
-///         system that is being loaded. If the file name is not an absolute
-///         path, the file is searched for in the same manner as dependencies.
-///
-/// @param  in_pLibraryName
-///         [in] Name for the shared library. This optional parameter can
-///         be specified in case the dynamic library doesn't have an
-///         SO_NAME field. If specified, it will take precedence over
-///         the SO_NAME if it exists. If it is not specified then
-///         the library must have a valid SO_NAME field.
-///
-///@param   in_LibrarySearchPath
-///         [in] a path to locate dynamic libraries dependencies for the
-///         library being loaded. If not NULL, this path will override the
-///         environment variable SINK_LD_LIBRARY_PATH. If NULL it will use
-///         SINK_LD_LIBRARY_PATH to locate dependencies.
-///
-/// @param  in_Flags
-///         [in] Bitmask of the flags that will be passed in as the dlopen()
-///         "flag" parameter on the sink.
-///
-/// @param  out_pLibrary
-///         [out] If COI_SUCCESS or COI_ALREADY_EXISTS is returned, the handle
-///         that uniquely identifies the loaded library.
-///
-/// @return COI_SUCCESS if the library was successfully loaded.
-///
-/// @return COI_INVALID_POINTER if in_pFileName is NULL.
-///
-/// @return COI_DOES_NOT_EXIST if in_pFileName cannot be found.
-///
-/// @return COI_INVALID_FILE if the file is not a valid shared library.
-///
-/// @return COI_MISSING_DEPENDENCY if a dependent library is missing from
-///         either SINK_LD_LIBRARY_PATH or the in_LibrarySearchPath parameter.
-///
-/// @return COI_ARGUMENT_MISMATCH if the shared library is missing an SONAME
-///         and in_pLibraryName is NULL.
-///
-/// @return COI_UNDEFINED_SYMBOL if we are unable to load the library due to
-///         an undefined symbol.
-///
-/// @return COI_ALREADY_EXISTS if there is an existing COILIBRARY handle
-///         that identifies this library, and this COILIBRARY hasn't been
-///         unloaded yet.
-///
-/// @return COI_BINARY_AND_HARDWARE_MISMATCH if the target machine of the
-///         binary or any of its recursive dependencies does not match the
-///         engine associated with Process.
-///
-/// @return COI_NOT_INITIALIZED if setup of remote process on host is not
-///         completed yet.
-///
-COIRESULT
-COIProcessLoadSinkLibraryFromFile(
-    const   char               *in_pFileName,
-    const   char               *in_pLibraryName,
-    const   char               *in_LibrarySearchPath,
-    uint32_t            in_Flags,
-    COILIBRARY         *out_pLibrary);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIPROCESS_SINK_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/source/COIBuffer_source.h b/liboffloadmic/include/coi/source/COIBuffer_source.h
deleted file mode 100644 (file)
index b90d505..0000000
+++ /dev/null
@@ -1,1806 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIBUFFER_SOURCE_H
-#define _COIBUFFER_SOURCE_H
-
-/** @ingroup COIBuffer
- *  @addtogroup COIBufferSource
-@{
-
-* @file source\COIBuffer_source.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-    #include "../common/COITypes_common.h"
-    #include "../common/COIResult_common.h"
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-///////////////////////////////////////////////////////////////////////////////
-/// The valid buffer types that may be created using COIBufferCreate.
-/// Please see the COI_VALID_BUFFER_TYPES_AND_FLAGS matrix
-/// below which describes the valid combinations of buffer types and flags.
-///
-typedef enum COI_BUFFER_TYPE
-{
-    /// Normal buffers exist as a single physical buffer in either Source or
-    /// Sink physical memory. Mapping the buffer may stall the pipelines.
-    COI_BUFFER_NORMAL = 1,
-
-    // Reserved values, not used by COI any more
-    COI_BUFFER_RESERVED_1,
-    COI_BUFFER_RESERVED_2,
-    COI_BUFFER_RESERVED_3,
-
-    /// OpenCL buffers are similar to Normal buffers except they don't
-    /// stall pipelines and don't follow any read write dependencies.
-    COI_BUFFER_OPENCL
-
-} COI_BUFFER_TYPE;
-
-
-/// @name COIBUFFER creation flags.
-/// Please see the COI_VALID_BUFFER_TYPES_AND_FLAGS matrix
-/// below which describes the valid combinations of buffer types and flags.
-//@{
-
-/// Create the buffer such that it has the same virtual address on all of the
-/// sink processes with which it is associated.
-#define COI_SAME_ADDRESS_SINKS             0x00000001
-
-/// Create the buffer such that it has the same virtual address on all of the
-/// sink processes with which it is associated and in the source process.
-#define COI_SAME_ADDRESS_SINKS_AND_SOURCE  0x00000002
-
-/// Hint to the runtime that the source will frequently read the buffer
-#define COI_OPTIMIZE_SOURCE_READ           0x00000004
-
-/// Hint to the runtime that the source will frequently write the buffer
-#define COI_OPTIMIZE_SOURCE_WRITE          0x00000008
-
-/// Hint to the runtime that the sink will frequently read the buffer
-#define COI_OPTIMIZE_SINK_READ             0x00000010
-
-/// Hint to the runtime that the sink will frequently write the buffer
-#define COI_OPTIMIZE_SINK_WRITE            0x00000020
-
-/// Used to delay the pinning of memory into physical pages, until required
-/// for DMA. This can be used to delay the cost of time spent pinning memory
-/// until absolutely necessary. Might speed up the execution of COIBufferCreate
-/// calls, but slow down the first access of the buffer in
-/// COIPipelineRunFunction(s) or other COIBuffer access API's.
-/// Also of important note, that with this flag enabled COI will not be able to
-/// check to see if this memory is read only. Ordinarily this is checked
-/// and an error is thrown upon buffer creation. With this flag, the error
-/// might occur later, and cause undetermined behavior. Be sure to always
-/// use writable memory for COIBuffers.
-#define COI_OPTIMIZE_NO_DMA                0x00000040
-
-/// Hint to the runtime to try to use huge page sizes for backing store on the
-/// sink. Is currently not compatible with the SAME_ADDRESS
-/// flags or the SINK_MEMORY flag. It is important to note that this is a hint
-/// and internally the runtime may not actually promote to huge pages.
-/// Specifically if the buffer is too small (less than 4KiB for example) then
-/// the runtime will not promote the buffer to use huge pages.
-#define COI_OPTIMIZE_HUGE_PAGE_SIZE        0x00000080
-
-/// Used to tell Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// to create a buffer using memory that has already been
-/// allocated on the sink. This flag is only valid when passed in to the
-/// COIBufferCreateFromMemory API.
-#define COI_SINK_MEMORY                    0x00000100
-
-//@}
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// Make the flag mask
-#ifdef F
-#undef F
-#endif
-#define F 0
-#ifdef T
-#undef T
-#endif
-#define T 1
-#define MTM(_BUFFER, B1, B2, B3, B4, B5, B6, B7, B8, B9) \
-    (B1 | B2<<1 | B3<<2 | B4<<3 | B5<<4 | B6<<5 | B7<<6 | B8<<7 | B9<<8)
-#endif
-
-/// \enum COI_BUFFER_TYPE
-/// This matrix shows the valid combinations of buffer types and buffer flags
-/// that may be passed in to COIBufferCreate and COIBufferCreateFromMemory.
-/// \code
-static const uint64_t
-COI_VALID_BUFFER_TYPES_AND_FLAGS[COI_BUFFER_OPENCL + 1] =
-{
-    /*           |       | SAME |      |       |      |       |     |      |      |
-                 | SAME  | ADDR | OPT  | OPT   | OPT  | OPT   | OPT | HUGE | COI  |
-                 | ADDR  | SINK | SRC  | SRC   | SINK | SINK  | NO  | PAGE | SINK |
-                 | SINKS | SRC  | READ | WRITE | READ | WRITE | DMA | SIZE | MEM  |
-                 +-------+------+------+-------+------+-------+-----+------+-----*/
-    MTM(INVALID   ,   F   ,   F  ,   F  ,   F   ,   F  ,   F   ,  F  ,   F  ,  F),
-    MTM(NORMAL    ,   T   ,   T  ,   T  ,   T   ,   T  ,   T   ,  T  ,   T  ,  T),
-    MTM(RESERVED1 ,   F   ,   F  ,   F  ,   F   ,   F  ,   F   ,  F  ,   F  ,  F),
-    MTM(RESERVED2 ,   F   ,   F  ,   F  ,   F   ,   F  ,   F   ,  F  ,   F  ,  F),
-    MTM(RESERVED3 ,   F   ,   F  ,   F  ,   F   ,   F  ,   F   ,  F  ,   F  ,  F),
-    MTM(OPENCL    ,   T   ,   T  ,   T  ,   T   ,   T  ,   T   ,  T  ,   T  ,  F),
-};
-///\endcode
-#undef MTM
-
-//////////////////////////////////////////////////////////////////////////////
-/// These flags control how the buffer will be accessed on the source after
-/// it is mapped.
-/// Please see the COI_VALID_BUFFER_TYPES_AND_MAP matrix below for the
-/// valid buffer type and map operation combinations.
-typedef enum COI_MAP_TYPE
-{
-    /// Allows the application to read and write the contents of the buffer
-    /// after it is mapped.
-    COI_MAP_READ_WRITE = 1,
-
-    /// If this flag is set then the application must only read from the
-    /// buffer after it is mapped. If the application writes to the buffer
-    /// the contents will not be reflected back to the sink or stored for
-    /// the next time the buffer is mapped on the source.
-    /// This allows the runtime to make significant performance optimizations
-    /// in buffer handling.
-    COI_MAP_READ_ONLY,
-
-    /// Setting this flag means that the source will overwrite the entire
-    /// buffer once it is mapped. The app must not read from the buffer and
-    /// must not expect the contents of the buffer to be synchronized from
-    /// the sink side during the map operation.
-    /// This allows the runtime to make significant performance optimizations
-    /// in buffer handling.
-    COI_MAP_WRITE_ENTIRE_BUFFER
-} COI_MAP_TYPE;
-
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-// Make the flag mask
-#define MMM(_BUFFER, B1, B2, B3) \
-    {  F  , B1, B2, B3}
-#endif
-/// \enum COI_MAP_TYPE
-/// This matrix shows the valid combinations of buffer types and map
-/// operations that may be passed in to COIBufferMap.
-/// \code
-static const uint64_t
-COI_VALID_BUFFER_TYPES_AND_MAP
-[COI_BUFFER_OPENCL + 1][COI_MAP_WRITE_ENTIRE_BUFFER + 1] =
-{
-    /*                      | MAP   | MAP   | MAP   |
-                            | READ  | READ  | WRITE |
-                            | WRITE | ONLY  | ENTIRE|
-                            +-------+-------+-------+*/
-    MMM(INVALID             ,   F   ,   F   ,   F),
-    MMM(NORMAL              ,   T   ,   T   ,   T),
-    MMM(RESERVED1           ,   F   ,   F   ,   F),
-    MMM(RESERVED2           ,   F   ,   F   ,   F),
-    MMM(RESERVED3           ,   F   ,   F   ,   F),
-    MMM(OPENCL              ,   T   ,   T   ,   T),
-};
-///\endcode
-#undef MMM
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-#undef F
-#undef T
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-/// The valid copy operation types for the COIBufferWrite, COIBufferRead,
-/// and COIBufferCopy APIs.
-///
-typedef enum COI_COPY_TYPE
-{
-    /// The runtime can pick the best suitable way to copy the data.
-    COI_COPY_UNSPECIFIED = 0,
-
-    /// The runtime should use DMA to copy the data.
-    COI_COPY_USE_DMA,
-
-    /// The runtime should use a CPU copy to copy the data.
-    COI_COPY_USE_CPU,
-
-    /// Same as above, but forces moving entire buffer to target process in Ex
-    /// extended APIs, even if the full buffer is not written.
-    COI_COPY_UNSPECIFIED_MOVE_ENTIRE,
-
-    /// Same as above, but forces moving entire buffer to target process in Ex
-    /// extended APIs, even if the full buffer is not written.
-    COI_COPY_USE_DMA_MOVE_ENTIRE,
-
-    /// Same as above, but forces moving entire buffer to target process in Ex
-    /// extended APIs, even if the full buffer is not written.
-    COI_COPY_USE_CPU_MOVE_ENTIRE
-
-} COI_COPY_TYPE;
-
-
-//////////////////////////////////////////////////////////////////////////////
-/// The buffer states are used to indicate whether a buffer is available for
-/// access in a COIPROCESS. This is used with COIBufferSetState.
-///
-/// Rules on State Transition of the buffer:
-/// -. When a Buffer is created by default it is valid only on the source,
-///    except for buffers created with COI_SINK_MEMORY flag which are valid
-///    only on the sink where the memory lies when created.
-/// -. Apart from SetState following APIs also alters the state of the buffer
-///    internally:
-///
-///    - COIBufferMap alters state of buffer depending on the COI_MAP_TYPE.
-///      COI_MAP_READ_ONLY: Makes Valid on the Source. Doesn't affect the state
-///                         of the buffer on the other devices.
-///      COI_MAP_READ_WRITE: Makes it Valid only the Source and Invalid
-///                         everywhere else. OPENCL buffers are invalidated
-///                         only if it is not in use.
-///      COI_MAP_WRITE_ENTIRE_BUFFER: Makes it valid only on the Source. OPENCL
-///                         buffers are invalidated only if not in use.
-///
-///    - COIPipelineRunfunction alters the state of the buffer depending on the
-///      COI_ACCESS_FLAGS
-///      COI_SINK_READ: Makes it valid on the sink where RunFunction is being
-///                     issued. Doesn't affect the state of the buffer on other
-///                     devices.
-///      COI_SINK_WRITE: Makes it valid only on the sink where Runfunction is
-///                     being issued and invalid everywhere else. OPENCL
-///                     buffers are invalidated only if the buffer is not in
-///                     use.
-///      COI_SINK_WRITE_ENTIRE: Makes it valid only on the sink where
-///                     Runfunction is being issued and invalid everywhere else
-///                     OPENCL buffers are invalidated only if the buffer is
-///                     not in use.
-///
-///    - COIBufferWrite makes the buffer exclusively valid where the write
-///      happens. Write gives preference to Source over Sink. In other words
-///      if a buffer is valid on the Source and multiple Sinks, Write will
-///      happen on the Source and will Invalidate all other Sinks. If the
-///      buffer is valid on multiple Sinks ( and not on the Source) then
-///      Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-///      selects process handle with the lowest numerical value to do the
-///      exclusive write Again, OPENCL buffers are invalidated only if the
-///      buffer is not in use on that SINK/SOURCE.
-///
-///      The preference rule mentioned above holds true even for SetState API,
-///      when data needs to be moved from a valid location. The selection of
-///      valid location happens as stated above.
-///
-/// - It is possible to alter only parts of the buffer and change it state
-///   In other words it is possible for different parts of the buffer to have
-///   different states on different devices. A byte is the minimum size at
-///   which state can be maintained internally. Granularity level is completely
-///   determined by how the buffer gets fragmented.
-///
-/// Note: Buffer is considered 'in use' if is
-///         - Being used in RunFunction : In use on a Sink
-///         - Mapped: In use on a Source
-///         - AddRef'd: In use on Sink
-///
-
-//////////////////////////////////////////////////////////////////////////////
-/// The buffer states used with COIBufferSetState call to indicate the new
-/// state of the buffer on a given process
-///
-typedef enum
-{
-    COI_BUFFER_VALID = 0,      // Buffer is valid and up-to-date on the process
-    COI_BUFFER_INVALID ,       // Buffer is not valid, need valid data
-    COI_BUFFER_VALID_MAY_DROP, // Same as valid but will drop the content when
-    // evicted to avoid overwriting the shadow
-    // memory
-    COI_BUFFER_RESERVED        // Reserved for internal use
-} COI_BUFFER_STATE;
-///
-/// Note: A VALID_MAY_DROP declares a buffer's copy as secondary on a given
-/// process. This means that there needs to be at least one primary copy of the
-/// the buffer somewhere in order to mark the buffer as VALID_MAY_DROP on a
-/// process. In other words to make a buffer VALID_MAY_DROP on a given process
-/// it needs to be in COI_BUFFER_VALID state somewhere else. The operation gets
-/// ignored (or is a nop) if there is no primary copy of the buffer. The nature
-/// of this state to "drop the content" when evicted is a side effect of
-/// marking the buffer as secondary copy. So when a buffer marked
-/// VALID_MAY_DROP is evicted Intel(R) Coprocessor Offload Infrastructure
-/// (Intel(R) COI) doesn't back it up as it is assumed that
-/// there is a primary copy somewhere.
-
-//////////////////////////////////////////////////////////////////////////////
-/// The buffer move flags are used to indicate when a buffer should be moved
-/// when it's state is changed. This is used with COIBufferSetState.
-typedef enum
-{
-    COI_BUFFER_MOVE = 0,// Dirty data is moved if state change requires it
-    COI_BUFFER_NO_MOVE  // Change state without moving data
-} COI_BUFFER_MOVE_FLAG;
-
-// A process handle for COIBufferSetState call to indicate all the sink
-// processes where the given buffer is valid
-#define COI_SINK_OWNERS ((COIPROCESS)-2)
-
-// Matrix descriptors used with MultiD Read/Write
-typedef struct dim_desc
-{
-    int64_t size;       // Size of data type
-    int64_t lindex;     // Lower index, used in Fortran
-    int64_t lower;      // Lower section bound
-    int64_t upper;      // Upper section bound
-    int64_t stride;     // Stride, or number of bytes between the start
-    // of one element and start of next one divided
-    // by size.
-} dim_desc;
-
-typedef struct arr_desc
-{
-    int64_t base;       // Base address
-    int64_t rank;       // Rank of array, i.e. number of dimensions
-    dim_desc dim[3];    // This array has as many elements as 'rank'
-    // currently limited to 3.
-} arr_desc;
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Creates a buffer that can be used in RunFunctions that are queued in
-/// pipelines. The address space for the buffer is reserved when it is
-/// created although the memory may not be committed until the buffer is
-/// used for the first time. Please note that the Intel(R) Coprocessor Offload
-/// Infrastructure (Intel(R) COI) runtime may also allocate space for the
-/// source process to use as shadow memory for certain types of buffers.
-/// If Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// does allocate this memory it will not be released or reallocated
-/// until the COIBuffer is destroyed.
-///
-/// @param  in_Size
-///         [in] The number of bytes to allocate for the buffer. If in_Size
-///         is not page aligned, it will be rounded up.
-///
-/// @param  in_Type
-///         [in] The type of the buffer to create.
-///
-/// @param  in_Flags
-///         [in] A bitmask of attributes for the newly created buffer.
-///         Some of these flags are required for correctness while others
-///         are provided as hints to the runtime system so it can make
-///         certain performance optimizations.
-///
-/// @param  in_pInitData
-///         [in] If non-NULL the buffer will be initialized with the data
-///         pointed to by pInitData. The memory at in_pInitData must hold
-///         at least in_Size bytes.
-///
-/// @param  in_NumProcesses
-///         [in] The number of processes with which this buffer might be used.
-///
-/// @param  in_pProcesses
-///         [in] An array of COIPROCESS handles identifying the processes with
-///         which this buffer might be used.
-///
-/// @param  out_pBuffer
-///         [out] Pointer to a buffer handle. The handle will be filled in
-///         with a value that uniquely identifies the newly created buffer.
-///         This handle should be disposed of via COIBufferDestroy()
-///         once it is no longer needed.
-///
-/// @return COI_SUCCESS if the buffer was created
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_Type and in_Flags parameters
-///         are not compatible with one another. Please see the
-///         COI_VALID_BUFFER_TYPES_AND_FLAGS map above for information about
-///         which flags and types are compatible.
-///
-/// @return COI_OUT_OF_RANGE if in_Size is zero, if the bits set in
-///         the in_Flags parameter are not recognized flags, or if in_NumProcesses is zero.
-///
-/// @return COI_INVALID_POINTER if the in_pProcesses or out_pBuffer parameter
-///         is NULL.
-///
-/// @return COI_NOT_SUPPORTED if in_Type has invalid value or if
-///        one of the in_Flags is COI_SINK_MEMORY.
-///
-/// @return COI_NOT_SUPPORTED if the flags include either
-///         COI_SAME_ADDRESS_SINKS or COI_SAME_ADDRESS_SINKS_AND_SOURCE and
-///         COI_OPTIMIZE_HUGE_PAGE_SIZE.
-///
-/// @return COI_INVALID_HANDLE if one of the COIPROCESS handles in the
-///         in_pProcesses array does not identify a valid process.
-///
-/// @return COI_OUT_OF_MEMORY if allocating the buffer fails.
-///
-/// @return COI_RESOURCE_EXHAUSTED if the sink is out of buffer memory.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferCreate(
-    uint64_t            in_Size,
-    COI_BUFFER_TYPE     in_Type,
-    uint32_t            in_Flags,
-    const   void               *in_pInitData,
-    uint32_t            in_NumProcesses,
-    const   COIPROCESS         *in_pProcesses,
-    COIBUFFER          *out_pBuffer);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Creates a buffer from some existing memory that can be used in
-/// RunFunctions that are queued in pipelines. If the flag COI_SINK_MEMORY
-/// is specified then Intel(R) Coprocessor Offload
-/// Infrastructure (Intel(R) COI) will use that memory for the buffer on the sink.
-/// If that flag isn't set then the memory provided is used as backing store
-/// for the buffer on the source. In either case the memory must not be freed
-/// before the buffer is destroyed.
-/// While the user still owns the memory passed in they must use the
-/// appropriate access flags when accessing the buffer in COIPipelinRunFunction
-/// or COIBufferMap calls so that the runtime knows when the
-/// memory has been modified. If the user just writes directly to the memory
-/// location then those changes may not be visible when the corresponding
-/// buffer is accessed.
-/// Whatever values are already present in the memory location when this call
-/// is made are preserved. The memory values are also preserved when
-/// COIBufferDestroy is called.
-///
-/// @warning: Use of this function is highly discouraged if the calling
-/// program forks at all (including calls to system(3), popen(3), or similar
-/// functions) during the life of this buffer. See the discussion around the
-/// in_Memory parameter below regarding this.
-///
-/// @param  in_Size
-///         [in] The size of in_Memory in bytes. If in_Size
-///         is not page aligned, it will be rounded up.
-///
-/// @param  in_Type
-///         [in] The type of the buffer to create. Only COI_BUFFER_NORMAL
-///         buffer type is supported.
-///
-/// @param  in_Flags
-///         [in] A bitmask of attributes for the newly created buffer.
-///         Some of these flags are required for correctness while others
-///         are provided as hints to the runtime system so it can make
-///         certain performance optimizations. Note that the flag
-///         COI_SAME_ADDRESS_SINKS_AND_SOURCE is still valid but may fail
-///         if the same address as in_Memory cannot be allocated on the sink.
-///
-/// @param  in_Memory
-///         [in] A pointer to an already allocated memory region
-///         that should be turned into a COIBUFFER. Although the user still
-///         owns this memory they should not free it before calling
-///         COIBufferDestroy. They must also only access the memory using
-///         COIBUFFER semantics, for example using COIBufferMap/COIBufferUnmap
-///         when they wish to read or write the data. There are no alignment
-///         or size requirements for this memory region.
-///
-///         WARNING:
-///         Since the backing memory passed in can be the target of a DMA
-///         the caller must ensure that there is no call to clone(2) (without
-///         the CLONE_VM argument) during the life of this buffer. This
-///         includes higher level functions that call clone such as fork(2),
-///         system(3), popen(3), among others).
-///
-///         For forked processes, Linux uses copy-on-write semantics for
-///         performance reasons. Consequently, if the parent forks and then
-///         writes to this memory, the physical page mapping changes causing
-///         the DMA to fail (and thus data corruption).
-///
-///         In Linux you can mark a set of pages to not be copied across
-///         across the clone by calling madvise(2) with an argument of
-///         MADV_DONTFORK and then safely use that memory in this scenario.
-///         Alternately, if the memory is from a region marked MAP_SHARED,
-///         this will work.
-///
-/// @param  in_NumProcesses
-///         [in] The number of processes with which this buffer might be used.
-///         If the flag COI_SINK_MEMORY is specified then this must be 1.
-///
-/// @param  in_pProcesses
-///         [in] An array of COIPROCESS handles identifying the processes with
-///         which this buffer might be used.
-///
-/// @param  out_pBuffer
-///         [out] Pointer to a buffer handle. The handle will be filled in
-///         with a value that uniquely identifies the newly created buffer.
-///         This handle should be disposed of via COIBufferDestroy()
-///         once it is no longer needed.
-///
-/// @return COI_SUCCESS if the buffer was created
-///
-/// @return COI_NOT_SUPPORTED if the in_Type value is not COI_BUFFER_NORMAL,
-///         or COI_BUFFER_OPENCL.
-///
-/// @return COI_NOT_SUPPORTED if in_Memory is read-only memory
-///
-/// @return COI_NOT_SUPPORTED if one of the in_Flags is COI_SINK_MEMORY and
-///         in_Type is not COI_BUFFER_NORMAL
-///
-/// @return COI_NOT_SUPPORTED if the flag COI_SAME_ADDRESS_SINKS is set
-///
-/// @return COI_NOT_SUPPORTED if the flag COI_SAME_ADDRESS_SINKS_AND_SOURCE is
-///         set
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_Type and in_Flags parameters
-///         are not compatible with one another. Please see the
-///         COI_VALID_BUFFER_TYPES_AND_FLAGS map above for information about
-///         which flags and types are compatible.
-///
-/// @return COI_ARGUMENT_MISMATCH if the flag COI_SINK_MEMORY is specified and
-///         in_NumProcesses > 1.
-///
-/// @return COI_ARGUMENT_MISMATCH if the flags COI_SINK_MEMORY and
-///         COI_OPTIMIZE_HUGE_PAGE_SIZE are both set.
-///
-/// @return COI_OUT_OF_RANGE if in_Size is zero, if the bits set in
-///         the in_Flags parameter are not recognized flags,  or if in_NumProcesses is zero.
-///
-/// @return COI_INVALID_POINTER if in_Memory, in_pProcesses or
-///         out_pBuffer parameter is NULL.
-///
-/// @return COI_INVALID_HANDLE if one of the COIPROCESS handles in the
-///         in_pProcesses array does not identify a valid process.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferCreateFromMemory(
-    uint64_t            in_Size,
-    COI_BUFFER_TYPE     in_Type,
-    uint32_t            in_Flags,
-    void               *in_Memory,
-    uint32_t            in_NumProcesses,
-    const   COIPROCESS         *in_pProcesses,
-    COIBUFFER          *out_pBuffer);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Destroys a buffer. Will block on completion of any operations on the
-/// buffer, such as COIPipelineRunFunction or COIBufferCopy. Will block until
-/// all COIBufferAddRef calls have had a matching COIBufferReleaseRef call
-/// made. will not block on an outstanding COIBufferUnmap but will instead
-/// return COI_RETRY.
-///
-/// @param  in_Buffer
-///         [in] Handle of the buffer to destroy.
-///
-/// @return COI_SUCCESS if the buffer was destroyed.
-///
-/// @return COI_INVALID_HANDLE if the buffer handle was invalid.
-///
-/// @return COI_RETRY if the buffer is currently mapped. The buffer must
-///         first be unmapped before it can be destroyed.
-///
-/// @return COI_RETRY if the sub-buffers created from this buffer are not yet
-///         destroyed
-///
-COIACCESSAPI
-COIRESULT
-COIBufferDestroy(
-    COIBUFFER           in_Buffer);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// This call initiates a request to access a region of a buffer. Multiple
-/// overlapping (or non overlapping) regions can be mapped simultaneously for
-/// any given buffer. If a completion event is specified this call will
-/// queue a request for the data which will be satisfied when the buffer is
-/// available. Once all conditions are met the completion event will be
-/// signaled and the user can access the data at out_ppData. The user can call
-/// COIEventWait with out_pCompletion to find out when the map operation has
-/// completed. If the user accesses the data before the map operation is
-/// complete the results are undefined. If out_pCompletion is NULL then this
-/// call blocks until the map operation completes and when this call returns
-/// out_ppData can be safely accessed. This call returns a map instance handle
-/// in an out parameter which must be passed into COIBufferUnmap when the user
-/// no longer needs access to that region of the buffer.
-///
-/// The address returned from COIBufferMap may point to memory that
-/// Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// manages on behalf of the user. The user must not free or reallocate this
-/// memory, Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// will perform any necessary cleanup when the buffer is
-/// destroyed.
-///
-/// Note that different types of buffers behave differently when mapped.
-/// For instance, mapping a COI_BUFFER_NORMAL for write must stall if the
-/// buffer is currently being written to by a run function.
-/// The asynchronous operation of COIBufferMap will likely be most useful when
-/// paired with a COI_BUFFER_NORMAL.
-///
-/// @param  in_Buffer
-///         [in] Handle for the buffer to map.
-///
-/// @param  in_Offset
-///         [in] Offset into the buffer that a pointer should be returned
-///         for. The value 0 can be passed in to signify that the mapped
-///         region should start at the beginning of the buffer.
-///
-/// @param  in_Length
-///         [in] Length of the buffer area to map. This parameter, in
-///         combination with in_Offset, allows the caller to specify
-///         that only a subset of an entire buffer need be mapped. A
-///         value of 0 can be passed in only if in_Offset is 0, to signify
-///         that the mapped region is the entire buffer.
-///
-/// @param  in_Type
-///         [in] The access type that is needed by the application. This will
-///         affect how the data can be accessed once the map operation
-///         completes. See the COI_MAP_TYPE enum for more details.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the map
-///         call initiation to wait for any events to be signaled before
-///         starting the map operations.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this map operation will wait for before starting.
-///         This allows the user to create dependencies between asynchronous
-///         map calls and other operations such as run functions or other
-///         asynchronous map calls. The user may pass in NULL if they do not
-///         wish to wait for any dependencies to complete before initiating map
-///         operations.
-///
-/// @param  out_pCompletion
-///         [out] An optional pointer to a COIEVENT object
-///         that will be signaled when a map call with the passed in buffer
-///         would complete immediately, that is, the buffer memory has been
-///         allocated on the source and its contents updated. The user may pass
-///         in NULL if the user wants COIBufferMap to perform a blocking map
-///         operation.
-///
-/// @param  out_pMapInstance
-///         [out] A pointer to a COIMAPINSTANCE which represents this mapping
-///         of the buffer and must be passed in to COIBufferUnmap when access
-///         to this region of the buffer data is no longer needed.
-///
-/// @param  out_ppData
-///         [out] Pointer to the buffer data. The data will only be valid
-///         when the completion object is signaled, or for a synchronous
-///         map operation with the call to map returns.
-///
-///
-/// @return COI_SUCCESS if the map request succeeds.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset of (in_Offset + in_Length) exceeds
-///         the size of the buffer.
-///
-/// @return COI_OUT_OF_RANGE if in_Length is 0, but in_Offset is not 0.
-///
-/// @return COI_OUT_OF_RANGE if in_Type is not a valid COI_MAP_TYPE.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_NumDependencies is non-zero while
-///         in_pDependencies was passed in as NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is non-NULL but
-///         in_NumDependencies is zero.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_Type of map is not a valid type
-///         for in_Buffer's type of buffer.
-///
-/// @return COI_INVALID_HANDLE if in_Buffer is not a valid buffer handle.
-///
-/// @return COI_INVALID_POINTER if out_pMapInstance or out_ppData is NULL.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferMap(
-    COIBUFFER           in_Buffer,
-    uint64_t            in_Offset,
-    uint64_t            in_Length,
-    COI_MAP_TYPE        in_Type,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion,
-    COIMAPINSTANCE     *out_pMapInstance,
-    void              **out_ppData);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Disables Source access to the region of the buffer that was provided
-/// through the corresponding call to COIBufferMap. The number of calls to
-/// COIBufferUnmap() should always match the number of calls made to
-/// COIBufferMap(). The data pointer returned from the COIBufferMap() call
-/// will be invalid after this call.
-///
-/// @param  in_MapInstance
-///         [in] buffer map instance handle to unmap.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the unmap call to
-///         wait for any events to be signaled before performing the unmap
-///         operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this unmap operation will wait for before starting.
-///         This allows the user to create dependencies between asynchronous
-///         unmap calls and other operations such as run functions or other
-///         asynchronous unmap calls. The user may pass in NULL if they do not
-///         wish to wait for any dependencies to complete before initiating
-///         unmap operations.
-///
-/// @param  out_pCompletion
-///         [out] An optional pointer to a COIEVENT object that will be
-///         signaled when the unmap is complete. The user may pass in NULL if
-///         the user wants COIBufferUnmap to perform a blocking unmap
-///         operation.
-///
-/// @return COI_SUCCESS upon successful unmapping of the buffer instance.
-///
-/// @return COI_INVALID_HANDLE if the passed in map instance handle was NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferUnmap(
-    COIMAPINSTANCE      in_MapInstance,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Gets the Sink's virtual address of the buffer for the first process
-/// that is using the buffer. This is the same address
-/// that is passed to the run function on the Sink. The virtual
-/// address assigned to the buffer for use on the sink is fixed;
-/// the buffer will always be present at that virtual address on the sink
-/// and will not get a different virtual address across different
-/// RunFunctions.
-/// This address is only valid on the Sink and should not be dereferenced on
-/// the Source (except for the special case of buffers created with the
-/// COI_SAME_ADDRESS flag).
-///
-/// @param  in_Buffer
-///         [in] Buffer handle
-///
-/// @param  out_pAddress
-///         [out] pointer to a uint64_t* that will be filled with the address.
-///
-/// @return COI_SUCCESS upon successful return of the buffer's address.
-///
-/// @return COI_INVALID_HANDLE if the passed in buffer handle was invalid.
-///
-/// @return COI_INVALID_POINTER if the out_pAddress parameter was invalid.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferGetSinkAddress(
-    COIBUFFER           in_Buffer,
-    uint64_t           *out_pAddress);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Gets the Sink's virtual address of the buffer. This is the same
-/// address that is passed to the run function on the Sink. The virtual
-/// address assigned to the buffer for use on the sink is fixed;
-/// the buffer will always be present at that virtual address on the sink
-/// and will not get a different virtual address across different
-/// RunFunctions.
-/// This address is only valid on the Sink and should not be dereferenced on
-/// the Source (except for the special case of buffers created with the
-/// COI_SAME_ADDRESS flag).
-///
-/// @param  in_Process
-///         [in] The process for which the address should be returned.
-///         Special handle value 0 can be passed to the function;
-///         in this case, address for the first valid process will be returned
-///
-/// @param  in_Buffer
-///         [in] Buffer handle
-///
-/// @param  out_pAddress
-///         [out] pointer to a uint64_t* that will be filled with the address.
-///
-/// @return COI_SUCCESS upon successful return of the buffer's address.
-///
-/// @return COI_INVALID_HANDLE if the passed in buffer or process
-///         handle was invalid.
-///
-/// @return COI_INVALID_POINTER if the out_pAddress parameter was invalid.
-///
-/// @return COI_OUT_OF_RANGE if the in_Process is not valid for in_Buffer at the
-///         moment of calling the function.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferGetSinkAddressEx(
-    COIPROCESS          in_Process,
-    COIBUFFER           in_Buffer,
-    uint64_t           *out_pAddress);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data from a normal virtual address into an existing COIBUFFER.
-/// Please note that COIBufferWrite does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferWrite will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-///
-/// @param  in_DestBuffer
-///         [in] Buffer to write into.
-///
-/// @param  in_DestProcess
-///         [in] A pointer to the process to which the data will be written.
-///         Buffer is updated only in this process and invalidated in other
-///         processes. Only a single process can be specified.
-///         Can be left NULL and default behavior will be chosen, which
-///         chooses the first valid process in which regions are found. Other
-///         buffer regions are invalidated if not updated.
-///
-/// @param  in_Offset
-///         [in] Location in the buffer to start writing to.
-///
-/// @param  in_pSourceData
-///         [in] A pointer to local memory that should be copied into the
-///         provided buffer.
-///
-/// @param  in_Length
-///         [in] The number of bytes to write from in_pSourceData into
-///         in_DestBuffer. Must not be larger than the size of in_DestBuffer
-///         and must not over run in_DestBuffer if an in_Offset is provided.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the write call to
-///         wait for any additional events to be signaled before starting the
-///         write operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this write operation will wait for before starting.
-///         This allows the user to create dependencies between buffer write
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the write.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the write has
-///         completed. This event can be used as a dependency to order
-///         the write with regard to future operations.
-///         If no completion event is passed in then the write is
-///         synchronous and will block until the transfer is complete.
-///
-///
-/// @return COI_SUCCESS if the buffer was written successfully.
-///
-/// @return COI_INVALID_HANDLE if the buffer handle was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset is beyond the end of the buffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_INVALID_POINTER if the in_pSourceData pointer is NULL.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset + in_Length exceeds the size of
-///         the buffer.
-///
-/// @return COI_OUT_OF_RANGE if in_Length is 0.
-///
-/// @return COI_RETRY if in_DestBuffer is mapped and is not COI_BUFFER_OPENCL
-///         buffer.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferWriteEx(
-    COIBUFFER           in_DestBuffer,
-    const   COIPROCESS          in_DestProcess,
-    uint64_t            in_Offset,
-    const   void               *in_pSourceData,
-    uint64_t            in_Length,
-    COI_COPY_TYPE       in_Type,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data specified by multi-dimensional array data structure into another
-/// multi-dimensional array in an existing COIBUFFER.
-/// Arrays with more than 3 dimensions are not supported.
-/// Different numbers of elements between src and destination is not supported.
-/// Please note that COIBufferWriteMultiD does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferWriteMultiD will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-///
-///
-/// @param  in_DestBuffer
-///         [in] Buffer to write into.
-///
-/// @param  in_DestProcess
-///         [in] A pointer to the process to which the data will be written.
-///         Buffer is updated only in this process and invalidated in other
-///         processes. Only a single process can be specified.
-///         Can be left NULL and default behavior will be chosen, which
-///         chooses the first valid process in which regions are found. Other
-///         buffer regions are invalidated if not updated.
-///
-/// @param  in_Offset
-///         [in] Start location of the destination array within the buffer.
-///
-/// @param  in_DestArray
-///         [in] A pointer to a data structure describing the structure of
-///         the data array in the buffer. Total size must not be larger than
-///         the size of in_DestBuffer. The base field of this structure will
-///         be ignored.
-///
-/// @param  in_SrcArray
-///         [in] A pointer to a data structure describing the structure of
-///         the data array in local memory that should be copied. in_SrcArray
-///         and in_DestArry must have the same number of elements. The base
-///         field of this structure should be the virtual pointer to the local
-///         memory in which this array is located.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the write call to
-///         wait for any additional events to be signaled before starting the
-///         write operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this write operation will wait for before starting.
-///         This allows the user to create dependencies between buffer write
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the write.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the write has
-///         completed. This event can be used as a dependency to order
-///         the write with regard to future operations.
-///         If no completion event is passed in then the write is
-///         synchronous and will block until the transfer is complete.
-///
-///
-/// @return COI_SUCCESS if the buffer was copied successfully.
-///
-/// @return COI_INVALID_HANDLE if the buffer or process handle was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset is beyond the end of the buffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_NOT_SUPPORTED or dimension of destination or source arrays
-///         are greater than 3 or less than 1
-///
-/// @return COI_INVALID_POINTER if the pointer in_SrcArray->base is NULL.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset + size of in_DestArray exceeds the
-///         size of the buffer.
-///
-/// @return COI_OUT_OF_MEMORY if any allocation of memory fails
-///
-/// @return COI_RETRY if in_DestBuffer is mapped and is not
-///         a COI_BUFFER_OPENCL buffer.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferWriteMultiD(
-    COIBUFFER          in_DestBuffer,
-    const   COIPROCESS         in_DestProcess,
-    uint64_t           in_Offset,
-    struct arr_desc   *in_DestArray,
-    struct arr_desc   *in_SrcArray,
-    COI_COPY_TYPE      in_Type,
-    uint32_t           in_NumDependencies,
-    const   COIEVENT          *in_pDependencies,
-    COIEVENT          *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data specified by multi-dimensional array data structure from an
-/// existing COIBUFFER to another multi-dimensional array located in memory.
-/// Arrays with more than 3 dimensions are not supported.
-/// Different numbers of elements between source and destination are not supported.
-/// Please note that COIBufferReadMultiD does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferReadMultiD will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-///
-///
-/// @param  in_SourceBuffer
-///         [in] Buffer to read from.
-///
-/// @param  in_Offset
-///         [in] Start location of the source array within the buffer.
-///
-/// @param  in_DestArray
-///         [in] A pointer to a data structure describing the structure of
-///         the data array in the buffer. Total size must not be larger than
-///         the size of in_DestBuffer. The base field of this structure will
-///         be ignored.
-///
-/// @param  in_SrcArray
-///         [in] A pointer to a data structure describing the structure of
-///         the data array in local memory that should be copied. in_SrcArray
-///         and in_DestArry must have the same number of elements. The base
-///         field of this structure should be the virtual pointer to the local
-///         memory in which this array is located.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the write call to
-///         wait for any additional events to be signaled before starting the
-///         write operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this write operation will wait for before starting.
-///         This allows the user to create dependencies between buffer write
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the write.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the write has
-///         completed. This event can be used as a dependency to order
-///         the write with regard to future operations.
-///         If no completion event is passed in then the write is
-///         synchronous and will block until the transfer is complete.
-///
-///
-/// @return COI_SUCCESS if the buffer was written successfully.
-///
-/// @return COI_INVALID_HANDLE if the buffer or process handle was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset is beyond the end of the buffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_NOT_SUPPORTED or dimension of destination or source arrays
-///         are greater than 3 or less than 1
-///
-/// @return COI_INVALID_POINTER if the pointer in_DestArray->base is NULL.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset + size of in_SourceArray exceeds the
-///         size of the buffer.
-///
-/// @return COI_OUT_OF_MEMORY if any allocation of memory fails
-///
-/// @return COI_RETRY if in_SourceBuffer is mapped and is not
-///         a COI_BUFFER_OPENCL buffer.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferReadMultiD(
-    COIBUFFER          in_SourceBuffer,
-    uint64_t           in_Offset,
-    struct arr_desc   *in_DestArray,
-    struct arr_desc   *in_SrcArray,
-    COI_COPY_TYPE      in_Type,
-    uint32_t           in_NumDependencies,
-    const   COIEVENT          *in_pDependencies,
-    COIEVENT          *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data from a normal virtual address into an existing COIBUFFER.
-/// Please note that COIBufferWrite does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferWrite will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-///
-/// @param  in_DestBuffer
-///         [in] Buffer to write into.
-///
-/// @param  in_Offset
-///         [in] Location in the buffer to start writing to.
-///
-/// @param  in_pSourceData
-///         [in] A pointer to local memory that should be copied into the
-///         provided buffer.
-///
-/// @param  in_Length
-///         [in] The number of bytes to write from in_pSourceData into
-///         in_DestBuffer. Must not be larger than the size of in_DestBuffer
-///         and must not over run in_DestBuffer if an in_Offset is provided.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the write call to
-///         wait for any additional events to be signaled before starting the
-///         write operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this write operation will wait for before starting.
-///         This allows the user to create dependencies between buffer write
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the write.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the write has
-///         completed. This event can be used as a dependency to order
-///         the write with regard to future operations.
-///         If no completion event is passed in then the write is
-///         synchronous and will block until the transfer is complete.
-///
-///
-/// @return COI_SUCCESS if the buffer was copied successfully.
-///
-/// @return COI_INVALID_HANDLE if the buffer handle was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset is beyond the end of the buffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_INVALID_POINTER if the in_pSourceData pointer is NULL.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset + in_Length exceeds the size of
-///         the buffer.
-///
-/// @return COI_OUT_OF_RANGE if in_Length is 0.
-///
-/// @return COI_RETRY if in_DestBuffer is mapped and is not
-///         a COI_BUFFER_OPENCL buffer.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferWrite(
-    COIBUFFER           in_DestBuffer,
-    uint64_t            in_Offset,
-    const   void               *in_pSourceData,
-    uint64_t            in_Length,
-    COI_COPY_TYPE       in_Type,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data from a buffer into local memory.
-/// Please note that COIBufferRead does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferRead will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-///
-///
-/// @param  in_SourceBuffer
-///         [in] Buffer to read from.
-///
-/// @param  in_Offset
-///         [in] Location in the buffer to start reading from.
-///
-/// @param  in_pDestData
-///         [in] A pointer to local memory that should be written into from
-///         the provided buffer.
-///
-/// @param  in_Length
-///         [in] The number of bytes to write from in_SourceBuffer into
-///         in_pDestData. Must not be larger than the size of in_SourceBuffer
-///         and must not over run in_SourceBuffer if an in_Offset is provided.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the read call to
-///         wait for any additional events to be signaled before starting the
-///         read operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this read operation will wait for before starting.
-///         This allows the user to create dependencies between buffer read
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the read.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the read has
-///         completed. This event can be used as a dependency to order
-///         the read with regard to future operations.
-///         If no completion event is passed in then the read is
-///         synchronous and will block until the transfer is complete.
-///
-/// @return COI_SUCCESS if the buffer was copied successfully.
-///
-/// @return COI_INVALID_HANDLE if the buffer handle was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset is beyond the end of the buffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_OUT_OF_RANGE if in_Offset + in_Length exceeds the size of
-///         the buffer.
-///
-/// @return COI_OUT_OF_RANGE if in_Length is 0.
-///
-/// @return COI_INVALID_POINTER if the in_pDestData pointer is NULL.
-///
-/// @return COI_RETRY if in_SourceBuffer is mapped and is not
-///         a COI_BUFFER_OPENCL buffer.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferRead(
-    COIBUFFER           in_SourceBuffer,
-    uint64_t            in_Offset,
-    void               *in_pDestData,
-    uint64_t            in_Length,
-    COI_COPY_TYPE       in_Type,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data between two buffers. It also allows copying within the same
-/// buffer. For copy within the same buffer, if source and destination regions
-/// overlap then this API returns error.
-/// Please note that COIBufferCopy does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferCopy will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-/// When a destroyed buffer (destination or source) is provided to the
-/// function, then behavior is unspecified.
-///
-/// @param  in_DestBuffer
-///         [in] Buffer to copy into.
-///
-/// @param  in_DestProcess
-///         [in] A pointer to the process to which the data will be written.
-///         Buffer is updated only in this process and invalidated in other
-///         processes. Only a single process can be specified.
-///         Can be left NULL and default behavior will be chosen, which
-///         chooses the first valid process in which regions are found. Other
-///         buffer regions are invalidated if not updated.
-///
-/// @param  in_SourceBuffer
-///         [in] Buffer to copy from.
-///
-/// @param  in_DestOffset
-///         [in] Location in the destination buffer to start writing to.
-///
-/// @param  in_SourceOffset
-///         [in] Location in the source buffer to start reading from.
-///
-/// @param  in_Length
-///         [in] The number of bytes to copy from in_SourceBuffer into
-///         in_DestinationBuffer.
-///         If the length is specified as zero then length to be copied
-//          is entire destination buffer's length.
-///         Must not be larger than the size of in_SourceBuffer or
-///         in_DestBuffer and must not over run in_SourceBuffer or
-///         in_DestBuffer if offsets are specified.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the copy call to
-///         wait for any additional events to be signaled before starting the
-///         copy operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this copy operation will wait for before starting.
-///         This allows the user to create dependencies between buffer copy
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the copy.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the copy has
-///         completed. This event can be used as a dependency to order
-///         the copy with regard to future operations.
-///         If no completion event is passed in then the copy is
-///         synchronous and will block until the transfer is complete.
-///
-/// @return COI_SUCCESS if the buffer was copied successfully.
-///
-/// @return COI_INVALID_HANDLE if either buffer handle was invalid.
-///
-/// @return COI_MEMORY_OVERLAP if in_SourceBuffer and in_DestBuffer are the
-///         same buffer(or have the same parent buffer) and the source and
-///         destination regions overlap
-///
-/// @return COI_OUT_OF_RANGE if in_DestOffset is is beyond the end of
-///         in_DestBuffer
-///
-/// @return COI_OUT_OF_RANGE if in_SourceOffset is beyond the end of
-///         in_SourceBuffer.
-///
-/// @return COI_OUT_OF_RANGE if in_DestOffset + in_Length exceeds the size of
-///         the in_DestBuffer
-///
-/// @return COI_OUT_OF_RANGE if in_SourceOffset + in_Length exceeds
-///         the size of in_SourceBuffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_RETRY if in_DestBuffer or in_SourceBuffer are mapped and not
-///         COI_BUFFER_OPENCL buffers.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferCopyEx(
-    COIBUFFER           in_DestBuffer,
-    const   COIPROCESS          in_DestProcess,
-    COIBUFFER           in_SourceBuffer,
-    uint64_t            in_DestOffset,
-    uint64_t            in_SourceOffset,
-    uint64_t            in_Length,
-    COI_COPY_TYPE       in_Type,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Copy data between two buffers. It also allows copying within the same
-/// buffer. For copy within the same buffer, if source and destination regions
-/// overlap then this API returns error.
-/// Please note that COIBufferCopy does not follow implicit buffer
-/// dependencies. If a buffer is in use in a run function or has been added
-/// to a process using COIBufferAddRef the call to COIBufferCopy will not
-/// wait, it will still copy data immediately.
-/// This is to facilitate a usage model where a buffer is being used outside
-/// of a run function, for example in a spawned thread, but data still needs
-/// to be transferred to or from the buffer.
-/// Additionally this means that if more than one DMA channel is enabled,
-/// (See COIProcessConfigureDMA) operations to the same buffer may
-/// happen in parallel if they can be assigned to different DMA hardware.
-/// So it is highly recommended to use explicit event dependencies to
-/// order operations where needed.
-/// When a destroyed buffer (destination or source) is provided to the
-/// function, then behavior is unspecified.
-///
-/// @param  in_DestBuffer
-///         [in] Buffer to copy into.
-///
-/// @param  in_SourceBuffer
-///         [in] Buffer to copy from.
-///
-/// @param  in_DestOffset
-///         [in] Location in the destination buffer to start writing to.
-///
-/// @param  in_SourceOffset
-///         [in] Location in the source buffer to start reading from.
-///
-/// @param  in_Length
-///         [in] The number of bytes to copy from in_SourceBuffer into
-///         in_DestinationBuffer.
-///         If the length is specified as zero then length to be copied
-///         is entire destination buffer's length.
-///         Must not be larger than the size of in_SourceBuffer or
-///         in_DestBuffer and must not over run in_SourceBuffer or
-///         in_DestBuffer if offsets are specified.
-///
-/// @param  in_Type
-///         [in] The type of copy operation to use, one of either
-///         COI_COPY_UNSPECIFIED, COI_COPY_USE_DMA, COI_COPY_USE_CPU.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the copy call to
-///         wait for any additional events to be signaled before starting the
-///         copy operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this copy operation will wait for before starting.
-///         This allows the user to create dependencies between buffer copy
-///         calls and other operations such as run functions and map calls. The
-///         user may pass in NULL if they do not wish to wait for any
-///         additional dependencies to complete before doing the copy.
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the copy has
-///         completed. This event can be used as a dependency to order
-///         the copy with regard to future operations.
-///         If no completion event is passed in then the copy is
-///         synchronous and will block until the transfer is complete.
-///
-/// @return COI_SUCCESS if the buffer was copied successfully.
-///
-/// @return COI_INVALID_HANDLE if either buffer handle was invalid.
-///
-/// @return COI_MEMORY_OVERLAP if in_SourceBuffer and in_DestBuffer are the
-///         same buffer(or have the same parent buffer) and the source and
-///         destination regions overlap
-///
-/// @return COI_OUT_OF_RANGE if in_DestOffset is is beyond the end of
-///         in_DestBuffer
-///
-/// @return COI_OUT_OF_RANGE if in_SourceOffset is beyond the end of
-///         in_SourceBuffer.
-///
-/// @return COI_OUT_OF_RANGE if in_DestOffset + in_Length exceeds the size of
-///         the in_DestBuffer
-///
-/// @return COI_OUT_OF_RANGE if in_SourceOffset + in_Length exceeds
-///         the size of in_SourceBuffer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_pDependencies is non NULL but
-///         in_NumDependencies is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is NULL but
-///         in_NumDependencies is not 0.
-///
-/// @return COI_RETRY if in_DestBuffer or in_SourceBuffer are mapped and not
-///         COI_BUFFER_OPENCL buffers.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferCopy(
-    COIBUFFER           in_DestBuffer,
-    COIBUFFER           in_SourceBuffer,
-    uint64_t            in_DestOffset,
-    uint64_t            in_SourceOffset,
-    uint64_t            in_Length,
-    COI_COPY_TYPE       in_Type,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// This API allows an experienced Intel(R) Coprocessor Offload Infrastructure
-/// (Intel(R) COI) developer to set where a COIBUFFER is
-/// located and when the COIBUFFER's data is moved. This functionality is
-/// useful when the developer knows when and where a buffer is going to be
-/// accessed. It allows the data movement to happen sooner than if the
-/// Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// runtime tried to manage the buffer placement itself. The advantage of
-/// this API is that the developer knows much more about their own
-/// application's data access patterns and can therefore optimize the data
-/// access to be much more efficient than the Intel(R)Coprocessor Offload
-/// Infrastructure (Intel(R) COI) runtime. Using this API may yield better
-/// memory utilization, lower latency and overall improved workload
-/// throughput.
-/// This API does respect implicit dependencies for buffer read/write hazards.
-/// For example, if the buffer is being written in one COIPROCESS and the user
-/// requests the buffer be placed in another COIPROCESS then this API will wait
-/// for the first access to complete before moving the buffer.
-/// This API is not required for program correctness. It is intended solely
-/// for advanced Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// developers who wish to fine tune their application performance
-/// Cases where "a change in state" is an error condition the change just gets
-/// ignored without any error. This is because the SetState can be a
-/// nonblocking call and in such cases we can't rely on the state of the buffer
-/// at the time of the call. We can do the transition checks only at the time
-/// when the actual state change happens (which is something in future).
-/// Currently there is no way to report an error from something that happens in
-/// future and that is why such state transitions are nop. One example is using
-/// VALID_MAY_DROP with COI_SINK_OWNERS when buffer is not valid at source.
-/// This operation will be a nop if at the time of actual state change the
-/// buffer is not valid at source.
-///
-/// @param  in_Buffer
-///         [in] The buffer to modify.
-///
-/// @param  in_Process
-///         [in] The process where the state is being modified for this
-///         buffer. To modify buffer's state on source process use
-///         COI_PROCESS_SOURCE as process handle. To modify buffer's
-///         state on all processes where buffer is valid use COI_SINK_OWNERS
-///         as the process handle.
-///
-/// @param  in_State
-///         [in] The new state for the buffer. The buffer's state could be
-///         set to invalid on one of the sink processes where it is being
-///         used.
-///
-/// @param  in_DataMove
-///         [in] A flag to indicate if the buffer's data should be moved
-///         when the state is changed. For instance, a buffer's state may
-///         be set to valid on a process and the data move flag may be set to
-///         COI_BUFFER_MOVE which would cause the buffer contents to be
-///         copied to the process where it is now valid.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the SetState call
-///         to wait for any additional events to be signaled before starting
-///         this operation.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this SetState operation will wait for before starting
-///         This allows the user to create dependencies between buffer
-///         SetState calls and other operations such as run functions and map
-///         calls. The user may pass in NULL if they do not wish to wait for
-///         any additional dependencies to complete before doing the SetState
-///
-/// @param  out_pCompletion
-///         [out] An optional event to be signaled when the SetState has
-///         completed. This event can be used as a dependency to order
-///         the SetState with regard to future operations.
-///         If no completion event is passed in then the state changing is
-///         synchronous and will block until the SetState and dma transfers
-///         related to this operation are complete.
-///
-/// @return COI_SUCCESS if the buffer's state was changed successfully.
-///
-/// @return COI_INVALID_HANDLE if in_Buffer or in_Process is invalid.
-///
-/// @return COI_NOT_SUPPORTED if the in_Buffer is of any type other than
-///         COI_BUFFER_NORMAL or COI_BUFFER_OPENCL.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_State is COI_BUFFER_VALID_MAY_DROP
-///         and the in_Process is COI_PROCESS_SOURCE.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_Process is COI_SINK_OWNERS and the
-///         COI_BUFFER_MOVE is passed as move flag.
-///
-/// @return COI_MISSING_DEPENDENCY if buffer was not created on the process
-///         handle that was passed in.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferSetState(
-    COIBUFFER               in_Buffer,
-    COIPROCESS              in_Process,
-    COI_BUFFER_STATE        in_State,
-    COI_BUFFER_MOVE_FLAG    in_DataMove,
-    uint32_t                in_NumDependencies,
-    const   COIEVENT               *in_pDependencies,
-    COIEVENT               *out_pCompletion);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Creates a sub-buffer that is a reference to a portion of an existing
-/// buffer. The returned buffer handle can be used in all API calls that the
-/// original buffer handle could be used in except COIBufferCreateSubBuffer.
-/// Sub buffers out of Huge Page Buffer are also supported but the original
-/// buffer needs to be a OPENCL buffer created with COI_OPTIMIZE_HUGE_PAGE_SIZE
-/// flag.
-///
-/// When the sub-buffer is used only the corresponding sub-section of the
-/// original buffer is used or affected.
-///
-/// @param  in_Buffer
-///         [in] The original buffer that this new sub-buffer is a reference
-///         to.
-///
-/// @param  in_Length
-///         [in] The length of the sub-buffer in number of bytes.
-///
-/// @param  in_Offset
-///         [in] Where in the original buffer to start this sub-buffer.
-///
-/// @param  out_pSubBuffer
-///         [out] Pointer to a buffer handle that is filled in with the newly
-///         created sub-buffer.
-///
-/// @return COI_SUCCESS if the sub-buffer was created
-///
-/// @return COI_INVALID_HANDLE if in_Buffer is not a valid buffer handle.
-///
-/// @return COI_OUT_OF_RANGE if in_Length is zero, or if in_Offset + in_Length
-///         is greater than the size of the original buffer.
-///
-/// @return COI_OUT_OF_MEMORY if allocating the buffer fails.
-///
-/// @return COI_INVALID_POINTER if the out_pSubBuffer pointer is NULL.
-///
-/// @return COI_NOT_SUPPORTED if the in_Buffer is of any type other than
-///         COI_BUFFER_OPENCL
-///
-COIACCESSAPI
-COIRESULT
-COIBufferCreateSubBuffer(
-    COIBUFFER   in_Buffer,
-    uint64_t    in_Length,
-    uint64_t    in_Offset,
-    COIBUFFER  *out_pSubBuffer);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Releases the reference count on the specified buffer and process by
-/// in_ReleaseRefcnt. The returned result being COI_SUCCESS indicates that the
-/// specified process contains a reference to the specified buffer that has a
-/// refcnt that can be decremented. Otherwise, if the buffer or process
-/// specified do not exist, then COI_INVALID_HANDLE will be returned. If the
-/// process does not contain a reference to the specified buffer then
-/// COI_OUT_OF_RANGE will be returned.
-///
-///
-/// @param  in_Process
-///         [in] The COI Process whose reference count for the specified buffer
-///         the user wants to decrement.
-///
-/// @param  in_Buffer
-///         [in] The buffer used in the specified coi process in which the user
-///         wants to decrement the reference count.
-///
-/// @param  in_ReleaseRefcnt
-///         [in] The value the reference count will be decremented by.
-///
-/// @return COI_SUCCESS if the reference count was successfully decremented.
-///
-/// @return COI_INVALID_HANDLE if in_Buffer or in_Process are invalid handles.
-///
-/// @return COI_OUT_OF_RANGE if the reference for the specified buffer or
-///         process does not exist.
-///
-
-COIACCESSAPI
-COIRESULT
-COIBufferReleaseRefcnt(
-    COIPROCESS          in_Process,
-    COIBUFFER           in_Buffer,
-    uint64_t            in_ReleaseRefcnt);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Increments the reference count on the specified buffer and process by
-/// in_AddRefcnt. The returned result being COI_SUCCESS indicates that the
-/// specified process contains a reference to the specified buffer or a new
-/// reference has been created and that reference has a new refcnt. Otherwise,
-/// if the buffer or process specified do not exist, then COI_INVALID_HANDLE
-/// will be returned. If the input buffer is not valid on the target process
-/// then COI_NOT_INITIALIZED will be returned since the buffer is not current
-/// or allocated on the process.
-///
-/// @param  in_Process
-///         [in] The COI Process whose reference count for the specified buffer
-///         the user wants to increment.
-///
-/// @param  in_Buffer
-///         [in] The buffer used in the specified coi process in which the user
-///         wants to increment the reference count.
-///
-/// @param  in_AddRefcnt
-///         [in] The value the reference count will be incremented by.
-///
-/// @return COI_SUCCESS if the reference count was successfully incremented.
-///
-/// @return COI_INVALID_HANDLE if in_Buffer or in_Process are invalid handles.
-///
-/// @return COI_NOT_INITIALIZED if in_Buffer does not have a buffer state of
-///         COI_BUFFER_VALID on the in_Process.
-///
-COIACCESSAPI
-COIRESULT
-COIBufferAddRefcnt(
-    COIPROCESS          in_Process,
-    COIBUFFER           in_Buffer,
-    uint64_t            in_AddRefcnt);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIBUFFER_SOURCE_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/source/COIEngine_source.h b/liboffloadmic/include/coi/source/COIEngine_source.h
deleted file mode 100644 (file)
index d4f6c1b..0000000
+++ /dev/null
@@ -1,273 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIENGINE_SOURCE_H
-#define _COIENGINE_SOURCE_H
-
-/** @ingroup COIEngine
- *  @addtogroup COIEngineSource
-@{
-
-* @file source\COIEngine_source.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-    #include <wchar.h>
-    #include "../common/COITypes_common.h"
-    #include "../common/COIResult_common.h"
-    #include "../common/COIEngine_common.h"
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define COI_MAX_DRIVER_VERSION_STR_LEN 255
-
-#define COI_MAX_HW_THREADS 1024
-
-///////////////////////////////////////////////////////////////////////////////
-/// This enum defines miscellaneous information returned from the
-/// COIGetEngineInfo() function.
-///
-typedef enum
-{
-    COI_ENG_ECC_DISABLED = 0,            //ECC is not enabled on this engine
-    COI_ENG_ECC_ENABLED = 0x00000001,    //ECC is enabled on this engine
-    COI_ENG_ECC_UNKNOWN = 0x00000002     //ECC is mode is unknown
-} coi_eng_misc;
-
-
-///////////////////////////////////////////////////////////////////////////////
-/// This structure returns information about an Intel(R) Xeon Phi(TM)
-/// coprocessor.
-/// A pointer to this structure is passed into the COIGetEngineInfo() function,
-/// which fills in the data before returning to the caller.
-///
-typedef struct COI_ENGINE_INFO
-{
-    /// The version string identifying the driver.
-    coi_wchar_t  DriverVersion[COI_MAX_DRIVER_VERSION_STR_LEN];
-
-    /// The DeviceType supported by the engine.
-    COI_DEVICE_TYPE ISA;
-
-    /// The number of cores on the engine.
-    uint32_t     NumCores;
-
-    /// Miscellaneous fields
-    coi_eng_misc MiscFlags;
-
-    /// The number of hardware threads on the engine.
-    uint32_t     NumThreads;
-
-    /// The maximum frequency (in MHz) of the cores on the engine.
-    uint32_t     CoreMaxFrequency;
-
-    /// The load percentage for each of the hardware threads on the engine.
-    /// Currently this is limited to reporting out a maximum of 1024 HW threads
-    uint32_t     Load[COI_MAX_HW_THREADS];
-
-    /// The amount of physical memory managed by the OS.
-    uint64_t     PhysicalMemory;
-
-    /// The amount of free physical memory in the OS.
-    uint64_t     PhysicalMemoryFree;
-
-    /// The amount of swap memory managed by the OS.
-    uint64_t     SwapMemory;
-
-    /// The amount of free swap memory in the OS.
-    uint64_t     SwapMemoryFree;
-
-    /// The pci config vendor id
-    uint16_t     VendorId;
-
-    /// The pci config device id
-    uint16_t     DeviceId;
-
-    /// The pci config subsystem id
-    uint16_t     SubSystemId;
-
-    /// The stepping of the board, A0, A1, C0, D0 etc.
-    uint16_t     BoardStepping;
-
-    /// The SKU of the stepping, EB, ED, etc.
-    uint16_t     BoardSKU;
-} COI_ENGINE_INFO;
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Returns information related to a specified engine. Note that if the runtime
-/// is unable to query a value it will be returned as zero but the call will
-/// still succeed.
-///
-///
-/// @param  in_EngineHandle
-///         [in] The COIENGINE structure as provided from COIEngineGetHandle()
-///         which to query for device level information.
-///
-/// @param  in_EngineInfoSize
-///         [in] The size of the structure that out_pEngineInfo points to.
-///         Used for version safety of the function call.
-///
-/// @param  out_pEngineInfo
-///         [out] The address of a user allocated COI_ENGINE_INFO structure.
-///         Upon success, the contents of the structure will be updated
-///         to contain information related to the specified engine.
-///
-///
-/// @return  COI_SUCCESS if the function completed without error.
-///
-/// @return  COI_INVALID_HANDLE if the in_EngineHandle handle is not valid.
-///
-/// @return  COI_SIZE_MISMATCH if in_EngineInfoSize does not match any current
-///          or previous COI_ENGINE_INFO structure sizes.
-///
-/// @return  COI_INVALID_POINTER if the out_pEngineInfo pointer is NULL.
-///
-COIACCESSAPI
-COIRESULT
-COIEngineGetInfo(
-    COIENGINE           in_EngineHandle,
-    uint32_t            in_EngineInfoSize,
-    COI_ENGINE_INFO    *out_pEngineInfo);
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Returns the number of engines in the system that match the provided device type.
-///
-/// The number of available coprocessor devices (i.e. cards connected via PCIe)
-/// is detected by the COI runtime.
-///
-/// @param  in_DeviceType
-///         [in] Specifies the ISA type of the engine requested.
-///
-/// @param  out_pNumEngines
-///         [out] The number of engines available. This can be used to index
-///         into the engines using COIEngineGetHandle().
-///
-/// @return COI_SUCCESS if the function completed without error.
-///
-/// @return COI_DOES_NOT_EXIST if the in_DeviceType parameter is not valid.
-///
-/// @return COI_INVALID_POINTER if the out_pNumEngines parameter is NULL.
-///
-/// @return COI_OUT_OF_RANGE if number of selected devices is greater than 8.
-///
-COIACCESSAPI
-COIRESULT
-COIEngineGetCount(
-    COI_DEVICE_TYPE in_DeviceType,
-    uint32_t       *out_pNumEngines);
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Returns the handle of a user specified engine.
-///
-/// @param  in_DeviceType
-///         [in] Specifies the ISA type of the engine requested.
-///
-/// @param  in_EngineIndex
-///         [in] A unsigned integer which specifies the zero-based position of
-///         the engine in a collection of engines. The makeup of this
-///         collection is defined by the in_DeviceType parameter.
-///
-/// @param  out_pEngineHandle
-///         [out] The address of a COIENGINE handle.
-///
-/// @return COI_SUCCESS if the function completed without error.
-///
-/// @return COI_DOES_NOT_EXIST if the in_DeviceType parameter is not valid.
-///
-/// @return COI_OUT_OF_RANGE if in_EngineIndex is greater than or equal to
-///         the number of engines that match the in_DeviceType parameter.
-///
-/// @return COI_INVALID_POINTER if the out_pEngineHandle parameter is NULL.
-///
-/// @return COI_VERSION_MISMATCH if the version of Intel(R) Coprocessor Offload
-///         Infrastructure (Intel(R) COI) on the host is not
-///         compatible with the version on the device.
-///
-/// @return COI_NOT_INITIALIZED if the engine requested exists but is offline.
-///
-COIACCESSAPI
-COIRESULT
-COIEngineGetHandle(
-    COI_DEVICE_TYPE in_DeviceType,
-    uint32_t        in_EngineIndex,
-    COIENGINE      *out_pEngineHandle);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Returns the hostname for a specified COIEngine.
-///
-/// @param  in_EngineHandle
-///         [in] The connected COI Engine Handle passed in by the user that is
-///         used to request the hostname of the device connected by this COIEngine.
-///
-/// @param  out_Hostname
-///         [out] The hostname of the device connected by this COIEngine.
-///         COI will write at most 4096 bytes and the user must make sure that the size
-///         of the memory pointed by this argument is large enough.
-///
-/// @return COI_SUCCESS if the hostname was retrieved without error.
-///
-/// @return COI_ERROR if the function was unable to retrieve the hostname and/or
-///         the retrieved out_Hostname is NULL.
-///
-/// @return COI_INVALID_HANDLE if the in_EngineHandle is invalid.
-///
-/// @return COI_INVALID_POINTER if the out_Hostname is NULL.
-///
-COIACCESSAPI
-COIRESULT
-COIEngineGetHostname(
-    COIENGINE in_EngineHandle,
-    char     *out_Hostname);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIENGINE_SOURCE_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/source/COIEvent_source.h b/liboffloadmic/include/coi/source/COIEvent_source.h
deleted file mode 100644 (file)
index 8c6ad25..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIEVENT_SOURCE_H
-#define _COIEVENT_SOURCE_H
-
-/** @ingroup COIEvent
- *  @addtogroup COIEventSource
-@{
-* @file source/COIEvent_source.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Special case event values which can be passed in to APIs to specify
-/// how the API should behave. In COIBuffer APIs passing in NULL for the
-/// completion event is the equivalent of passing COI_EVENT_SYNC.
-/// Note that passing COI_EVENT_ASYNC can be used when the caller wishes the
-/// operation to be performed asynchronously but does not care when the
-/// operation completes. This can be useful for operations that by definition
-/// must complete in order (DMAs, run functions on a single pipeline). If
-/// the caller does care when the operation completes then they should pass
-/// in a valid completion event which they can later wait on.
-///
-#define COI_EVENT_ASYNC ((COIEVENT*)1)
-#define COI_EVENT_SYNC  ((COIEVENT*)2)
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// This can be used to initialize a COIEVENT to a known invalid state.
-/// This is not required to use, but can be useful in some cases
-/// if a program is unsure if the event will be initialized by the runtime.
-/// Simply set the event to this value: COIEVENT event = COI_EVENT_INITIALIZER;
-///
-#define COI_EVENT_INITIALIZER   { { 0, -1 } }
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Wait for an arbitrary number of COIEVENTs to be signaled as completed,
-/// eg when the run function or asynchronous map call associated with an event
-/// has finished execution.
-/// If the user sets in_WaitForAll = True and not all of the events are
-/// signaled when the timeout period is reached then COI_TIME_OUT_REACHED will
-/// be returned.
-/// If the user sets in_WaitForAll = False then if at least one event is
-/// signaled when the timeout is reached then COI_SUCCESS is returned.
-///
-/// @param  in_NumEvents
-///         [in] The number of events to wait for.
-///
-/// @param  in_pEvents
-///         [in] The array of COIEVENT handles to wait for.
-///
-/// @param  in_Timeout
-///         [in] The time in milliseconds to wait for the event. 0 polls
-///         and returns immediately, -1 blocks indefinitely.
-///
-/// @param  in_WaitForAll
-///         [in] Boolean value specifying behavior. If true, wait for all
-///         events to be signaled, or for timeout, whichever happens first.
-///         If false, return when any event is signaled, or at timeout.
-///
-/// @param  out_pNumSignaled
-///         [out] The number of events that were signaled. If in_NumEvents
-///         is 1 or in_WaitForAll = True, this parameter is optional.
-///
-/// @param  out_pSignaledIndices
-///         [out] Pointer to an array of indices into the original event
-///         array. Those denoted have been signaled. The user must provide an
-///         array that is no smaller than the in_Events array. If in_NumEvents
-///         is 1 or in_WaitForAll = True, this parameter is optional.
-///
-/// @return COI_SUCCESS once an event has been signaled completed.
-///
-/// @return COI_TIME_OUT_REACHED if the events are still in use when the
-///         timeout is reached or timeout is zero (a poll).
-///
-/// @return COI_OUT_OF_RANGE if a negative value other than -1 is passed in to
-///         the in_Timeout parameter.
-///
-/// @return COI_OUT_OF_RANGE if in_NumEvents is 0.
-///
-/// @return COI_INVALID_POINTER if in_pEvents is NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_NumEvents > 1 and if in_WaitForAll
-///         is not true and out_pSignaled or out_pSignaledIndicies are NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if out_pNumSignaled is not NULL
-///         and out_pSignaledIndices is NULL (or vice versa).
-///
-/// @return COI_EVENT_CANCELED if while waiting on a user event, it gets
-///         unregistered this returns COI_EVENT_CANCELED
-///
-/// @return COI_PROCESS_DIED if the remote process died. See COIProcessDestroy
-///         for more details.
-///
-/// @return COI_<REAL ERROR> if only a single event is passed in, and that event
-///         failed, COI will attempt to return the real error code that caused
-///         the original operation to fail, otherwise COI_PROCESS_DIED is reported.
-///
-COIACCESSAPI
-COIRESULT
-COIEventWait(
-    uint16_t        in_NumEvents,
-    const   COIEVENT       *in_pEvents,
-    int32_t         in_TimeoutMilliseconds,
-    uint8_t         in_WaitForAll,
-    uint32_t       *out_pNumSignaled,
-    uint32_t       *out_pSignaledIndices);
-
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Register a User COIEVENT so that it can be fired. Registered event is
-/// a one shot User event; in other words once signaled it cannot be used
-/// again for signaling. You have to unregister and register again to enable
-/// signaling. An event will be reset if it is re-registered without
-/// unregistering, resulting in loss of all outstanding signals.
-///
-/// @param  out_pEvent
-///         [out] Pointer to COIEVENT handle being Registered
-///
-/// @return COI_SUCCESS an event is successfully registered
-///
-/// @return COI_INVALID_POINTER if out_pEvent is NULL
-///
-COIACCESSAPI
-COIRESULT
-COIEventRegisterUserEvent(
-    COIEVENT *out_pEvent);
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Unregister a User COIEVENT. Unregistering a unsignaled event is similar
-/// to firing an event. Except Calling COIEventWait on an event that is
-/// being unregistered returns COI_EVENT_CANCELED
-///
-/// @param  in_Event
-///         [in] Event Handle to be unregistered.
-///
-/// @return COI_INVALID_HANDLE if in_Event is not a UserEvent
-///
-/// @return COI_SUCCESS if an event is successfully unregistered
-///
-COIACCESSAPI
-COIRESULT
-COIEventUnregisterUserEvent(
-    COIEVENT in_Event);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// A callback that will be invoked to notify the user of an internal
-/// runtime event completion.
-///
-/// As with any callback mechanism it is up to the user to make sure that
-/// there are no possible deadlocks due to reentrancy (ie the callback being
-/// invoked in the same context that triggered the notification) and also
-/// that the callback does not slow down overall processing. If the user
-/// performs too much work within the callback it could delay further
-/// processing. The callback will be invoked prior to the signaling of
-/// the corresponding COIEvent. For example, if a user is waiting
-/// for a COIEvent associated with a run function completing they will
-/// receive the callback before the COIEvent is marked as signaled.
-///
-/// @param  in_Event
-///         [in] The completion event that is associated with the
-///         operation that is being notified.
-///
-/// @param  in_Result
-///         [in] The COIRESULT of the operation.
-///
-/// @param  in_UserData
-///         [in] Opaque data that was provided when the callback was
-///         registered. Intel(R) Coprocessor Offload Infrastructure
-///         (Intel(R) COI) simply passes this back to the user so that
-///         they can interpret it as they choose.
-///
-typedef void (*COI_EVENT_CALLBACK)(
-    COIEVENT            in_Event,
-    const   COIRESULT           in_Result,
-    const   void               *in_UserData);
-
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Registers any COIEVENT to receive a one time callback, when the event
-/// is marked complete in the offload runtime. If the event has completed
-/// before the COIEventRegisterCallback() is called then the callback will
-/// immediately be invoked by the calling thread. When the event is
-/// registered before the event completes, the runtime gaurantees that
-/// the callback will be invoked before COIEventWait() is notified of
-/// the same event completing. In well written user code, this may provide
-/// a slight performance advantage.
-///
-/// Users should treat the callback much like an interrupt routine, in regards
-/// of performance. Specifically designing the callback to be as short and
-/// non blocking as possible. Since the thread that runs the callback is
-/// non deterministic blocking or stalling of the callback, may have severe
-/// performance impacts on the offload runtime. Thus, it is important to not
-/// create deadlocks between the callback and other signaling/waiting
-/// mechanisms. It is recommended to never invoke COIEventWait() inside
-/// a callback function, as this could lead to immediate deadlocks.
-///
-/// It is important to note that the runtime cannot distinguish between
-/// already triggered events and invalid events. Thus the user needs to pass
-/// in a valid event, or the callback will be invoked immediately.
-/// Failed events will still receive a callback and the user can query
-/// COIEventWait() after the callback for the failed return code.
-///
-/// If more than one callback is registered for the same event, only the
-/// single most current callback will be used, i.e. the older one will
-/// be replaced.
-///
-/// @param  in_Event
-///         [in] A valid single event handle to be registered to receive a callback.
-///
-/// @param  in_Callback
-///         [in] Pointer to a user function used to signal an
-///         event completion.
-///
-/// @param  in_UserData
-///         [in] Opaque data to pass to the callback when it is invoked.
-///
-/// @param  in_Flags
-///         [in] Reserved parameter for future expansion, required to be zero for now.
-///
-/// @return COI_INVALID_HANDLE if in_Event is not a valid COIEVENT
-///
-/// @return COI_INVALID_HANDLE if in_Callback is not a valid pointer.
-///
-/// @return COI_ARGUMENT_MISMATCH if the in_Flags is not zero.
-///
-/// @return COI_SUCCESS an event is successfully registered
-///
-COIACCESSAPI
-COIRESULT
-COIEventRegisterCallback(
-    const COIEVENT                in_Event,
-    COI_EVENT_CALLBACK      in_Callback,
-    const void                   *in_UserData,
-    const uint64_t                in_Flags);
-
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIEVENT_SOURCE_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/source/COIPipeline_source.h b/liboffloadmic/include/coi/source/COIPipeline_source.h
deleted file mode 100644 (file)
index c13404d..0000000
+++ /dev/null
@@ -1,437 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIPIPELINE_SOURCE_H
-#define _COIPIPELINE_SOURCE_H
-
-/** @ingroup COIPipeline
- *  @addtogroup COIPipelineSource
-@{
-* @file source/COIPipeline_source.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-
-
-//////////////////////////////////////////////////////////////////////////////
-/// These flags specify how a buffer will be used within a run function. They
-/// allow the runtime to make optimizations in how it moves the data around.
-/// These flags can affect the correctness of an application, so they must be
-/// set properly. For example, if a buffer is used in a run function with the
-/// COI_SINK_READ flag and then mapped on the source, the runtime may use a
-/// previously cached version of the buffer instead of retrieving data from
-/// the sink.
-typedef enum COI_ACCESS_FLAGS
-{
-    /// Specifies that the run function will only read the associated buffer.
-    COI_SINK_READ = 1,
-
-    /// Specifies that the run function will write to the associated buffer.
-    COI_SINK_WRITE,
-
-    /// Specifies that the run function will overwrite the entire associated
-    /// buffer and therefore the buffer will not be synchronized with the
-    /// source before execution.
-    COI_SINK_WRITE_ENTIRE,
-
-    /// Specifies that the run function will only read the associated buffer
-    /// and will maintain the reference count on the buffer after
-    /// run function exit.
-    COI_SINK_READ_ADDREF,
-
-    /// Specifies that the run function will write to the associated buffer
-    /// and will maintain the reference count on the buffer after
-    /// run function exit.
-    COI_SINK_WRITE_ADDREF,
-
-    /// Specifies that the run function will overwrite the entire associated
-    /// buffer and therefore the buffer will not be synchronized with the
-    /// source before execution and will maintain the reference count on the
-    /// buffer after run function exit.
-    COI_SINK_WRITE_ENTIRE_ADDREF
-} COI_ACCESS_FLAGS;
-
-#define COI_PIPELINE_MAX_PIPELINES 512
-#define COI_PIPELINE_MAX_IN_BUFFERS 16384
-#define COI_PIPELINE_MAX_IN_MISC_DATA_LEN 32768
-
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Create a pipeline associated with a remote process. This pipeline can
-/// then be used to execute remote functions and to share data using
-/// COIBuffers.
-///
-/// @param  in_Process
-///         [in] A handle to an already existing process that the pipeline
-///         will be associated with.
-///
-/// @param  in_Mask
-///         [in] An optional mask of the set of hardware threads on which the
-///         sink pipeline command processing thread could run.
-///
-/// @param  in_StackSize
-///         [in] An optional value that will be used when the pipeline
-///         processing thread is created on the sink. If the user passes in
-///         0 the OS default stack size will be used. Otherwise the value
-///         must be PTHREAD_STACK_MIN (16384) bytes or larger and must be
-///         a multiple of a page (4096 bytes).
-///
-/// @param  out_pPipeline
-///         [out] Handle returned to uniquely identify the pipeline that was
-///         created for use in later API calls.
-///
-///
-/// @return COI_SUCCESS if the pipeline was successfully created.
-///
-/// @return COI_INVALID_HANDLE if the in_Process handle passed in was invalid.
-///
-/// @return COI_INVALID_POINTER if the out_pPipeline pointer was NULL.
-///
-/// @return COI_RESOURCE_EXHAUSTED if no more COIPipelines can be created. The
-///         maximum number of pipelines allowed is COI_PIPELINE_MAX_PIPELINES.
-///         It is recommended in most cases to not exceed the number of CPU's
-///         that are reported on the offload device, performance will suffer.
-///
-///
-/// @return COI_OUT_OF_RANGE if the in_StackSize > 0 &&
-///         in_StackSize < PTHREAD_STACK_MIN or if in_StackSize is not a
-///         multiple of a page (4096 bytes).
-///
-/// @return COI_OUT_OF_RANGE if the in_Mask is set to all zeroes. If no mask
-///         is desired then the in_Mask should be passed as NULL, otherwise
-///         at least one thread must be set.
-///
-/// @return COI_TIME_OUT_REACHED if establishing the communication channel with
-///         the remote pipeline timed out.
-///
-/// @return COI_RETRY if the pipeline cannot be created due to the number of
-///         source-to-sink connections in use. A subsequent call to
-///         COIPipelineCreate may succeed if resources are freed up.
-///
-/// @return COI_PROCESS_DIED if in_Process died.
-///
-COIACCESSAPI
-COIRESULT
-COIPipelineCreate(
-    COIPROCESS          in_Process,
-    COI_CPU_MASK        in_Mask,
-    uint32_t            in_StackSize,
-    COIPIPELINE        *out_pPipeline);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Destroys the indicated pipeline, releasing its resources.
-///
-/// @param  in_Pipeline
-///         [in] Pipeline to destroy.
-///
-///
-/// @return COI_SUCCESS if the pipeline was destroyed
-///
-COIACCESSAPI
-COIRESULT
-COIPipelineDestroy(
-    COIPIPELINE         in_Pipeline);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Enqueues a function in the remote process binary to be executed. The
-/// function execution is asynchronous in regards to the Source and all
-/// run functions enqueued on a pipeline are executed in-order. The run
-/// function will only execute when all of the required buffers are present
-/// in the Sink's memory.
-///
-/// Potential Hazards while using Runfunctions:
-///
-/// 1. Proper care has to be taken while setting the input dependencies for
-///    RunFunctions. Setting it incorrectly can lead to cyclic dependencies
-///    and can cause the respective pipeline to stall.
-/// 2. RunFunctions can also segfault if enough memory space is not available
-///    on the sink for the buffers passed in. Buffers that are AddRef'd
-///    need to be accounted for available memory space. In other
-///    words, this memory is not available for use until it is freed up.
-/// 3. Unexpected segmentation faults or erroneous behavior can occur if
-///    handles or data passed in to Runfunction gets destroyed before the
-///    RunFunction finishes.
-///    For example, if a variable passed in as Misc data or the buffer gets
-///    destroyed before the runtime receives the completion notification
-///    of the Runfunction, it can cause unexpected behavior. So it is always
-///    recommended to wait for RunFunction completion event before any related
-///    destroy event occurs.
-///
-/// The runtime expects users to handle such scenarios. COIPipelineRunFunction
-/// returns COI_SUCCESS for above cases because it was queued up successfully.
-/// Also if you try to destroy a pipeline with a stalled function then the
-/// destroy call will hang. COIPipelineDestroy waits until all the functions
-/// enqueued are finished executing.
-///
-/// @param  in_Pipeline
-///         [in] Handle to a previously created pipeline that this run
-///         function should be enqueued to.
-///
-/// @param  in_Function
-///         [in] Previously returned handle from a call to
-///         COIPipelineGetFunctionHandle() that represents a function in the
-///         application running on the Sink process.
-///
-/// @param  in_NumBuffers
-///         [in] The number of buffers that are being passed to the run
-///         function. This number must match the number of buffers in the
-///         in_pBuffers and in_pBufferAccessFlags arrays. Must be less than
-///         COI_PIPELINE_MAX_IN_BUFFERS.
-///
-/// @param  in_pBuffers
-///         [in] An array of COIBUFFER handles that the function is expected
-///         to use during its execution. Each buffer when it arrives at the
-///         Sink process will be at least 4k page aligned, thus, using a very
-///         large number of small buffers is memory inefficient and should be
-///         avoided.
-///
-/// @param  in_pBufferAccessFlags
-///         [in] An array of flag values which correspond to the buffers
-///         passed in the in_pBuffers parameter. These flags are used to
-///         track dependencies between different run functions being
-///         executed from different pipelines.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the run function
-///         to wait for any dependencies.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of COIEVENT objects that this run
-///         function will wait for before executing. This allows the user to
-///         create dependencies between run functions in different pipelines.
-///         The user may pass in NULL if they do not wish to wait for any
-///         dependencies to complete.
-///
-/// @param  in_pMiscData
-///         [in] Pointer to user defined data, typically used to pass
-///         parameters to Sink side functions. Should only be used for small
-///         amounts data since the data will be placed directly in the
-///         Driver's command buffer. COIBuffers should be used to pass large
-///         amounts of data.
-///
-/// @param  in_MiscDataLen
-///         [in] Size of the in_pMiscData in bytes. Must be less than
-///         COI_PIPELINE_MAX_IN_MISC_DATA_LEN, and should usually be much
-///         smaller, see documentation for the parameter in_pMiscData.
-///
-/// @param  out_pAsyncReturnValue
-///         [out] Pointer to user-allocated memory where the return value from
-///         the run function will be placed. This memory should not be read
-///         until out_pCompletion has been signaled.
-///
-/// @param  in_AsyncReturnValueLen
-///         [in] Size of the out_pAsyncReturnValue in bytes.
-///
-/// @param  out_pCompletion
-///         [out] An optional pointer to a COIEVENT object
-///         that will be signaled when this run function has completed
-///         execution. The user may pass in NULL if they wish for this function
-///         to be synchronous, otherwise if a COIEVENT object is passed in the
-///         function is then asynchronous and closes after enqueuing the
-///         RunFunction and passes back the COIEVENT that will be signaled
-///         once the RunFunction has completed.
-///
-/// @return COI_SUCCESS if the function was successfully placed in a
-///         pipeline for future execution. Note that the actual
-///         execution of the function will occur in the future.
-///
-/// @return COI_OUT_OF_RANGE if in_NumBuffers is greater than
-///         COI_PIPELINE_MAX_IN_BUFFERS or if in_MiscDataLen is greater than
-///         COI_PIPELINE_MAX_IN_MISC_DATA_LEN.
-///
-/// @return COI_INVALID_HANDLE if the pipeline handle passed in was invalid.
-///
-/// @return COI_INVALID_HANDLE if the function handle passed in was invalid.
-///
-/// @return COI_INVALID_HANDLE if any of the buffers passed in are invalid.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_NumDependencies is non-zero while
-///         in_pDependencies was passed in as NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pDependencies is non-NULL but
-///         in_NumDependencies is zero.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_MiscDataLen is non-zero while
-///         in_pMiscData was passed in as NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pMiscData is non-NULL but
-///         in_MiscDataLen is zero.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_NumBuffers is non-zero and in_pBuffers
-///         or in_pBufferAccessFlags are NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pBuffers is non-NULL but
-///         in_NumBuffers is zero.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pBufferAccessFlags is non-NULL but
-///         in_NumBuffers is zero.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_ReturnValueLen is non-zero while
-///         in_pReturnValue was passed in as NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pReturnValue is non-NULL but
-///         in_ReturnValueLen is zero.
-///
-/// @return COI_RETRY if any input buffers are still mapped when
-///         passed to the run function.
-///
-/// @return COI_MISSING_DEPENDENCY if buffer was not created on the process
-///         associated with the pipeline that was passed in.
-///
-/// @return COI_OUT_OF_RANGE if any of the access flags in
-///         in_pBufferAccessFlags is not a valid COI_ACCESS_FLAGS.
-///
-COIACCESSAPI
-COIRESULT
-COIPipelineRunFunction(
-    COIPIPELINE         in_Pipeline,
-    COIFUNCTION         in_Function,
-    uint32_t            in_NumBuffers,
-    const   COIBUFFER          *in_pBuffers,
-    const   COI_ACCESS_FLAGS   *in_pBufferAccessFlags,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    const   void               *in_pMiscData,
-    uint16_t            in_MiscDataLen,
-    void               *out_pAsyncReturnValue,
-    uint16_t            in_AsyncReturnValueLen,
-    COIEVENT           *out_pCompletion);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Retrieve the engine that the pipeline is associated with.
-///
-/// @param  in_Pipeline
-///         [in] Pipeline to query.
-///
-/// @param  out_pEngine
-///         [out] The handle of the Engine.
-///
-/// @return COI_SUCCESS if the engine was retrieved.
-///
-/// @return COI_INVALID_HANDLE if the pipeline handle passed in was invalid.
-///
-/// @return COI_INVALID_POINTER if the out_pEngine parameter is NULL.
-///
-/// @return COI_PROCESS_DIED if the process associated with this engine died.
-///
-COIACCESSAPI
-COIRESULT
-COIPipelineGetEngine(
-    COIPIPELINE         in_Pipeline,
-    COIENGINE          *out_pEngine);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Add a particular core:thread pair to a COI_CPU_MASK.
-///
-/// @param  in_Process
-///         [in] A handle to an already existing process that the pipeline
-///         will be associated with.
-///
-/// @param  in_CoreID
-///         [in] Core to affinitize to; must be less than the number of cores
-///         on the device.
-///
-/// @param  in_ThreadID
-///         [in] Thread on the core to affinitize to (0 - 3).
-///
-/// @param  out_pMask
-///         [out] Pointer to the mask to set.
-///
-/// @warning Unless it is explicitly done, the contents of the mask may not
-///          be zero when creating or declaring a COI_CPU_MASK variable.
-///
-/// @return COI_SUCCESS if the mask was set.
-///
-/// @return COI_OUT_OF_RANGE if the in_CoreID or in_ThreadID is out of range.
-///
-/// @return COI_INVALID_POINTER if out_pMask is invalid.
-///
-/// @return COI_INVALID_HANDLE if in_Process is invalid.
-///
-COIACCESSAPI
-COIRESULT
-COIPipelineSetCPUMask(
-    COIPROCESS          in_Process,
-    uint32_t            in_CoreID,
-    uint8_t             in_ThreadID,
-    COI_CPU_MASK       *out_pMask);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Clears a given mask. Note that the memory contents of COI_CPU_MASK are not
-/// guaranteed to be zero when declaring a COI_CPU_MASK variable. Thus, prior
-/// to setting a specific affinity to in_Mask it is important to call this
-/// function first.
-///
-/// @param  in_Mask
-///         [in] Pointer to the mask to clear.
-///
-/// @return COI_SUCCESS if the mask was cleared.
-///
-/// @return COI_INVALID_POINTER if in_Mask is invalid.
-///
-COIACCESSAPI
-COIRESULT
-COIPipelineClearCPUMask(
-    COI_CPU_MASK       *in_Mask);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIPIPELINE_SOURCE_H */
-
-/*! @} */
diff --git a/liboffloadmic/include/coi/source/COIProcess_source.h b/liboffloadmic/include/coi/source/COIProcess_source.h
deleted file mode 100644 (file)
index 1248a91..0000000
+++ /dev/null
@@ -1,1235 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-#ifndef _COIPROCESS_SOURCE_H
-#define _COIPROCESS_SOURCE_H
-
-/** @ingroup COIProcess
- *  @addtogroup COIProcessSource
-@{
-* @file source/COIProcess_source.h
-*/
-#ifndef DOXYGEN_SHOULD_SKIP_THIS
-
-#include "../common/COITypes_common.h"
-#include "../common/COIResult_common.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-#endif // DOXYGEN_SHOULD_SKIP_THIS
-
-
-///////////////////////////////////////////////////////////////////////////////
-/// This is a special COIPROCESS handle that can be used to indicate that
-/// the source process should be used for an operation.
-///
-#define COI_PROCESS_SOURCE ((COIPROCESS)-1)
-
-#define COI_MAX_FILE_NAME_LENGTH 256
-
-///////////////////////////////////////////////////////////////////////////////
-/// This is a flag for COIProcessCreateFromMemory that indicates the passed in
-/// memory pointer is a fat binary file and should not have regular validation.
-///
-#define COI_FAT_BINARY ((uint64_t)-1)
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Create a remote process on the Sink and start executing its main()
-/// function.
-///
-/// For more details about creating a process see COIProcessCreateFromMemory.
-///
-/// @param  in_Engine
-///         [in] A handle retrieved via a call to COIEngineGetHandle() that
-///         indicates which device to create the process on. This is
-///         necessary because there can be more than one device
-///         within the system.
-///
-/// @param  in_pBinaryName
-///         [in] Pointer to a null-terminated string that contains the
-///         path to the program binary to be instantiated as a process on
-///         the sink device. The file name will be accessed via
-///         fopen and fread, as such, the passed in binary name must
-///         be locatable via these commands. Also, the file name (without
-///         directory information) will be used automatically by the system
-///         to create the argv[0] of the new process.
-///
-/// @param  in_Argc
-///         [in] The number of arguments being passed in to the process in the
-///         in_ppArgv parameter.
-///
-/// @param  in_ppArgv
-///         [in] An array of strings that represent the arguments being passed
-///         in. The system will auto-generate argv[0] using in_pBinaryName and
-///         thus that parameter cannot be passed in using in_ppArgv. Instead,
-///         in_ppArgv contains the rest of the parameters being passed in.
-///
-/// @param  in_DupEnv
-///         [in] A boolean that indicates whether the process that is being
-///         created should inherit the environment of the caller.
-///
-/// @param  in_ppAdditionalEnv
-///         [in] An array of strings that represent additional environment
-///         variables. This parameter must terminate the array with a NULL
-///         string. For convenience it is also allowed to be NULL if there are
-///         no additional environment variables that need adding. Note that
-///         any environment variables specified here will be in addition to
-///         but override those that were inherited via in_DupEnv.
-///
-/// @param  in_ProxyActive
-///         [in] A boolean that specifies whether the process that is to be
-///         created wants I/O proxy support. If this flag is enabled, then
-///         stdout and stderr are forwarded back to the calling process's
-///         output and error streams.
-///
-/// @param  in_Reserved
-///         Reserved for future use, best set at NULL.
-///
-/// @param  in_InitialBufferSpace
-///         [in] The initial memory (in bytes) that will be pre-allocated at
-///         process creation for use by buffers associated with this remote
-///         process. In addition to allocating, Intel(R) Coprocessor Offload
-///         Infrastructure (Intel(R) COI) will also fault in the
-///         memory during process creation. If the total size of the buffers
-///         in use by this process exceed this initial size, memory on the
-///         sink may continue to be allocated on demand, as needed, subject
-///         to the system constraints on the sink.
-///
-///@param   in_LibrarySearchPath
-///         [in] a path to locate dynamic libraries dependencies for the sink
-///         application. If not NULL, this path will override the environment
-///         variable SINK_LD_LIBRARY_PATH. If NULL it will use
-///         SINK_LD_LIBRARY_PATH to locate dependencies.
-///
-/// @param  out_pProcess
-///         [out] Handle returned to uniquely identify the process that was
-///         created for use in later API calls.
-///
-/// @return COI_SUCCESS if the remote process was successfully created.
-///
-/// @return COI_INVALID_POINTER if in_pBinaryName was NULL.
-///
-/// @return COI_INVALID_FILE if in_pBinaryName is not a "regular file" as
-///         determined by stat or if its size is 0.
-///
-/// @return COI_DOES_NOT_EXIST if in_pBinaryName cannot be found.
-///
-/// @return See COIProcessCreateFromMemory for additional errors.
-///
-COIACCESSAPI
-COIRESULT
-COIProcessCreateFromFile(
-    COIENGINE           in_Engine,
-    const   char               *in_pBinaryName,
-    int                 in_Argc,
-    const   char              **in_ppArgv,
-    uint8_t             in_DupEnv,
-    const   char              **in_ppAdditionalEnv,
-    uint8_t             in_ProxyActive,
-    const   char               *in_Reserved,
-    uint64_t            in_InitialBufferSpace,
-    const   char               *in_LibrarySearchPath,
-    COIPROCESS         *out_pProcess);
-
-///////////////////////////////////////////////////////////////////////////////
-///
-/// Create a remote process on the Sink and start executing its main()
-/// function. This will also automatically load any dependent shared objects
-/// on to the device. Once the process is created, remote calls can be
-/// initiated by using the RunFunction mechanism found in the COIPipeline APIs.
-///
-/// If instead of creating a process you only wish to check for dynamic
-/// library dependencies set the environment variable
-/// SINK_LD_TRACE_LOADED_OBJECTS to be non empty before making this call.
-///
-/// If there are dynamic link libraries on the source file system that need to
-/// be preloaded when the process is created on the device, callers of this
-/// API can set the environment variable SINK_LD_PRELOAD to a colon separated
-/// list of libraries that need to be copied to the sink and preloaded as part
-/// of process creation.
-///
-/// For more information on how dependencies are loaded, see
-/// COIProcessLoadLibraryFromMemory.
-///
-/// @param  in_Engine
-///         [in] A handle retrieved via a call to COIEngineGetHandle() that
-///         indicates which device to create the process on. This is
-///         necessary because there can be more than one device
-///         within the system.
-///
-/// @param  in_pBinaryName
-///         [in] Pointer to a null-terminated string that contains the name to
-///         give the process that will be created. Note that the final name
-///         will strip out any directory information from in_pBinaryName and
-///         use the file information to generate an argv[0] for the new
-///         process.
-///
-/// @param  in_pBinaryBuffer
-///         [in] Pointer to a buffer whose contents represent the sink-side
-///         process that we want to create.
-///
-/// @param  in_BinaryBufferLength
-///         [in] Number of bytes in in_pBinaryBuffer.
-///
-/// @param  in_Argc
-///         [in] The number of arguments being passed in to the process in the
-///         in_ppArgv parameter.
-///
-/// @param  in_ppArgv
-///         [in] An array of strings that represent the arguments being passed
-///         in. The system will auto-generate argv[0] using in_pBinaryName and
-///         thus that parameter cannot be passed in using in_ppArgv. Instead,
-///         in_ppArgv contains the rest of the parameters being passed in.
-///
-/// @param  in_DupEnv
-///         [in] A boolean that indicates whether the process that is being
-///         created should inherit the environment of the caller.
-///
-/// @param  in_ppAdditionalEnv
-///         [in] An array of strings that represent additional environment
-///         variables. This parameter must terminate the array with a NULL
-///         string. For convenience it is also allowed to be NULL if there are
-///         no additional environment variables that need adding. Note that
-///         any environment variables specified here will be in addition to
-///         but override those that were inherited via in_DupEnv.
-///
-/// @param  in_ProxyActive
-///         [in] A boolean that specifies whether the process that is to be
-///         created wants I/O proxy support.
-///
-/// @param  in_Reserved
-///         Reserved for future use, best set to NULL.
-///
-/// @param  in_InitialBufferSpace
-///         [in] The initial memory (in bytes) that will be pre-allocated at
-///         process creation for use by buffers associated with this remote
-///         process. In addition to allocating, Intel(R) Coprocessor
-///         Offload Infrastructure (Intel(R) COI) will also fault in the
-///         memory during process creation. If the total size of the buffers
-///         in use by this process exceed this initial size, memory on the
-///         sink may continue to be allocated on demand, as needed, subject
-///         to the system constraints on the sink.
-///
-/// @param  in_LibrarySearchPath
-///         [in] A path to locate dynamic libraries dependencies for the sink
-///         application. If not NULL, this path will override the environment
-///         variable SINK_LD_LIBRARY_PATH. If NULL it will use
-///         SINK_LD_LIBRARY_PATH to locate dependencies.
-///
-/// @param  in_FileOfOrigin
-///         [in] If not NULL, this parameter indicates the file from which the
-///         in_pBinaryBuffer was obtained. This parameter is optional.
-///
-/// @param  in_FileOfOriginOffset
-///         [in] If in_FileOfOrigin is not NULL, this parameter indicates the
-///         offset within that file where in_pBinaryBuffer begins.
-///
-/// @param  out_pProcess
-///         [out] Handle returned to uniquely identify the process that was
-///         created for use in later API calls.
-///
-/// @return COI_SUCCESS if the remote process was successfully created.
-///
-/// @return COI_INVALID_HANDLE if the in_Engine handle passed in was invalid.
-///
-/// @return COI_INVALID_POINTER if out_pProcess was NULL.
-///
-/// @return COI_INVALID_POINTER if in_pBinaryName or in_pBinaryBuffer was NULL.
-///
-/// @return COI_MISSING_DEPENDENCY if a dependent library is missing from
-///         either SINK_LD_LIBRARY_PATH or the in_LibrarySearchPath parameter.
-///
-/// @return COI_BINARY_AND_HARDWARE_MISMATCH if in_pBinaryName or any of its
-///         recursive dependencies were built for a target machine that does
-///         not match the engine specified.
-///
-/// @return COI_RESOURCE_EXHAUSTED if no more COIProcesses can be created,
-///         possibly, but not necessarily because in_InitialBufferSpace is too
-///         large.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_Argc is 0 and in_ppArgv is not NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_Argc is greater than 0 and in_ppArgv is
-///         NULL.
-///
-/// @return COI_OUT_OF_RANGE if in_Argc is less than 0.
-///
-/// @return COI_OUT_OF_RANGE if the length of in_pBinaryName is greater than or
-///         equal to COI_MAX_FILE_NAME_LENGTH.
-///
-/// @return COI_OUT_OF_RANGE if in_BinaryBufferLength is 0.
-///
-/// @return COI_TIME_OUT_REACHED if establishing the communication channel with
-///         the remote process timed out.
-///
-/// @return COI_DOES_NOT_EXIST if in_FileOfOrigin is not NULL and does not
-///         exist.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_FileOfOrigin is NULL and
-///         in_FileOfOriginOffset is not 0.
-///
-/// @return COI_INVALID_FILE if in_FileOfOrigin is not a "regular file" as
-///         determined by stat or if its size is 0.
-///
-/// @return COI_OUT_OF_RANGE if in_FileOfOrigin exists but its size is
-///         less than in_FileOfOriginOffset + in_BinaryBufferLength.
-///
-/// @return COI_NOT_INITIALIZED if the environment variable
-///         SINK_LD_TRACE_LOADED_OBJECTS is set to a non empty string and there
-///         are no errors locating the shared library dependencies.
-///
-/// @return COI_PROCESS_DIED if at some point during the loading of the remote
-///         process the remote process terminated abnormally.
-///
-/// @return COI_VERSION_MISMATCH if the version of Intel(R) Coprocessor
-///         Offload Infrastructure (Intel(R) COI) on the host is not
-///         compatible with the version on the device.
-///
-COIACCESSAPI
-COIRESULT
-COIProcessCreateFromMemory(
-    COIENGINE           in_Engine,
-    const   char               *in_pBinaryName,
-    const   void               *in_pBinaryBuffer,
-    uint64_t            in_BinaryBufferLength,
-    int                 in_Argc,
-    const   char              **in_ppArgv,
-    uint8_t             in_DupEnv,
-    const   char              **in_ppAdditionalEnv,
-    uint8_t             in_ProxyActive,
-    const   char               *in_Reserved,
-    uint64_t            in_InitialBufferSpace,
-    const   char               *in_LibrarySearchPath,
-    const   char               *in_FileOfOrigin,
-    uint64_t            in_FileOfOriginOffset,
-    COIPROCESS         *out_pProcess);
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Destroys the indicated process, releasing its resources. Note, this
-/// will destroy any outstanding pipelines created in this process as well.
-///
-/// @param  in_Process
-///         [in] Process to destroy.
-///
-/// @param  in_WaitForMainTimeout
-///         [in] The number of milliseconds to wait for the main() function
-///         to return in the sink process before timing out. -1 means to wait
-///         indefinitely.
-///
-/// @param  in_ForceDestroy
-///         [in] If this flag is set to true, then the sink process will be
-///         forcibly terminated after the timeout has been reached. A timeout
-///         value of 0 will kill the process immediately, while a timeout of
-///         -1 is invalid. If the flag is set to false then a message will
-///         be sent to the sink process requesting a clean shutdown. A value
-///         of false along with a timeout of 0 does not send a shutdown
-///         message, instead simply polls the process to see if it is alive.
-///         In most cases this flag should be set to false. If a sink process
-///         is not responding then it may be necessary to set this flag to
-///         true.
-///
-/// @param  out_pProcessReturn
-///         [out] The value returned from the main() function executing in
-///         the sink process. This is an optional parameter. If the caller
-///         is not interested in the return value from the remote process
-///         they may pass in NULL for this parameter. The output value of
-///         this pointer is only meaningful if COI_SUCCESS is returned.
-///
-/// @param  out_pTerminationCode
-///         [out] This parameter specifies the termination code. This will
-///         be 0 if the remote process exited cleanly. If the remote process
-///         exited abnormally this will contain the termination code given
-///         by the operating system of the remote process. This is an optional
-///         parameter and the caller may pass in NULL if they are not
-///         interested in the termination code. The output value of this
-///         pointer is only meaningful if COI_SUCCESS is returned.
-///
-/// @return COI_SUCCESS if the process was destroyed.
-///
-/// @return COI_INVALID_HANDLE if the process handle passed in was invalid.
-///
-/// @return COI_OUT_OF_RANGE for any negative in_WaitForMainTimeout value
-///         except -1.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_WaitForMainTimeout is -1 and
-///         in_ForceDestroy is true.
-///
-/// @return COI_TIME_OUT_REACHED if the sink process is still running after
-///         waiting in_WaitForMainTimeout milliseconds and in_ForceDestroy
-///         is false. This is true even if in_WaitForMainTimeout was 0.
-///         In this case, out_pProcessReturn and out_pTerminationCode
-///         are undefined.
-///
-COIACCESSAPI
-COIRESULT
-COIProcessDestroy(
-    COIPROCESS              in_Process,
-    int32_t                 in_WaitForMainTimeout,
-    uint8_t                 in_ForceDestroy,
-    int8_t                 *out_pProcessReturn,
-    uint32_t               *out_pTerminationCode);
-
-
-#define COI_MAX_FUNCTION_NAME_LENGTH 256
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Given a loaded native process, gets an array of function handles that can
-/// be used to schedule run functions on a pipeline associated with that
-/// process. See the documentation for COIPipelineRunFunction() for
-/// additional information. All functions that are to be retrieved in this
-/// fashion must have the define COINATIVEPROCESSEXPORT preceding their type
-/// specification. For functions that are written in C++, either the entries
-/// in in_pFunctionNameArray in must be pre-mangled, or the functions must be
-/// declared as extern "C". It is also necessary to link the binary containing
-/// the exported functions with the -rdynamic linker flag.
-/// It is possible for this call to successfully find function handles for
-/// some of the names passed in but not all of them. If this occurs
-/// COI_DOES_NOT_EXIST will return and any handles not found will be returned
-/// as NULL.
-///
-/// @param  in_Process
-///         [in] Process handle previously returned via COIProcessCreate().
-///
-/// @param  in_NumFunctions
-///         [in] Number of function names passed in to the in_pFunctionNames
-///         array.
-///
-/// @param  in_ppFunctionNameArray
-///         [in] Pointer to an array of null-terminated strings that match
-///         the name of functions present in the code of the binary
-///         previously loaded via COIProcessCreate(). Note that if a C++
-///         function is used, then the string passed in must already be
-///         properly name-mangled, or extern "C" must be used for where
-///         the function is declared.
-///
-/// @param  out_pFunctionHandleArray
-///         [in out] Pointer to a location created by the caller large
-///         enough to hold an array of COIFUNCTION sized elements that has
-///         in_numFunctions entries in the array.
-///
-/// @return COI_SUCCESS if all function names indicated were found.
-///
-/// @return COI_INVALID_HANDLE if the in_Process handle passed in was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_NumFunctions is zero.
-///
-/// @return COI_INVALID_POINTER if the in_ppFunctionNameArray or
-///         out_pFunctionHandleArray pointers was NULL.
-///
-/// @return COI_DOES_NOT_EXIST if one or more function names were not
-///         found. To determine the function names that were not found,
-///         check which elements in the out_pFunctionHandleArray
-///         are set to NULL.
-///
-/// @return COI_OUT_OF_RANGE if any of the null-terminated strings passed in
-///         via in_ppFunctionNameArray were more than
-///         COI_MAX_FUNCTION_NAME_LENGTH characters in length including
-///         the null.
-///
-/// @warning This operation can take several milliseconds so it is recommended
-///          that it only be done at load time.
-///
-COIACCESSAPI
-COIRESULT
-COIProcessGetFunctionHandles(
-    COIPROCESS          in_Process,
-    uint32_t            in_NumFunctions,
-    const   char              **in_ppFunctionNameArray,
-    COIFUNCTION        *out_pFunctionHandleArray);
-
-#if COI_LIBRARY_VERSION >= 2
-/// @name COIProcessLoadLibrary* flags, named after the corresponding
-/// RTLD flags that are passed into dlopen().
-/// Please consult a Linux manual for more information about these flags.
-//@{
-#define COI_LOADLIBRARY_LOCAL      0x00000
-#define COI_LOADLIBRARY_GLOBAL     0x00100
-
-#define COI_LOADLIBRARY_LAZY       0x00001
-#define COI_LOADLIBRARY_NOW        0x00002
-#define COI_LOADLIBRARY_NOLOAD     0x00004
-#define COI_LOADLIBRARY_DEEPBIND   0x00008
-#define COI_LOADLIBRARY_NODELETE   0x01000
-
-/// Flags to replicate the behaviour of the original version of
-/// COIProcessLoadLibrary* APIs.
-#define COI_LOADLIBRARY_V1_FLAGS   (COI_LOADLIBRARY_GLOBAL|COI_LOADLIBRARY_NOW)
-
-//@}
-
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Loads a shared library into the specified remote process, akin to using
-/// dlopen() on a local process in Linux or LoadLibrary() in Windows.
-/// Dependencies for this library that are not listed with absolute paths
-/// are searched for first in current working directory, then in the
-/// colon-delimited paths in the environment variable SINK_LD_LIBRARY_PATH,
-/// and finally on the sink in the standard search paths as defined by the
-/// sink's operating system / dynamic loader.
-///
-/// @param  in_Process
-///         [in] Process to load the library into.
-///
-/// @param  in_pLibraryBuffer
-///         [in] The memory buffer containing the shared library to load.
-///
-/// @param  in_LibraryBufferLength
-///         [in] The number of bytes in the memory buffer in_pLibraryBuffer.
-///
-/// @param  in_pLibraryName
-///         [in] Name for the shared library. This optional parameter can
-///         be specified in case the dynamic library doesn't have an
-///         SO_NAME field. If specified, it will take precedence over
-///         the SO_NAME if it exists. If it is not specified then
-///         the library must have a valid SO_NAME field.
-///
-///@param   in_LibrarySearchPath
-///         [in] A path to locate dynamic libraries dependencies for the
-///         library being loaded. If not NULL, this path will override the
-///         environment variable SINK_LD_LIBRARY_PATH. If NULL it will use
-///         SINK_LD_LIBRARY_PATH to locate dependencies.
-///
-///@param   in_LibrarySearchPath
-///         [in] A path to locate dynamic libraries dependencies for the sink
-///         application. If not NULL, this path will override the environment
-///         variable SINK_LD_LIBRARY_PATH. If NULL it will use
-///         SINK_LD_LIBRARY_PATH to locate dependencies.
-///
-/// @param  in_FileOfOrigin
-///         [in] If not NULL, this parameter indicates the file from which the
-///         in_pBinaryBuffer was obtained. This parameter is optional.
-///
-/// @param  in_FileOfOriginOffset
-///         [in] If in_FileOfOrigin is not NULL, this parameter indicates the
-///         offset within that file where in_pBinaryBuffer begins.
-///
-#if COI_LIBRARY_VERSION >= 2
-/// @param  in_Flags
-///         [in] Bitmask of the flags that will be passed in as the dlopen()
-///         "flag" parameter on the sink.
-///
-#endif
-///
-/// @param  out_pLibrary
-///         [out] If COI_SUCCESS or COI_ALREADY_EXISTS is returned, the handle
-///         that uniquely identifies the loaded library.
-///
-/// @return COI_SUCCESS if the library was successfully loaded.
-///
-/// @return COI_INVALID_HANDLE if the process handle passed in was invalid.
-///
-/// @return COI_OUT_OF_RANGE if in_LibraryBufferLength is 0.
-///
-/// @return COI_INVALID_FILE if in_pLibraryBuffer does not represent a valid
-///         shared library file.
-///
-/// @return COI_MISSING_DEPENDENCY if a dependent library is missing from
-///         either SINK_LD_LIBRARY_PATH or the in_LibrarySearchPath parameter.
-///
-/// @return COI_ARGUMENT_MISMATCH if the shared library is missing an SONAME
-///         and in_pLibraryName is NULL.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_pLibraryName is the same as that of
-///         any of the dependencies (recursive) of the library being loaded.
-///
-/// @return COI_ALREADY_EXISTS if there is an existing COILIBRARY handle
-///         that identifies this library, and this COILIBRARY hasn't been
-///         unloaded yet.
-///
-/// @return COI_BINARY_AND_HARDWARE_MISMATCH if the target machine of the
-///         binary or any of its recursive dependencies does not match the
-///         engine associated with in_Process.
-///
-/// @return COI_UNDEFINED_SYMBOL if we are unable to load the library due to
-///         an undefined symbol.
-///
-/// @return COI_PROCESS_DIED if loading the library on the device caused
-///         the remote process to terminate.
-///
-/// @return COI_DOES_NOT_EXIST if in_FileOfOrigin is not NULL and does not
-///         exist.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_FileOfOrigin is NULL and
-///         in_FileOfOriginOffset is not 0.
-///
-/// @return COI_INVALID_FILE if in_FileOfOrigin is not a "regular file" as
-///         determined by stat or if its size is 0.
-///
-/// @return COI_OUT_OF_RANGE if in_FileOfOrigin exists but its size is
-///         less than in_FileOfOriginOffset + in_BinaryBufferLength.
-///
-/// @return COI_INVALID_POINTER if out_pLibrary or in_pLibraryBuffer are NULL.
-///
-#if COI_LIBRARY_VERSION >= 2
-COIACCESSAPI
-COIRESULT
-COIProcessLoadLibraryFromMemory(
-    COIPROCESS          in_Process,
-    const   void               *in_pLibraryBuffer,
-    uint64_t            in_LibraryBufferLength,
-    const   char               *in_pLibraryName,
-    const   char               *in_LibrarySearchPath,
-    const   char               *in_FileOfOrigin,
-    uint64_t            in_FileOfOriginOffset,
-    uint32_t            in_Flags,
-    COILIBRARY         *out_pLibrary);
-__asm__(".symver COIProcessLoadLibraryFromMemory,"
-        "COIProcessLoadLibraryFromMemory@COI_2.0");
-#else
-
-COIRESULT
-COIProcessLoadLibraryFromMemory(
-    COIPROCESS          in_Process,
-    const   void               *in_pLibraryBuffer,
-    uint64_t            in_LibraryBufferLength,
-    const   char               *in_pLibraryName,
-    const   char               *in_LibrarySearchPath,
-    const   char               *in_FileOfOrigin,
-    uint64_t            in_FileOfOriginOffset,
-    COILIBRARY         *out_pLibrary);
-__asm__(".symver COIProcessLoadLibraryFromMemory,"
-        "COIProcessLoadLibraryFromMemory@COI_1.0");
-#endif
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Loads a shared library into the specified remote process, akin to using
-/// dlopen() on a local process in Linux or LoadLibrary() in Windows.
-///
-/// For more details, see COIProcessLoadLibraryFromMemory.
-///
-/// @param  in_Process
-///         [in] Process to load the library into.
-///
-/// @param  in_pFileName
-///         [in] The name of the shared library file on the source's file
-///         system that is being loaded. If the file name is not an absolute
-///         path, the file is searched for in the same manner as dependencies.
-///
-/// @param  in_pLibraryName
-///         [in] Name for the shared library. This optional parameter can
-///         be specified in case the dynamic library doesn't have an
-///         SO_NAME field. If specified, it will take precedence over
-///         the SO_NAME if it exists. If it is not specified then
-///         the library must have a valid SO_NAME field.
-///
-///@param   in_LibrarySearchPath
-///         [in] a path to locate dynamic libraries dependencies for the
-///         library being loaded. If not NULL, this path will override the
-///         environment variable SINK_LD_LIBRARY_PATH. If NULL it will use
-///         SINK_LD_LIBRARY_PATH to locate dependencies.
-///
-#if COI_LIBRARY_VERSION >= 2
-/// @param  in_Flags
-///         [in] Bitmask of the flags that will be passed in as the dlopen()
-///         "flag" parameter on the sink.
-///
-#endif
-///
-/// @param  out_pLibrary
-///         [out] If COI_SUCCESS or COI_ALREADY_EXISTS is returned, the handle
-///         that uniquely identifies the loaded library.
-///
-/// @return COI_SUCCESS if the library was successfully loaded.
-///
-/// @return COI_INVALID_POINTER if in_pFileName is NULL.
-///
-/// @return COI_DOES_NOT_EXIST if in_pFileName cannot be found.
-///
-/// @return COI_INVALID_FILE if the file is not a valid shared library.
-///
-/// @return See COIProcessLoadLibraryFromMemory for additional errors.
-///
-#if COI_LIBRARY_VERSION >= 2
-
-COIACCESSAPI
-COIRESULT
-COIProcessLoadLibraryFromFile(
-    COIPROCESS          in_Process,
-    const   char               *in_pFileName,
-    const   char               *in_pLibraryName,
-    const   char               *in_LibrarySearchPath,
-    uint32_t            in_Flags,
-    COILIBRARY         *out_pLibrary);
-__asm__(".symver COIProcessLoadLibraryFromFile,"
-        "COIProcessLoadLibraryFromFile@COI_2.0");
-#else
-
-COIRESULT
-COIProcessLoadLibraryFromFile(
-    COIPROCESS          in_Process,
-    const   char               *in_pFileName,
-    const   char               *in_pLibraryName,
-    const   char               *in_LibrarySearchPath,
-    COILIBRARY         *out_pLibrary);
-__asm__(".symver COIProcessLoadLibraryFromFile,"
-        "COIProcessLoadLibraryFromFile@COI_1.0");
-#endif
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Unloads a a previously loaded shared library from the specified
-/// remote process.
-///
-/// @param  in_Process
-///         [in] Process that we are unloading a library from.
-///
-/// @param  in_Library
-///         [in] Library that we want to unload.
-///
-/// @return COI_SUCCESS if the library was successfully loaded.
-///
-/// @return COI_INVALID_HANDLE if the process or library handle were invalid.
-///
-COIACCESSAPI
-COIRESULT
-COIProcessUnloadLibrary(
-    COIPROCESS          in_Process,
-    COILIBRARY          in_Library);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Registers shared libraries that are already in the host process's memory
-/// to be used during the shared library dependency resolution steps that take
-/// place during subsequent calls to COIProcessCreate* and
-/// COIProcessLoadLibrary*. If listed as a dependency, the registered library
-/// will be used to satisfy the dependency, even if there is another library
-/// on disk that also satisfies that dependency.
-///
-/// Addresses registered must remain valid during subsequent calls to
-/// COIProcessCreate* and COIProcessLoadLibrary*.
-///
-/// If the Sink is Linux, the shared libraries must have a library name
-/// (DT_SONAME field). On most compilers this means built with -soname.
-///
-/// If successful, this API registers all the libraries. Otherwise none
-/// are registered.
-///
-/// @param  in_NumLibraries
-///         [in] The number of libraries that are being registered.
-///
-/// @param  in_ppLibraryArray
-///         [in] An array of pointers that point to the starting addresses
-///         of the libraries.
-///
-/// @param  in_pLibrarySizeArray
-///         [in] An array of pointers that point to the number of bytes in
-///         each of the libraries.
-///
-/// @param  in_ppFileOfOriginArray
-///         [in] An array of strings indicating the file from which the
-///         library was obtained. This parameter is optional. Elements
-///         in the array may be set to NULL.
-///
-/// @param  in_pFileOfOriginOffSetArray
-///         [in] If the corresponding entry in in_ppFileOfOriginArray is not
-///         NULL, this parameter indicates the offsets within those files
-///         where the corresponding libraries begin.
-///
-/// @return COI_SUCCESS if the libraries were registered successfully.
-///
-/// @return COI_OUT_OF_RANGE if in_NumLibraries is 0.
-///
-/// @return COI_INVALID_POINTER if in_ppLibraryArray or in_pLibrarySizeArray
-///         are NULL.
-///
-/// @return COI_INVALID_POINTER if any of the pointers in in_ppLibraryArray
-///         are NULL.
-///
-/// @return COI_OUT_OF_RANGE if any of the values in in_pLibrarySizeArray is 0.
-///
-/// @return COI_ARGUMENT_MISMATCH if either one of in_ppFileOfOriginArray
-///         and in_pFileOfOriginOffSetArray is NULL and the other is not.
-///
-/// @return COI_OUT_OF_RANGE if one of the addresses being registered does not
-///         represent a valid library.
-///
-COIACCESSAPI
-COIRESULT
-COIProcessRegisterLibraries(
-    uint32_t            in_NumLibraries,
-    const   void              **in_ppLibraryArray,
-    const   uint64_t           *in_pLibrarySizeArray,
-    const   char              **in_ppFileOfOriginArray,
-    const   uint64_t           *in_pFileOfOriginOffSetArray);
-
-
-//////////////////////////////////////////////////////////////////////////////
-/// The user can choose to have notifications for these internal events
-/// so that they can build their own profiling and performance layer on
-/// top of Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI).
-///
-typedef enum COI_NOTIFICATIONS
-{
-    /// This event occurs when all explicit and implicit dependencies are
-    /// satisfied and Intel(R) Coprocessor Offload Infrastructure
-    /// (Intel(R) COI) schedules the run function to begin execution.
-    RUN_FUNCTION_READY = 0,
-
-    /// This event occurs just before the run function actually starts
-    /// executing. There may be some latency between the ready and start
-    /// events if other run functions are already queued and ready to run.
-    RUN_FUNCTION_START,
-
-    /// This event occurs when the run function finishes. This is when the
-    /// completion event for that run function would be signaled.
-    RUN_FUNCTION_COMPLETE,
-
-    /// This event occurs when all explicit and implicit dependencies are
-    /// met for the pending buffer operation. Assuming buffer needs to be
-    /// moved, copied, read, etc... Will not be invoked if no actual memory
-    /// is moved, copied, read, etc. This means that COIBufferUnmap will
-    /// never result in a callback as it simply updates the status of the
-    /// buffer but doesn't initiate any data movement. COIBufferMap,
-    /// COIBufferSetState, COIBufferWrite, COIBufferRead and COIBufferCopy
-    /// do initiate data movement and therefore will invoke the callback.
-    BUFFER_OPERATION_READY,
-
-    /// This event occurs when the buffer operation is completed.
-    BUFFER_OPERATION_COMPLETE,
-
-    /// This event occurs when a user event is signaled from the remotely
-    /// a sink process. Local (source triggered) events do not trigger this.
-    USER_EVENT_SIGNALED
-} COI_NOTIFICATIONS;
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// A callback that will be invoked to notify the user of an internal
-/// Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// event. Note that the callback is registered per process so any of the
-/// above notifications that happen on the registered process will receive
-/// the callback.
-/// As with any callback mechanism it is up to the user to make sure that
-/// there are no possible deadlocks due to reentrancy (i.e. the callback being
-/// invoked in the same context that triggered the notification) and also
-/// that the callback does not slow down overall processing. If the user
-/// performs too much work within the callback it could delay further
-/// processing. The callback will be invoked prior to the signaling of
-/// the corresponding COIEvent. For example, if a user is waiting
-/// for a COIEvent associated with a run function completing they will
-/// receive the callback before the COIEvent is marked as signaled.
-///
-///
-/// @param  in_Type
-///         [in] The type of internal event that has occurred.
-///
-/// @param  in_Process
-///         [in] The process associated with the operation.
-///
-/// @param  in_Event
-///         [in] The completion event that is associated with the
-///         operation that is being notified.
-///
-/// @param  in_UserData
-///         [in] Opaque data that was provided when the callback was
-///         registered. Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-///         simply passes this back to the user so that
-///         they can interpret it as they choose.
-///
-typedef void (*COI_NOTIFICATION_CALLBACK)(
-    COI_NOTIFICATIONS   in_Type,
-    COIPROCESS          in_Process,
-    COIEVENT            in_Event,
-    const   void               *in_UserData);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Register a callback to be invoked to notify that an internal
-/// Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI) event
-/// has occured on the process that is associated with the callback.
-/// Note that it is legal to have more than one callback registered with
-/// a given process but those must all be unique callback pointers.
-/// Note that setting a UserData value with COINotificationCallbackSetContext
-/// will override a value set when registering the callback.
-///
-/// @param  in_Process
-///         [in] Process that the callback is associated with. The callback
-///         will only be invoked to notify an event for this specific process.
-///
-/// @param  in_Callback
-///         [in] Pointer to a user function used to signal a notification.
-///
-/// @param  in_UserData
-///         [in] Opaque data to pass to the callback when it is invoked.
-///
-/// @return COI_SUCCESS if the callback was registered successfully.
-///
-/// @return COI_INVALID_HANDLE if the in_Process parameter does not identify
-///         a valid process.
-///
-/// @return COI_INVALID_POINTER if the in_Callback parameter is NULL.
-///
-/// @return COI_ALREADY_EXISTS if the user attempts to reregister the same
-///         callback for a process.
-///
-COIACCESSAPI
-COIRESULT COIRegisterNotificationCallback(
-    COIPROCESS                  in_Process,
-    COI_NOTIFICATION_CALLBACK   in_Callback,
-    const   void               *in_UserData);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Unregisters a callback, notifications will no longer be signaled.
-///
-/// @param  in_Process
-///         [in] Process that we are unregistering.
-///
-/// @param  in_Callback
-///         [in] The specific callback to unregister.
-///
-/// @return COI_SUCCESS if the callback was unregistered.
-///
-/// @return COI_INVALID_HANDLE if the in_Process parameter does not identify
-///         a valid process.
-///
-/// @return COI_INVALID_POINTER if the in_Callback parameter is NULL.
-///
-/// @return COI_DOES_NOT_EXIST if in_Callback was not previously registered
-///         for in_Process.
-///
-COIACCESSAPI
-COIRESULT COIUnregisterNotificationCallback(
-    COIPROCESS                  in_Process,
-    COI_NOTIFICATION_CALLBACK   in_Callback);
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Set the user data that will be returned in the notification callback.
-/// This data is sticky and per thread so must be set prior to the
-/// Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-/// operation being invoked. If you wish to set the context to be returned
-/// for a specific instance of a user event notification then the context
-/// must be set using this API prior to registering that user event with
-/// COIEventRegisterUserEvent.
-/// The value may be set prior to each Intel(R) Coprocessor Offload
-/// Infrastructure (Intel(R) COI) operation being called to
-/// effectively have a unique UserData per callback.
-/// Setting this value overrides any value that was set when the
-/// callback was registered and will also override any future registrations
-/// that occur.
-///
-/// @param  in_UserData
-///         [in] Opaque data to pass to the callback when it is invoked.
-///         Note that this data is set per thread.
-///
-COIACCESSAPI
-void COINotificationCallbackSetContext(
-    const   void                       *in_UserData);
-
-
-/// @name COIProcessSetCacheSize flags.
-/// Flags are divided into two categories: _MODE_ and _ACTION_
-/// only one of each is valid with each call.
-/// _ACTIONS_ and _MODES_ should be bitwised OR'ed together, i.e. |
-//@{
-
-/// Current set of DEFINED bits for _MODE_, can be used
-/// to clear or check fields, not useful to pass into APIs. Used internally.
-#define COI_CACHE_MODE_MASK                 0x00000007
-
-/// Flag to indicate to keep the previous mode of operation. By default
-/// this would be COI_CACHE_MODE_ONDEMAND_SYNC. As of this release
-/// This is the only mode available. This mode is valid with _ACTION_
-/// flags.
-#define COI_CACHE_MODE_NOCHANGE             0x00000001
-
-/// Mode of operation that indicates that COI will allocate physical
-/// cache memory exactly when it is is needed. COIPipeline execution in
-/// the given process will momentarily block until the allocation request
-/// is completed. This is and has been the default mode.
-#define COI_CACHE_MODE_ONDEMAND_SYNC        0x00000002
-
-/// Not yet implemented. Future mode that will not stall a COIPipeline
-/// but prefer eviction/paging if possible as to immediately execute pipeline.
-/// At the same time, enqueue background requests to allocate extra cache
-/// so as to provide optimze behavior on subsequent runs.
-#define COI_CACHE_MODE_ONDEMAND_ASYNC       0x00000004
-
-
-/// Current set of DEFINED bits for _ACTION_ can be used
-/// to clear fields, but not useful to pass into API's. Used internally.
-#define COI_CACHE_ACTION_MASK               0x00070000
-
-/// No action requested. With this flag specified
-/// it is recommended to NOT provide a out_pCompletion event,
-/// as with this flag, modes and values are immediately set.
-/// This is valid with _MODE_ flags.
-#define COI_CACHE_ACTION_NONE               0x00010000
-
-/// This _ACTION_ flag will immediately attempt to increase the cache
-/// physical memory size to the current set pool size(s). Used to
-/// pre-allocate memory on remote processes, so that runfunction will
-/// enqueue faster. Also may prevent unused buffer eviction from process
-/// reducing overhead in trade for memory allocation cost.
-#define COI_CACHE_ACTION_GROW_NOW           0x00020000
-
-/// Not yet implemented. Future _ACTION_ that will attempt to find unused
-/// allocated cache and free it, with the express goal of reducing the
-/// footprint on the remote process down to the value of the currently set
-/// pool size(s).
-#define COI_CACHE_ACTION_FREE_UNUSED        0x00040000
-
-//@}
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Set the minimum preferred COIProcess cache size. By default these values
-/// are set to 1GB. With the default size of 1GB, Intel(R) COI will only
-/// grow the cache with each new buffer up until the set limit is consumed,
-/// after which, only required to accommodate additional buffers.
-/// This means that after the cache preference is met, a process will act
-/// as conservative as possible for memory consumption.
-/// This API will allow users to adjust memory consumption aggressiveness.
-///
-/// Additional performance may be gained if the user sets a value higher than
-/// default. With high memory consumption user can choose to trade performance
-/// between memory allocation cost and transfer speeds to and from the
-/// remote process. A last consideration is that if buffers are used only
-/// once, it may be best to keep a small cache size, or ensure buffers are
-/// fully destroyed after their use.
-///
-/// Adjusting this value to high may result in out of resource conditions.
-///
-/// @param  in_pProcess
-///         [in] Handle to uniquely identify the process for which the cache
-///         is to be adjusted.
-///
-/// @param  in_HugePagePoolSize
-///         [in] The suggested size of the remote huge page cache in bytes.
-///         This value defaults to 1GB. A process will only allocate cache
-///         memory if the current cache is smaller than this limit, or it is
-///         absolutely necessary to fulfill a request, but preferring to
-///         re-use existing memory and paging unused buffers back to the host
-///         Increasing this value will cause a process to
-///         aggressively allocate memory on demand up to this value, before
-///         evicting/paging memory from the remote process back to the host
-///         process.
-///
-///         The net result is that memory consumption is increased, but the
-///         user can 'cache' more buffers on the remote process. More time
-///         may be spent during first use of run functions as more memory
-///         may be allocated, but subsequent run functions will likely
-///         see an increase in queueing performance as the data is already
-///         valid in the remote process.
-///
-///         Users should tune this value for optimum performance balanced
-///         against memory consumption. This value does not affect 4K page
-///         cache. Please use in_SmallPagePoolSize for 4K pages.
-///
-/// @param  in_HugeFlags
-///         [in] Flags to select mode or action for huge page cache. One _MODE_
-///         and one _ACTION_ flag are specified together. Default _MODE_ is
-///         COI_CACHE_MODE_ONDEMAND_SYNC. See all COI_CACHE_MODE_* and
-///         COI_CACHE_ACTION_* for other modes and actions. Default _ACTION_
-///         is COI_CACHE_ACTION_NONE.
-///
-/// @param  in_SmallPagePoolSize
-///         [in] The suggested size of the remote 4K cache in bytes. Same
-///         function as in_HugePagePoolSize but affecting only 4K page cache.
-///         Defaults to 1GB.
-///
-/// @param  in_SmallFlags
-///         [in] Flags to select mode or action for 4K page cache. One _MODE_
-///         and one _ACTION_ flag are be specified together. Default _MODE_ is
-///         COI_CACHE_MODE_ONDEMAND_SYNC. See all COI_CACHE_MODE_* and
-///         COI_CACHE_ACTION_* for other modes and actions.
-///
-/// @param  in_NumDependencies
-///         [in] The number of dependencies specified in the in_pDependencies
-///         array. This may be 0 if the caller does not want the call to
-///         wait for any events to be signaled.
-///
-/// @param  in_pDependencies
-///         [in] An optional array of handles to previously created COIEVENT
-///         objects that this operation will wait for before starting.
-///         This allows the user to create dependencies between asynchronous
-///         calls and other operations such as run functions. The user may
-///         pass in NULL if they do not wish to wait for any dependencies.
-///         Only useful with _ACTION_ flags, otherwise there is no action
-///         to wait on. All _MODE_ changes happen immediately.
-///
-/// @param  out_pCompletion
-///         [out] An optional pointer to a COIEVENT object that will be
-///         signaled when the operation is complete. The user may pass in
-///         NULL if the user wants the operation to block until completed.
-///         Note: This flag is not useful unless paired with a
-///               valid _ACTION_ flag.
-///
-/// @return COI_SUCCESS if the cache was successfully adjusted. In case of
-///         valid flags including _ACTION_, if out_pCompletion was specified,
-///         this does not indicate the operation succeeded, but rather only
-///         it was successfully queued. For further information see
-///         that COIEventWait() for getting return values.
-///
-/// @return COI_INVALID_HANDLE if the in_Process handle passed in was invalid.
-///
-/// @return COI_RESOURCE_EXHAUSTED if no more cache can be created,
-///         possibly, but not necessarily because a pool size was set to large
-///         and COI_CACHE_ACTION_GROW_NOW was specified.
-///
-/// @return COI_NOT_SUPPORTED if more than one _MODE_ or _ACTION_ was
-///         specified.
-///
-/// @return COI_NOT_SUPPORTED if an invalid _MODE_ or _ACTION_ was
-///         specified.
-///
-/// @return COI_ARGUMENT_MISMATCH if in_NumDependencies is non-zero while
-///         in_pDependencies was passed in as NULL.
-///
-/// @return COI_OUT_OF_RANGE if one of the pool sizes was invalid.
-///
-/// @return COI_PROCESS_DIED if at some point during the mode or action the
-///         remote process terminated abnormally. Possible due to an out of
-///         memory condition.
-///
-COIACCESSAPI
-COIRESULT COIProcessSetCacheSize(
-    const   COIPROCESS          in_Process,
-    const   uint64_t            in_HugePagePoolSize,
-    const   uint32_t            in_HugeFlags,
-    const   uint64_t            in_SmallPagePoolSize,
-    const   uint32_t            in_SmallFlags,
-    uint32_t            in_NumDependencies,
-    const   COIEVENT           *in_pDependencies,
-    COIEVENT           *out_pCompletion);
-
-
-//////////////////////////////////////////////////////////////////////////////
-/// These are the different modes of operation that can be selected for
-/// the COI_DMA_MODE by the API COIProcessConfigureDMA. They allow the user
-/// to customize the DMA layer behaviour.
-///
-typedef enum COI_DMA_MODE
-{
-    /// This mode will use one common logical channel for all DMA operations.
-    /// Using this mode requires a channel count of one.
-    COI_DMA_MODE_SINGLE = 0,
-
-    /// This mode will dedicate on logical channel for write operations
-    /// and one logical channel for read operations. Requires a minimum of
-    /// two logical channels, if more than two are used they are ignored
-    /// in the current implementation.
-    COI_DMA_MODE_READ_WRITE,
-
-    /// This mode is not yet implemented and is a placeholder for future
-    /// releases. Check here for updates when it is implemented.
-    /// Will require a minimum of two logical channels and a maximum
-    /// of four channels.
-    COI_DMA_MODE_ROUND_ROBIN,
-
-    /// Reserved for internal use.
-    COI_DMA_RESERVED
-} COI_DMA_MODE;
-
-
-//////////////////////////////////////////////////////////////////////////////
-///
-/// Set the number and mode of the physical DMA channels that each COIProcess
-/// will establish during COIProcess creation.
-///
-/// By default the runtime will operate in COI_DMA_MODE_SINGLE mode.
-/// This API is intended to be called before COIProcessCreateFromFile() or
-/// COIProcessCreateFromMemory(). The values are stored globally and will
-/// be used by the creation API's. It is possible to call this API once
-/// before each new COIPROCESS is created and thus have each COIPROCESS
-/// run in different modes. It is not possible to change the mode on an
-/// existing COIPROCESS.
-///
-/// The larger number of logical connections requested will impose a
-/// performance penalty on the COIBUFFER creation API's, but unlock better
-/// parallelism for DMA transfers during runtime.
-///
-/// A maximum value of four (4) channels is available today, but current
-/// implementation will only take advantage of two DMA channels. The option
-/// is left available for programmers to use in case future implementations
-/// provide performance advantages.
-///
-/// It is important to note that for some operations that enabling this
-/// options may increase parallelism and require the user to enforce
-/// explicit dependencies for operations on the same buffers. See documentation
-/// for COIBufferRead/Write/Copy operations for more details.
-///
-/// @param  in_Channels
-///         [in] Number of logical connections to the remote COIProcess that
-///         the runtime will establish and use for DMA transfer requests.
-///         Will be ignored if in_Mode is set to COI_DMA_MODE_SINGLE.
-///
-/// @param  in_Mode
-///         [in] The mode of operation in which the runtime will use the
-///         logical connections to the remote COIProcess.
-///
-/// @return COI_SUCCESS if the mode and number of DMA channels requested
-///         is valid. The actual create creation of channels and modes is
-///         done during COIProcessCreateFromFile() and
-///         COIProcessCreateFromMemory().
-///
-/// @return COI_NOT_SUPPORTED if an invalid value for in_Channels or
-///         in_Mode was requested.
-///
-/// @return COI_ARGUMENT_MISMATCH if an invalid combination of in_Channels and
-///          in_Mode was requested. Example could be 2 channels with
-///          COI_DMA_MODE_SINGLE, or 1 channel with COI_DMA_MODE_READ_WRITE.
-///
-COIACCESSAPI
-COIRESULT COIProcessConfigureDMA(
-    const   uint64_t            in_Channels,
-    const   COI_DMA_MODE        in_Mode);
-
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* _COIPROCESS_SOURCE_H */
-
-/*! @} */
diff --git a/liboffloadmic/liboffloadmic_host.spec.in b/liboffloadmic/liboffloadmic_host.spec.in
deleted file mode 100644 (file)
index 3fd12e4..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# This spec file is read by gcc when linking.  It is used to specify the
-# standard libraries we need in order to link with liboffloadmic_host.
-*link_offloadmic_host: @link_offloadmic_host@
diff --git a/liboffloadmic/liboffloadmic_target.spec.in b/liboffloadmic/liboffloadmic_target.spec.in
deleted file mode 100644 (file)
index d679686..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# This spec file is read by gcc when linking.  It is used to specify the
-# standard libraries we need in order to link with liboffloadmic_target.
-*link_offloadmic_target: @link_offloadmic_target@
diff --git a/liboffloadmic/plugin/Makefile.am b/liboffloadmic/plugin/Makefile.am
deleted file mode 100644 (file)
index 7caea78..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-# Plugin for offload execution on Intel MIC devices.
-#
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
-#
-# Contributed by Ilya Verbin <ilya.verbin@intel.com> and
-# Andrey Turetskiy <andrey.turetskiy@intel.com>.
-#
-# This file is part of the GNU Offloading and Multi Processing Library
-# (libgomp).
-#
-# Libgomp is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-# more details.
-#
-# Under Section 7 of GPL version 3, you are granted additional
-# permissions described in the GCC Runtime Library Exception, version
-# 3.1, as published by the Free Software Foundation.
-#
-# You should have received a copy of the GNU General Public License and
-# a copy of the GCC Runtime Library Exception along with this program;
-# see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-# <http://www.gnu.org/licenses/>.
-
-
-AUTOMAKE_OPTIONS = foreign
-ACLOCAL_AMFLAGS = -I ../.. -I ../../config
-
-# Directories
-build_dir = $(top_builddir)
-source_dir = $(top_srcdir)
-coi_inc_dir = $(top_srcdir)/../include/coi
-include_src_dir = $(top_srcdir)/../../include
-libgomp_src_dir = $(top_srcdir)/../../libgomp
-libgomp_dir = $(build_dir)/../../libgomp
-liboffload_src_dir = $(top_srcdir)/../runtime
-liboffload_dir = $(top_builddir)/..
-
-# May be used by toolexeclibdir.
-gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../../gcc/BASE-VER)
-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/include
-# Search for main_target_image.h in these directories
-target_prefix_dir = $(libdir)/gcc/$(accel_target)/$(gcc_version)$(MULTISUBDIR)
-target_build_dir = $(accel_search_dir)/$(accel_target)$(MULTISUBDIR)/liboffloadmic/plugin
-target_install_dir = $(accel_search_dir)/lib/gcc/$(accel_target)/$(gcc_version)$(MULTISUBDIR)
-
-if PLUGIN_HOST
-  toolexeclib_LTLIBRARIES = libgomp-plugin-intelmic.la
-  libgomp_plugin_intelmic_la_SOURCES = libgomp-plugin-intelmic.cpp
-  libgomp_plugin_intelmic_la_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_src_dir) -I$(libgomp_dir) -I$(include_src_dir) -I$(target_prefix_dir)/include -I$(target_build_dir) -I$(target_install_dir)/include
-  libgomp_plugin_intelmic_la_LDFLAGS = -L$(liboffload_dir)/.libs -loffloadmic_host -version-info 1:0:0
-else # PLUGIN_TARGET
-  plugin_includedir = $(libsubincludedir)
-  plugin_include_HEADERS = main_target_image.h
-  AM_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=0 -I$(coi_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_dir)
-  AM_CXXFLAGS = $(CXXFLAGS)
-  AM_LDFLAGS = -L$(liboffload_dir)/.libs -L$(libgomp_dir)/.libs -loffloadmic_target -lcoi_device -lgomp -rdynamic
-endif
-
-main_target_image.h: offload_target_main
-       @echo -n "const int image_size = " > $@
-       @stat -c '%s' $< >> $@
-       @echo ";" >> $@
-       @echo "struct MainTargetImage {" >> $@
-       @echo "  int64_t size;" >> $@
-       @echo "  char name[sizeof \"offload_target_main\"];" >> $@
-       @echo "  uint8_t data[image_size];" >> $@
-       @echo "};" >> $@
-       @echo "extern \"C\" const MainTargetImage main_target_image = {" >> $@
-       @echo "  image_size, \"offload_target_main\"," >> $@
-       @cat $< | xxd -include >> $@
-       @echo "};" >> $@
-
-offload_target_main: $(liboffload_dir)/ofldbegin.o offload_target_main.o $(liboffload_dir)/ofldend.o
-       $(CXX) $(AM_LDFLAGS) $^ -o $@
-
-offload_target_main.o: offload_target_main.cpp
-       $(CXX) $(AM_CXXFLAGS) $(AM_CPPFLAGS) -c $< -o $@
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
-       "AR_FLAGS=$(AR_FLAGS)" \
-       "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-       "CFLAGS=$(CFLAGS)" \
-       "CXXFLAGS=$(CXXFLAGS)" \
-       "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
-       "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-       "INSTALL=$(INSTALL)" \
-       "INSTALL_DATA=$(INSTALL_DATA)" \
-       "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-       "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-       "JC1FLAGS=$(JC1FLAGS)" \
-       "LDFLAGS=$(LDFLAGS)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-       "MAKE=$(MAKE)" \
-       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-       "PICFLAG=$(PICFLAG)" \
-       "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
-       "SHELL=$(SHELL)" \
-       "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
-       "exec_prefix=$(exec_prefix)" \
-       "infodir=$(infodir)" \
-       "libdir=$(libdir)" \
-       "prefix=$(prefix)" \
-       "includedir=$(includedir)" \
-       "AR=$(AR)" \
-       "AS=$(AS)" \
-       "LD=$(LD)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "NM=$(NM)" \
-       "PICFLAG=$(PICFLAG)" \
-       "RANLIB=$(RANLIB)" \
-       "DESTDIR=$(DESTDIR)"
-
-MAKEOVERRIDES =
-
-include $(top_srcdir)/../../multilib.am
diff --git a/liboffloadmic/plugin/Makefile.in b/liboffloadmic/plugin/Makefile.in
deleted file mode 100644 (file)
index 8d5ad00..0000000
+++ /dev/null
@@ -1,840 +0,0 @@
-# Makefile.in generated by automake 1.15.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994-2017 Free Software Foundation, Inc.
-
-# This Makefile.in 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.
-
-@SET_MAKE@
-
-# Plugin for offload execution on Intel MIC devices.
-#
-# Copyright (C) 2014-2017 Free Software Foundation, Inc.
-#
-# Contributed by Ilya Verbin <ilya.verbin@intel.com> and
-# Andrey Turetskiy <andrey.turetskiy@intel.com>.
-#
-# This file is part of the GNU Offloading and Multi Processing Library
-# (libgomp).
-#
-# Libgomp is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-# more details.
-#
-# Under Section 7 of GPL version 3, you are granted additional
-# permissions described in the GCC Runtime Library Exception, version
-# 3.1, as published by the Free Software Foundation.
-#
-# You should have received a copy of the GNU General Public License and
-# a copy of the GCC Runtime Library Exception along with this program;
-# see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-# <http://www.gnu.org/licenses/>.
-
-
-VPATH = @srcdir@
-am__is_gnu_make = { \
-  if test -z '$(MAKELEVEL)'; then \
-    false; \
-  elif test -n '$(MAKE_HOST)'; then \
-    true; \
-  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
-    true; \
-  else \
-    false; \
-  fi; \
-}
-am__make_running_with_option = \
-  case $${target_option-} in \
-      ?) ;; \
-      *) echo "am__make_running_with_option: internal error: invalid" \
-              "target option '$${target_option-}' specified" >&2; \
-         exit 1;; \
-  esac; \
-  has_opt=no; \
-  sane_makeflags=$$MAKEFLAGS; \
-  if $(am__is_gnu_make); then \
-    sane_makeflags=$$MFLAGS; \
-  else \
-    case $$MAKEFLAGS in \
-      *\\[\ \  ]*) \
-        bs=\\; \
-        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
-          | sed "s/$$bs$$bs[$$bs $$bs  ]*//g"`;; \
-    esac; \
-  fi; \
-  skip_next=no; \
-  strip_trailopt () \
-  { \
-    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
-  }; \
-  for flg in $$sane_makeflags; do \
-    test $$skip_next = yes && { skip_next=no; continue; }; \
-    case $$flg in \
-      *=*|--*) continue;; \
-        -*I) strip_trailopt 'I'; skip_next=yes;; \
-      -*I?*) strip_trailopt 'I';; \
-        -*O) strip_trailopt 'O'; skip_next=yes;; \
-      -*O?*) strip_trailopt 'O';; \
-        -*l) strip_trailopt 'l'; skip_next=yes;; \
-      -*l?*) strip_trailopt 'l';; \
-      -[dEDm]) skip_next=yes;; \
-      -[JT]) skip_next=yes;; \
-    esac; \
-    case $$flg in \
-      *$$target_option*) has_opt=yes; break;; \
-    esac; \
-  done; \
-  test $$has_opt = yes
-am__make_dryrun = (target_option=n; $(am__make_running_with_option))
-am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-target_triplet = @target@
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/../../config/acx.m4 \
-       $(top_srcdir)/../../config/depstand.m4 \
-       $(top_srcdir)/../../config/toolexeclibdir.m4 \
-       $(top_srcdir)/../../config/lead-dot.m4 \
-       $(top_srcdir)/../../config/multi.m4 \
-       $(top_srcdir)/../../config/override.m4 \
-       $(top_srcdir)/../../libtool.m4 \
-       $(top_srcdir)/../../ltoptions.m4 \
-       $(top_srcdir)/../../ltsugar.m4 \
-       $(top_srcdir)/../../ltversion.m4 \
-       $(top_srcdir)/../../lt~obsolete.m4 $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
-       $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
-       $(am__configure_deps) $(am__plugin_include_HEADERS_DIST)
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno config.status.lineno
-mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
-    *) f=$$p;; \
-  esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
-  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
-  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
-  for p in $$list; do echo "$$p $$p"; done | \
-  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
-  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
-    if (++n[$$2] == $(am__install_max)) \
-      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
-    END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
-  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
-  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
-  }
-am__installdirs = "$(DESTDIR)$(toolexeclibdir)" \
-       "$(DESTDIR)$(plugin_includedir)"
-LTLIBRARIES = $(toolexeclib_LTLIBRARIES)
-libgomp_plugin_intelmic_la_LIBADD =
-@PLUGIN_HOST_TRUE@am_libgomp_plugin_intelmic_la_OBJECTS = libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo
-libgomp_plugin_intelmic_la_OBJECTS =  \
-       $(am_libgomp_plugin_intelmic_la_OBJECTS)
-AM_V_lt = $(am__v_lt_@AM_V@)
-am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
-am__v_lt_0 = --silent
-am__v_lt_1 = 
-libgomp_plugin_intelmic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \
-       $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CXXLD) \
-       $(AM_CXXFLAGS) $(CXXFLAGS) \
-       $(libgomp_plugin_intelmic_la_LDFLAGS) $(LDFLAGS) -o $@
-@PLUGIN_HOST_TRUE@am_libgomp_plugin_intelmic_la_rpath = -rpath \
-@PLUGIN_HOST_TRUE@     $(toolexeclibdir)
-AM_V_P = $(am__v_P_@AM_V@)
-am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
-am__v_P_0 = false
-am__v_P_1 = :
-AM_V_GEN = $(am__v_GEN_@AM_V@)
-am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
-am__v_GEN_0 = @echo "  GEN     " $@;
-am__v_GEN_1 = 
-AM_V_at = $(am__v_at_@AM_V@)
-am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
-am__v_at_0 = @
-am__v_at_1 = 
-DEFAULT_INCLUDES = -I.@am__isrc@
-depcomp = $(SHELL) $(top_srcdir)/../../depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-       $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \
-       $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
-       $(AM_CXXFLAGS) $(CXXFLAGS)
-AM_V_CXX = $(am__v_CXX_@AM_V@)
-am__v_CXX_ = $(am__v_CXX_@AM_DEFAULT_V@)
-am__v_CXX_0 = @echo "  CXX     " $@;
-am__v_CXX_1 = 
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \
-       $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
-       $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-AM_V_CXXLD = $(am__v_CXXLD_@AM_V@)
-am__v_CXXLD_ = $(am__v_CXXLD_@AM_DEFAULT_V@)
-am__v_CXXLD_0 = @echo "  CXXLD   " $@;
-am__v_CXXLD_1 = 
-SOURCES = $(libgomp_plugin_intelmic_la_SOURCES)
-am__can_run_installinfo = \
-  case $$AM_UPDATE_INFO_DIR in \
-    n|no|NO) false;; \
-    *) (install-info --version) >/dev/null 2>&1;; \
-  esac
-am__plugin_include_HEADERS_DIST = main_target_image.h
-HEADERS = $(plugin_include_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-CSCOPE = cscope
-AM_RECURSIVE_TARGETS = cscope
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-accel_search_dir = @accel_search_dir@
-accel_target = @accel_target@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-get_gcc_base_ver = @get_gcc_base_ver@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-multi_basedir = @multi_basedir@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target = @target@
-target_alias = @target_alias@
-target_cpu = @target_cpu@
-target_os = @target_os@
-target_vendor = @target_vendor@
-toolexecdir = @toolexecdir@
-toolexeclibdir = @toolexeclibdir@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-AUTOMAKE_OPTIONS = foreign
-ACLOCAL_AMFLAGS = -I ../.. -I ../../config
-
-# Directories
-build_dir = $(top_builddir)
-source_dir = $(top_srcdir)
-coi_inc_dir = $(top_srcdir)/../include/coi
-include_src_dir = $(top_srcdir)/../../include
-libgomp_src_dir = $(top_srcdir)/../../libgomp
-libgomp_dir = $(build_dir)/../../libgomp
-liboffload_src_dir = $(top_srcdir)/../runtime
-liboffload_dir = $(top_builddir)/..
-
-# May be used by toolexeclibdir.
-gcc_version := $(shell @get_gcc_base_ver@ $(top_srcdir)/../../gcc/BASE-VER)
-libsubincludedir = $(libdir)/gcc/$(target_alias)/$(gcc_version)$(MULTISUBDIR)/include
-# Search for main_target_image.h in these directories
-target_prefix_dir = $(libdir)/gcc/$(accel_target)/$(gcc_version)$(MULTISUBDIR)
-target_build_dir = $(accel_search_dir)/$(accel_target)$(MULTISUBDIR)/liboffloadmic/plugin
-target_install_dir = $(accel_search_dir)/lib/gcc/$(accel_target)/$(gcc_version)$(MULTISUBDIR)
-@PLUGIN_HOST_TRUE@toolexeclib_LTLIBRARIES = libgomp-plugin-intelmic.la
-@PLUGIN_HOST_TRUE@libgomp_plugin_intelmic_la_SOURCES = libgomp-plugin-intelmic.cpp
-@PLUGIN_HOST_TRUE@libgomp_plugin_intelmic_la_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_src_dir) -I$(libgomp_dir) -I$(include_src_dir) -I$(target_prefix_dir)/include -I$(target_build_dir) -I$(target_install_dir)/include
-@PLUGIN_HOST_TRUE@libgomp_plugin_intelmic_la_LDFLAGS = -L$(liboffload_dir)/.libs -loffloadmic_host -version-info 1:0:0
-@PLUGIN_HOST_FALSE@plugin_includedir = $(libsubincludedir)
-@PLUGIN_HOST_FALSE@plugin_include_HEADERS = main_target_image.h
-@PLUGIN_HOST_FALSE@AM_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=0 -I$(coi_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_dir)
-@PLUGIN_HOST_FALSE@AM_CXXFLAGS = $(CXXFLAGS)
-@PLUGIN_HOST_FALSE@AM_LDFLAGS = -L$(liboffload_dir)/.libs -L$(libgomp_dir)/.libs -loffloadmic_target -lcoi_device -lgomp -rdynamic
-
-# Work around what appears to be a GNU make bug handling MAKEFLAGS
-# values defined in terms of make variables, as is the case for CC and
-# friends when we are called from the top level Makefile.
-AM_MAKEFLAGS = \
-       "AR_FLAGS=$(AR_FLAGS)" \
-       "CC_FOR_BUILD=$(CC_FOR_BUILD)" \
-       "CFLAGS=$(CFLAGS)" \
-       "CXXFLAGS=$(CXXFLAGS)" \
-       "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \
-       "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \
-       "INSTALL=$(INSTALL)" \
-       "INSTALL_DATA=$(INSTALL_DATA)" \
-       "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \
-       "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \
-       "JC1FLAGS=$(JC1FLAGS)" \
-       "LDFLAGS=$(LDFLAGS)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \
-       "MAKE=$(MAKE)" \
-       "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \
-       "PICFLAG=$(PICFLAG)" \
-       "PICFLAG_FOR_TARGET=$(PICFLAG_FOR_TARGET)" \
-       "SHELL=$(SHELL)" \
-       "RUNTESTFLAGS=$(RUNTESTFLAGS)" \
-       "exec_prefix=$(exec_prefix)" \
-       "infodir=$(infodir)" \
-       "libdir=$(libdir)" \
-       "prefix=$(prefix)" \
-       "includedir=$(includedir)" \
-       "AR=$(AR)" \
-       "AS=$(AS)" \
-       "LD=$(LD)" \
-       "LIBCFLAGS=$(LIBCFLAGS)" \
-       "NM=$(NM)" \
-       "PICFLAG=$(PICFLAG)" \
-       "RANLIB=$(RANLIB)" \
-       "DESTDIR=$(DESTDIR)"
-
-MAKEOVERRIDES = 
-MULTISRCTOP = 
-MULTIBUILDTOP = 
-MULTIDIRS = 
-MULTISUBDIR = 
-MULTIDO = true
-MULTICLEAN = true
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .cpp .lo .o .obj
-am--refresh: Makefile
-       @:
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/../../multilib.am $(am__configure_deps)
-       @for dep in $?; do \
-         case '$(am__configure_deps)' in \
-           *$$dep*) \
-             echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
-             $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
-               && exit 0; \
-             exit 1;; \
-         esac; \
-       done; \
-       echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
-       $(am__cd) $(top_srcdir) && \
-         $(AUTOMAKE) --foreign Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
-       @case '$?' in \
-         *config.status*) \
-           echo ' $(SHELL) ./config.status'; \
-           $(SHELL) ./config.status;; \
-         *) \
-           echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
-           cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
-       esac;
-$(top_srcdir)/../../multilib.am $(am__empty):
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
-       $(SHELL) ./config.status --recheck
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-       $(am__cd) $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-       $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-$(am__aclocal_m4_deps):
-
-install-toolexeclibLTLIBRARIES: $(toolexeclib_LTLIBRARIES)
-       @$(NORMAL_INSTALL)
-       @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
-       list2=; for p in $$list; do \
-         if test -f $$p; then \
-           list2="$$list2 $$p"; \
-         else :; fi; \
-       done; \
-       test -z "$$list2" || { \
-         echo " $(MKDIR_P) '$(DESTDIR)$(toolexeclibdir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(toolexeclibdir)" || exit 1; \
-         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(toolexeclibdir)'"; \
-         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(toolexeclibdir)"; \
-       }
-
-uninstall-toolexeclibLTLIBRARIES:
-       @$(NORMAL_UNINSTALL)
-       @list='$(toolexeclib_LTLIBRARIES)'; test -n "$(toolexeclibdir)" || list=; \
-       for p in $$list; do \
-         $(am__strip_dir) \
-         echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(toolexeclibdir)/$$f'"; \
-         $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(toolexeclibdir)/$$f"; \
-       done
-
-clean-toolexeclibLTLIBRARIES:
-       -test -z "$(toolexeclib_LTLIBRARIES)" || rm -f $(toolexeclib_LTLIBRARIES)
-       @list='$(toolexeclib_LTLIBRARIES)'; \
-       locs=`for p in $$list; do echo $$p; done | \
-             sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
-             sort -u`; \
-       test -z "$$locs" || { \
-         echo rm -f $${locs}; \
-         rm -f $${locs}; \
-       }
-
-libgomp-plugin-intelmic.la: $(libgomp_plugin_intelmic_la_OBJECTS) $(libgomp_plugin_intelmic_la_DEPENDENCIES) $(EXTRA_libgomp_plugin_intelmic_la_DEPENDENCIES) 
-       $(AM_V_CXXLD)$(libgomp_plugin_intelmic_la_LINK) $(am_libgomp_plugin_intelmic_la_rpath) $(libgomp_plugin_intelmic_la_OBJECTS) $(libgomp_plugin_intelmic_la_LIBADD) $(LIBS)
-
-mostlyclean-compile:
-       -rm -f *.$(OBJEXT)
-
-distclean-compile:
-       -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.Plo@am__quote@
-
-.cpp.o:
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ $<
-
-.cpp.obj:
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
-
-.cpp.lo:
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
-
-libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo: libgomp-plugin-intelmic.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgomp_plugin_intelmic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo -MD -MP -MF $(DEPDIR)/libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.Tpo -c -o libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo `test -f 'libgomp-plugin-intelmic.cpp' || echo '$(srcdir)/'`libgomp-plugin-intelmic.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) $(DEPDIR)/libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.Tpo $(DEPDIR)/libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='libgomp-plugin-intelmic.cpp' object='libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgomp_plugin_intelmic_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo `test -f 'libgomp-plugin-intelmic.cpp' || echo '$(srcdir)/'`libgomp-plugin-intelmic.cpp
-
-mostlyclean-libtool:
-       -rm -f *.lo
-
-clean-libtool:
-       -rm -rf .libs _libs
-
-distclean-libtool:
-       -rm -f libtool config.lt
-install-plugin_includeHEADERS: $(plugin_include_HEADERS)
-       @$(NORMAL_INSTALL)
-       @list='$(plugin_include_HEADERS)'; test -n "$(plugin_includedir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(plugin_includedir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(plugin_includedir)" || exit 1; \
-       fi; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         echo "$$d$$p"; \
-       done | $(am__base_list) | \
-       while read files; do \
-         echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(plugin_includedir)'"; \
-         $(INSTALL_HEADER) $$files "$(DESTDIR)$(plugin_includedir)" || exit $$?; \
-       done
-
-uninstall-plugin_includeHEADERS:
-       @$(NORMAL_UNINSTALL)
-       @list='$(plugin_include_HEADERS)'; test -n "$(plugin_includedir)" || list=; \
-       files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
-       dir='$(DESTDIR)$(plugin_includedir)'; $(am__uninstall_files_from_dir)
-
-ID: $(am__tagged_files)
-       $(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-am
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-       set x; \
-       here=`pwd`; \
-       $(am__define_uniq_tagged_files); \
-       shift; \
-       if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-         test -n "$$unique" || unique=$$empty_fix; \
-         if test $$# -gt 0; then \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             "$$@" $$unique; \
-         else \
-           $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-             $$unique; \
-         fi; \
-       fi
-ctags: ctags-am
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-       $(am__define_uniq_tagged_files); \
-       test -z "$(CTAGS_ARGS)$$unique" \
-         || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-            $$unique
-
-GTAGS:
-       here=`$(am__cd) $(top_builddir) && pwd` \
-         && $(am__cd) $(top_srcdir) \
-         && gtags -i $(GTAGS_ARGS) "$$here"
-cscope: cscope.files
-       test ! -s cscope.files \
-         || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
-clean-cscope:
-       -rm -f cscope.files
-cscope.files: clean-cscope cscopelist
-cscopelist: cscopelist-am
-
-cscopelist-am: $(am__tagged_files)
-       list='$(am__tagged_files)'; \
-       case "$(srcdir)" in \
-         [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-         *) sdir=$(subdir)/$(srcdir) ;; \
-       esac; \
-       for i in $$list; do \
-         if test -f "$$i"; then \
-           echo "$(subdir)/$$i"; \
-         else \
-           echo "$$sdir/$$i"; \
-         fi; \
-       done >> $(top_builddir)/cscope.files
-
-distclean-tags:
-       -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-       -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
-check-am: all-am
-check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS) all-local
-installdirs:
-       for dir in "$(DESTDIR)$(toolexeclibdir)" "$(DESTDIR)$(plugin_includedir)"; do \
-         test -z "$$dir" || $(MKDIR_P) "$$dir"; \
-       done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
-       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
-       if test -z '$(STRIP)'; then \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-             install; \
-       else \
-         $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
-           install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
-           "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
-       fi
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
-       -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-       -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
-       @echo "This command is intended for maintainers to use"
-       @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-generic clean-libtool clean-local \
-       clean-toolexeclibLTLIBRARIES mostlyclean-am
-
-distclean: distclean-am
-       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
-       distclean-libtool distclean-local distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am: install-plugin_includeHEADERS
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-exec-local install-toolexeclibLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
-       -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-       -rm -rf $(top_srcdir)/autom4te.cache
-       -rm -rf ./$(DEPDIR)
-       -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic \
-       maintainer-clean-local
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
-       mostlyclean-libtool mostlyclean-local
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-plugin_includeHEADERS \
-       uninstall-toolexeclibLTLIBRARIES
-
-.MAKE: install-am install-strip
-
-.PHONY: CTAGS GTAGS TAGS all all-am all-local am--refresh check \
-       check-am clean clean-cscope clean-generic clean-libtool \
-       clean-local clean-toolexeclibLTLIBRARIES cscope cscopelist-am \
-       ctags ctags-am distclean distclean-compile distclean-generic \
-       distclean-libtool distclean-local distclean-tags dvi dvi-am \
-       html html-am info info-am install install-am install-data \
-       install-data-am install-dvi install-dvi-am install-exec \
-       install-exec-am install-exec-local install-html \
-       install-html-am install-info install-info-am install-man \
-       install-pdf install-pdf-am install-plugin_includeHEADERS \
-       install-ps install-ps-am install-strip \
-       install-toolexeclibLTLIBRARIES installcheck installcheck-am \
-       installdirs maintainer-clean maintainer-clean-generic \
-       maintainer-clean-local mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool mostlyclean-local pdf \
-       pdf-am ps ps-am tags tags-am uninstall uninstall-am \
-       uninstall-plugin_includeHEADERS \
-       uninstall-toolexeclibLTLIBRARIES
-
-.PRECIOUS: Makefile
-
-
-main_target_image.h: offload_target_main
-       @echo -n "const int image_size = " > $@
-       @stat -c '%s' $< >> $@
-       @echo ";" >> $@
-       @echo "struct MainTargetImage {" >> $@
-       @echo "  int64_t size;" >> $@
-       @echo "  char name[sizeof \"offload_target_main\"];" >> $@
-       @echo "  uint8_t data[image_size];" >> $@
-       @echo "};" >> $@
-       @echo "extern \"C\" const MainTargetImage main_target_image = {" >> $@
-       @echo "  image_size, \"offload_target_main\"," >> $@
-       @cat $< | xxd -include >> $@
-       @echo "};" >> $@
-
-offload_target_main: $(liboffload_dir)/ofldbegin.o offload_target_main.o $(liboffload_dir)/ofldend.o
-       $(CXX) $(AM_LDFLAGS) $^ -o $@
-
-offload_target_main.o: offload_target_main.cpp
-       $(CXX) $(AM_CXXFLAGS) $(AM_CPPFLAGS) -c $< -o $@
-
-# GNU Make needs to see an explicit $(MAKE) variable in the command it
-# runs to enable its job server during parallel builds.  Hence the
-# comments below.
-all-multi:
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=all multi-do # $(MAKE)
-install-multi:
-       $(MULTIDO) $(AM_MAKEFLAGS) DO=install multi-do # $(MAKE)
-mostlyclean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=mostlyclean multi-clean # $(MAKE)
-clean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=clean multi-clean # $(MAKE)
-distclean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=distclean multi-clean # $(MAKE)
-maintainer-clean-multi:
-       $(MULTICLEAN) $(AM_MAKEFLAGS) DO=maintainer-clean multi-clean # $(MAKE)
-
-.MAKE .PHONY: all-multi clean-multi distclean-multi install-am \
-             install-multi maintainer-clean-multi mostlyclean-multi
-
-install-exec-local: install-multi
-
-all-local: all-multi
-mostlyclean-local: mostlyclean-multi
-clean-local: clean-multi
-distclean-local: distclean-multi
-maintainer-clean-local: maintainer-clean-multi
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/liboffloadmic/plugin/aclocal.m4 b/liboffloadmic/plugin/aclocal.m4
deleted file mode 100644 (file)
index 9fa1d12..0000000
+++ /dev/null
@@ -1,1180 +0,0 @@
-# generated automatically by aclocal 1.15.1 -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 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.69],,
-[m4_warning([this file was generated for autoconf 2.69.
-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'.])])
-
-# Copyright (C) 2002-2017 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.15'
-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.15.1], [],
-      [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.15.1])dnl
-m4_ifndef([AC_AUTOCONF_VERSION],
-  [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
-
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
-
-# Copyright (C) 2001-2017 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-2017 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-2017 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-2017 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.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`AS_DIRNAME("$mf")`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`AS_DIRNAME(["$file"])`
-      AS_MKDIR_P([$dirpart/$fdir])
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
-])# _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.  FIXME.  This creates each '.P' file that we will
-# 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" ac_aux_dir="$ac_aux_dir"])
-])
-
-# Do all the work for Automake.                             -*- Autoconf -*-
-
-# Copyright (C) 1996-2017 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
-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_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([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:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://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
-])
-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: <http://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-2017 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])])
-
-# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
-# From Jim Meyering
-
-# Copyright (C) 1996-2017 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-2017 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 to see how make treats includes.
-AC_DEFUN([AM_MAKE_INCLUDE],
-[am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-       @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-AC_MSG_CHECKING([for style of include used by $am_make])
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-AC_SUBST([am__include])
-AC_SUBST([am__quote])
-AC_MSG_RESULT([$_am_result])
-rm -f confinc confmf
-])
-
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
-
-# Copyright (C) 1997-2017 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
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-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-2017 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-2017 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-2017 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-2017 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-2017 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-2017 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-2017 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-2017 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([../../config/acx.m4])
-m4_include([../../config/depstand.m4])
-m4_include([../../config/toolexeclibdir.m4])
-m4_include([../../config/lead-dot.m4])
-m4_include([../../config/multi.m4])
-m4_include([../../config/override.m4])
-m4_include([../../libtool.m4])
-m4_include([../../ltoptions.m4])
-m4_include([../../ltsugar.m4])
-m4_include([../../ltversion.m4])
-m4_include([../../lt~obsolete.m4])
diff --git a/liboffloadmic/plugin/configure b/liboffloadmic/plugin/configure
deleted file mode 100755 (executable)
index de58b93..0000000
+++ /dev/null
@@ -1,17000 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Intel MIC Offload Plugin 1.0.
-#
-#
-# 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 -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
-test \$(( 1 + 1 )) = 2 || 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 about your system,
-$0: 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='Intel MIC Offload Plugin'
-PACKAGE_TARNAME='libgomp-plugin-intelmic'
-PACKAGE_VERSION='1.0'
-PACKAGE_STRING='Intel MIC Offload Plugin 1.0'
-PACKAGE_BUGREPORT=''
-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='am__EXEEXT_FALSE
-am__EXEEXT_TRUE
-LTLIBOBJS
-LIBOBJS
-get_gcc_base_ver
-toolexeclibdir
-toolexecdir
-CXXCPP
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-RANLIB
-AR
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-LIBTOOL
-accel_target
-accel_search_dir
-PLUGIN_HOST_FALSE
-PLUGIN_HOST_TRUE
-multi_basedir
-am__fastdepCXX_FALSE
-am__fastdepCXX_TRUE
-CXXDEPMODE
-ac_ct_CXX
-CXXFLAGS
-CXX
-am__fastdepCC_FALSE
-am__fastdepCC_TRUE
-CCDEPMODE
-am__nodep
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-MAINT
-MAINTAINER_MODE_FALSE
-MAINTAINER_MODE_TRUE
-AM_BACKSLASH
-AM_DEFAULT_VERBOSITY
-AM_DEFAULT_V
-AM_V
-am__untar
-am__tar
-AMTAR
-am__leading_dot
-SET_MAKE
-AWK
-mkdir_p
-MKDIR_P
-INSTALL_STRIP_PROGRAM
-STRIP
-install_sh
-MAKEINFO
-AUTOHEADER
-AUTOMAKE
-AUTOCONF
-ACLOCAL
-VERSION
-PACKAGE
-CYGPATH_W
-am__isrc
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-target_os
-target_vendor
-target_cpu
-target
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-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'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_silent_rules
-enable_maintainer_mode
-enable_dependency_tracking
-enable_multilib
-enable_version_specific_runtime_libs
-with_toolexeclibdir
-enable_shared
-enable_static
-with_pic
-enable_fast_install
-with_gnu_ld
-enable_libtool_lock
-with_gcc_major_version_only
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CXX
-CXXFLAGS
-CCC
-CPP
-CXXCPP'
-
-
-# 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 Intel MIC Offload Plugin 1.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/libgomp-plugin-intelmic]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-Program names:
-  --program-prefix=PREFIX            prepend PREFIX to installed program names
-  --program-suffix=SUFFIX            append SUFFIX to installed program names
-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
-
-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 Intel MIC Offload Plugin 1.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]
-  --enable-silent-rules   less verbose build output (undo: "make V=1")
-  --disable-silent-rules  verbose build output (undo: "make V=0")
-  --enable-maintainer-mode
-                          enable make rules and dependencies not useful (and
-                          sometimes confusing) to the casual installer
-  --enable-dependency-tracking
-                          do not reject slow dependency extractors
-  --disable-dependency-tracking
-                          speeds up one-time build
-  --enable-multilib       build many library versions (default)
-  --enable-version-specific-runtime-libs
-                          Specify that runtime libraries should be installed
-                          in a compiler-specific directory
-  --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)
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-toolexeclibdir=DIR
-                          install libraries built with a cross compiler within
-                          DIR
-  --with-pic              try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-gcc-major-version-only
-                          use only GCC major number in filesystem paths
-
-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
-  CPP         C preprocessor
-  CXXCPP      C++ preprocessor
-
-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 the package provider.
-_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
-Intel MIC Offload Plugin configure 1.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
-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 Intel MIC Offload Plugin $as_me 1.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_aux_dir=
-for ac_dir in ../.. "$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\"/../.." "$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}
-
-
-am__api_version='1.15'
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-       if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-         if test $ac_prog = install &&
-           grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # AIX install.  It has an incompatible calling convention.
-           :
-         elif test $ac_prog = install &&
-           grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-           # program-specific install script used by HP pwplus--don't use.
-           :
-         else
-           rm -rf conftest.one conftest.two conftest.dir
-           echo one > conftest.one
-           echo two > conftest.two
-           mkdir conftest.dir
-           if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-             test -s conftest.one && test -s conftest.two &&
-             test -s conftest.dir/conftest.one &&
-             test -s conftest.dir/conftest.two
-           then
-             ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-             break 3
-           fi
-         fi
-       fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
-$as_echo_n "checking whether build environment is sane... " >&6; }
-# 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]*)
-    as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
-esac
-case $srcdir in
-  *[\\\"\#\$\&\'\`$am_lf\ \    ]*)
-    as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
-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".
-       as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment" "$LINENO" 5
-     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
-   as_fn_error $? "newly created file is older than distributed files!
-Check your system clock" "$LINENO" 5
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-# 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
-
-rm -f conftest.file
-
-test "$program_prefix" != NONE &&
-  program_transform_name="s&^&$program_prefix&;$program_transform_name"
-# Use a double $ so make ignores it.
-test "$program_suffix" != NONE &&
-  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.
-# By default was `s,x,x', remove it if useless.
-ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
-
-# Expand $ac_aux_dir to an absolute path.
-am_aux_dir=`cd "$ac_aux_dir" && pwd`
-
-if test x"${MISSING+set}" != xset; then
-  case $am_aux_dir in
-  *\ * | *\    *)
-    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
-  *)
-    MISSING="\${SHELL} $am_aux_dir/missing" ;;
-  esac
-fi
-# Use eval to expand $SHELL
-if eval "$MISSING --is-lightweight"; then
-  am_missing_run="$MISSING "
-else
-  am_missing_run=
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
-$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
-fi
-
-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
-
-# 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.
-if test "$cross_compiling" != no; then
-  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
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-        for ac_exec_ext in '' $ac_executable_extensions; do
-          as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue
-          case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-            'mkdir (GNU coreutils) '* | \
-            'mkdir (coreutils) '* | \
-            'mkdir (fileutils) '4.1*)
-              ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-              break 3;;
-          esac
-        done
-       done
-  done
-IFS=$as_save_IFS
-
-fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-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
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-       @echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-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
-
-# Check whether --enable-silent-rules was given.
-if test "${enable_silent_rules+set}" = set; then :
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=1;;
-esac
-am_make=${MAKE-make}
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-$as_echo_n "checking whether $am_make supports nested variables... " >&6; }
-if ${am_cv_make_support_nested_variables+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-$as_echo "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
-
-if test "`cd $srcdir && pwd`" != "`pwd`"; then
-  # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
-  # is not polluted with repeated "-I."
-  am__isrc=' -I$(srcdir)'
-  # test to see if srcdir already configured
-  if test -f $srcdir/config.status; then
-    as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
-  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
-
-
-# Define the identity of the package.
- PACKAGE='libgomp-plugin-intelmic'
- VERSION='1.0'
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
-_ACEOF
-
-# Some tools Automake needs.
-
-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
-
-
-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
-
-
-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
-
-
-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
-
-
-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
-
-# For better backward compatibility.  To be removed once Automake 1.9.x
-# dies out for good.  For more background, see:
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
-# <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
-mkdir_p='$(MKDIR_P)'
-
-# We need awk for the "check" target (and possibly the TAP driver).  The
-# system "awk" is bad on some platforms.
-# Always define AMTAR for backward compatibility.  Yes, it's still used
-# in the wild :-(  We should find a proper way to deprecate it ...
-AMTAR='$${TAR-tar}'
-
-
-# We'll loop over all known methods to create a tar archive until one works.
-_am_tools='gnutar  pax cpio none'
-
-am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'
-
-
-
-
-
-
-# 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: <http://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
-    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
-  fi
-fi
-
-
-
-{ $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
-
-
-
-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
-
-DEPDIR="${am__leading_dot}deps"
-
-ac_config_commands="$ac_config_commands depfiles"
-
-
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-       @echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from 'make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
-
-# 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
-
-
-
-depcc="$CC"   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_CC_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_CC_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
-  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_CC_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CC_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
-  am__fastdepCC_TRUE=
-  am__fastdepCC_FALSE='#'
-else
-  am__fastdepCC_TRUE='#'
-  am__fastdepCC_FALSE=
-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
-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
-
-depcc="$CXX"  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_CXX_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_CXX_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
-  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_CXX_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
-  done
-
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CXX_dependencies_compiler_type=none
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
-CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
-
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
-  am__fastdepCXX_TRUE=
-  am__fastdepCXX_FALSE='#'
-else
-  am__fastdepCXX_TRUE='#'
-  am__fastdepCXX_FALSE=
-fi
-
-
-ac_config_files="$ac_config_files Makefile"
-
-# Default to --enable-multilib
-# Check whether --enable-multilib was given.
-if test "${enable_multilib+set}" = set; then :
-  enableval=$enable_multilib; case "$enableval" in
-  yes) multilib=yes ;;
-  no)  multilib=no ;;
-  *)   as_fn_error $? "bad value $enableval for multilib option" "$LINENO" 5 ;;
- esac
-else
-  multilib=yes
-fi
-
-
-# We may get other options which we leave undocumented:
-# --with-target-subdir, --with-multisrctop, --with-multisubdir
-# See config-ml.in if you want the gory details.
-
-if test "$srcdir" = "."; then
-  if test "$with_target_subdir" != "."; then
-    multi_basedir="$srcdir/$with_multisrctop../../.."
-  else
-    multi_basedir="$srcdir/$with_multisrctop../.."
-  fi
-else
-  multi_basedir="$srcdir/../.."
-fi
-
-
-# Even if the default multilib is not a cross compilation,
-# it may be that some of the other multilibs are.
-if test $cross_compiling = no && test $multilib = yes \
-   && test "x${with_multisubdir}" != x ; then
-   cross_compiling=maybe
-fi
-
-ac_config_commands="$ac_config_commands default-1"
-
-
-if test "${multilib}" = "yes"; then
-  multilib_arg="--enable-multilib"
-else
-  multilib_arg=
-fi
-
-# Make sure liboffloadmic is enabled
-case "$enable_liboffloadmic" in
-  host | target)
-    ;;
-  *)
-    as_fn_error $? "Liboffloadmic is disabled" "$LINENO" 5 ;;
-esac
- if test x"$enable_liboffloadmic" = xhost; then
-  PLUGIN_HOST_TRUE=
-  PLUGIN_HOST_FALSE='#'
-else
-  PLUGIN_HOST_TRUE='#'
-  PLUGIN_HOST_FALSE=
-fi
-
-
-# Get accel target and path to build or install tree of accel compiler
-accel_search_dir=
-accel_target=
-if test x"$enable_liboffloadmic" = xhost; then
-  for accel in `echo $enable_offload_targets | sed -e 's#,# #g'`; do
-    accel_name=`echo $accel | sed 's/=.*//'`
-    accel_dir=`echo $accel | grep '=' | sed 's/.*=//'`
-    case "$accel_name" in
-      *-intelmic-* | *-intelmicemul-*)
-       accel_target=$accel_name
-       accel_search_dir=$accel_dir
-       ;;
-    esac
-  done
-  if test x"$accel_target" = x; then
-    as_fn_error $? "--enable-offload-targets does not contain intelmic target" "$LINENO" 5
-  fi
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for --enable-version-specific-runtime-libs" >&5
-$as_echo_n "checking for --enable-version-specific-runtime-libs... " >&6; }
-# Check whether --enable-version-specific-runtime-libs was given.
-if test "${enable_version_specific_runtime_libs+set}" = set; then :
-  enableval=$enable_version_specific_runtime_libs; case "$enableval" in
-    yes) enable_version_specific_runtime_libs=yes ;;
-    no)  enable_version_specific_runtime_libs=no ;;
-    *)   as_fn_error $? "Unknown argument to enable/disable version-specific libs" "$LINENO" 5;;
-   esac
-else
-  enable_version_specific_runtime_libs=no
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_version_specific_runtime_libs" >&5
-$as_echo "$enable_version_specific_runtime_libs" >&6; }
-
-
-
-# Check whether --with-toolexeclibdir was given.
-if test "${with_toolexeclibdir+set}" = set; then :
-  withval=$with_toolexeclibdir; case ${with_toolexeclibdir} in
-  /)
-    ;;
-  */)
-    with_toolexeclibdir=`echo $with_toolexeclibdir | sed 's,/$,,'`
-    ;;
-esac
-else
-  with_toolexeclibdir=no
-fi
-
-
-
-# Calculate toolexeclibdir.
-# Also toolexecdir, though it's only used in toolexeclibdir.
-case ${enable_version_specific_runtime_libs} in
-  yes)
-    # Need the gcc compiler version to know where to install libraries
-    # and header files if --enable-version-specific-runtime-libs option
-    # is selected.
-    toolexecdir='$(libdir)/gcc/$(target_alias)'
-    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
-    ;;
-  no)
-    if test -n "$with_cross_host" &&
-       test x"$with_cross_host" != x"no"; then
-      # Install a library built with a cross compiler in tooldir, not libdir.
-      toolexecdir='$(exec_prefix)/$(target_alias)'
-      case ${with_toolexeclibdir} in
-       no)
-         toolexeclibdir='$(toolexecdir)/lib'
-         ;;
-       *)
-         toolexeclibdir=${with_toolexeclibdir}
-         ;;
-      esac
-    else
-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-      toolexeclibdir='$(libdir)'
-    fi
-    multi_os_directory=`$CC -print-multi-os-directory`
-    case $multi_os_directory in
-      .) ;; # Avoid trailing /.
-      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
-    esac
-    ;;
-esac
-
-enable_dlopen=yes
-
-
-
-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.2.7a'
-macro_revision='1.3134'
-
-
-
-
-
-
-
-
-
-
-
-
-
-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 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"
-
-
-{ $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 "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && 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
-       case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-       */dev/null* | *'Invalid file or object type'*)
-         lt_cv_path_NM="$tmp_nm -B"
-         break
-         ;;
-       *)
-         case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-         */dev/null*)
-           lt_cv_path_NM="$tmp_nm -p"
-           break
-           ;;
-         *)
-           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 "$lt_cv_path_NM" != "no"; 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 /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      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;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # 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
-    ;;
-
-  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"; 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"`func_fallback_echo "$teststring$teststring" 2>/dev/null` \
-                = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-             test $i != 17 # 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"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-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 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
-  darwin*)
-    if test "$GCC" = yes; 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}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
-# which 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='/usr/bin/file -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.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && 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
-    lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?'
-    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*)
-  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=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  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 Linux ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | uclinuxfdpiceabi)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  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=/usr/bin/file
-  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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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
-  ;;
-vxworks*)
-  # Assume VxWorks cross toolchains are built on Linux, possibly
-  # as canadian for Windows hosts.
-  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_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}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; 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}ar"
-    $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
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; 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="ar"
-    $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
-
-  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
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-
-
-
-
-
-
-
-
-
-
-
-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
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# 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 "$host_cpu" = ia64; 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
-
-# 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 -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$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 -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/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
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print 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
-
-  # 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
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && 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
-#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.  */
-const struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-         $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$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_save_LIBS="$LIBS"
-         lt_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_save_LIBS"
-         CFLAGS="$lt_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 "$pipe_works" = yes; 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && 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 which ABI we are using.
-  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 `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-       HPUX_IA64_MODE="32"
-       ;;
-      *ELF-64*)
-       HPUX_IA64_MODE="64"
-       ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  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 "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-       *32-bit*)
-         LD="${LD-ld} -melf32bsmip"
-         ;;
-       *N32*)
-         LD="${LD-ld} -melf32bmipn32"
-         ;;
-       *64-bit*)
-         LD="${LD-ld} -melf64bmip"
-       ;;
-      esac
-    else
-      case `/usr/bin/file 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*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  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 `/usr/bin/file conftest.o` in
-      *32-bit*)
-       case $host in
-         x86_64-*kfreebsd*-gnu)
-           LD="${LD-ld} -m elf_i386_fbsd"
-           ;;
-         x86_64-*linux*)
-           case `/usr/bin/file 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 x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-sparc*-*solaris*)
-  # Find out which ABI we are using.
-  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 `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)
-       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"
-
-
-  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 test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; 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 cru libconftest.a conftest.o" >&5
-      $AR cru libconftest.a conftest.o 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 -f conftest && test ! -s conftest.err && test $_lt_result = 0 && $GREP forced_load conftest 2>&1 >/dev/null; 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; }
-    # Allow for Darwin 4-7 (macOS 10.0-10.3) although these are not expect to
-    # build without first building modern cctools / linker.
-    case $host_cpu-$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*)
-      # darwin 5.x (macOS 10.1) onwards we only need to adjust when the
-      # deployment target is forced to an earlier version.
-      case ${MACOSX_DEPLOYMENT_TARGET-UNSET},$host in
-       UNSET,*-darwin[89]*|UNSET,*-darwin[12][0123456789]*)
-         ;;
-       10.[012][,.]*)
-         _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         ;;
-       *)
-         ;;
-     esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; 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 "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  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
-
-
-
-
-
-
-# Set options
-
-
-
-
-  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; pic_mode="$withval"
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
-  # 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
-
-
-
-
-
-
-
-
-
-
-
-# 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 "X${COLLECT_NAMES+set}" != Xset; 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,
-# which needs '.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
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# 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 "$GCC" = yes; 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"
-   # 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 x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; 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=
-
-{ $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 test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; 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'
-      ;;
-
-    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 '
-      lt_prog_compiler_pic='-Xcompiler -fPIC'
-      ;;
-    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 "$host_cpu" = ia64; then
-       # AIX 5 now supports IA64 processor
-       lt_prog_compiler_static='-Bstatic'
-      else
-       lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    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'
-      ;;
-
-    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)
-      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'
-        ;;
-      # 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'
-       ;;
-      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\ F* | *Sun*Fortran*)
-         # 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\ C*)
-         # Sun C 5.9
-         lt_prog_compiler_pic='-KPIC'
-         lt_prog_compiler_static='-Bstatic'
-         lt_prog_compiler_wl='-Wl,'
-         ;;
-       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*)
-       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 which 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}: result: $lt_prog_compiler_pic" >&5
-$as_echo "$lt_prog_compiler_pic" >&6; }
-
-
-
-
-
-
-#
-# 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"
-   # 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 x"$lt_cv_prog_compiler_pic_works" = xyes; 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 x"$lt_cv_prog_compiler_static_works" = xyes; 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 "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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_flag_spec_ld=
-  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++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=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 "$with_gnu_ld" = yes; 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 "$lt_use_gnu_ld_interface" = yes; 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 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 "$host_cpu" != ia64; 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/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-
-      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 (1st line
-       # is EXPORTS), use it as is; otherwise, prepend...
-       archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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
-      ;;
-
-    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 | uclinuxfdpiceabi)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; 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 "$tmp_diet" = no
-      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' ;;
-       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 "x$supports_anon_versioning" = xyes; 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
-       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=
-         hardcode_libdir_flag_spec_ld='-rpath $libdir'
-         archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib'
-         if test "x$supports_anon_versioning" = xyes; 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 $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-         fi
-         ;;
-       esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      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 $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'
-      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 $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
-      ;;
-
-    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 can not
-*** 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 $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
-
-    if test "$ld_shlibs" = no; 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 "$GCC" = yes && 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 "$host_cpu" = ia64; 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 AIX nm, but means don't demangle with GNU nm
-       # Also, AIX nm treats weak defined symbols like other global
-       # defined symbols, whereas GNU nm marks them as "W".
-       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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-       else
-         export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | 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
-       # need to do runtime linking.
-       case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-         for ld_flag in $LDFLAGS; do
-         if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-           aix_use_runtimelinking=yes
-           break
-         fi
-         done
-         ;;
-       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,'
-
-      if test "$GCC" = yes; 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 "$aix_use_runtimelinking" = yes; then
-         shared_flag="$shared_flag "'${wl}-G'
-       fi
-      else
-       # not using gcc
-       if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then
-           shared_flag='${wl}-G'
-         else
-           shared_flag='${wl}-bM:SRE'
-         fi
-       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_use_runtimelinking" = yes; 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.
-        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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-       if test "$host_cpu" = ia64; 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.
-        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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "$with_gnu_ld" = yes; 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
-         # This is similar to how AIX traditionally builds its shared libraries.
-         archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-       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++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      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'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      enable_shared_with_static_runtimes=yes
-      ;;
-
-    darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; 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*)
-      archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-       archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $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 $output_objdir/$soname = $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 "$GCC" = yes && test "$with_gnu_ld" = no; then
-       archive_cmds='$CC -shared -fPIC ${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 "$with_gnu_ld" = no; then
-       hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-       hardcode_libdir_flag_spec_ld='+b $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 "$GCC" = yes && test "$with_gnu_ld" = no; then
-       case $host_cpu in
-       hppa*64*)
-         archive_cmds='$CC -shared ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       ia64*)
-         archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-         ;;
-       *)
-         archive_cmds='$CC -shared -fPIC ${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 ${wl}+nodefaultrpath -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 x"$lt_cv_prog_compiler__b" = xyes; 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 "$with_gnu_ld" = no; 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 "$GCC" = yes; then
-       archive_cmds='$CC -shared $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.
-        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) {}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  archive_expsym_cmds='$CC -shared $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
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-        LDFLAGS="$save_LDFLAGS"
-      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
-      ;;
-
-    netbsd*)
-      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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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
-         case $host_os in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-         esac
-       fi
-      else
-       ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; 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 "$GCC" = yes; then
-       allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-       archive_cmds='$CC -shared${allow_undefined_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 "$GCC" = yes; then
-       wlarc='${wl}'
-       archive_cmds='$CC -shared ${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 ${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 "$GCC" = yes; 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 "x$host_vendor" = xsequent; 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 "$GCC" = yes; 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 can NOT 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 "$GCC" = yes; 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 x$host_vendor = xsni; 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 "$ld_shlibs" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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 "$GCC" = yes; 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`
-  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"
-    else
-      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
-  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
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; 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
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # 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}'
-    else
-      # 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'
-    fi
-    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%'\''`; test $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
-  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,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    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
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # 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
-  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*)
-  # 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} $libname${shared_ext}'
-      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
-  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=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/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 "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  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
-  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 "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       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
-  ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being.  (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
-  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'
-  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
-
-  # Append ld.so.conf contents 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'
-  ;;
-
-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
-  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
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  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
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-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
-  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 "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  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
-    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=freebsd-elf
-  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 "$with_gnu_ld" = yes; 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
-  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
-  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
-  ;;
-
-# Shared libraries for VwWorks, >= 7 only at this stage
-# and (fpic) still incompatible with "large" code models
-# in a few configurations. Only for RTP mode in any case,
-# and upon explicit request at configure time.
-vxworks7*)
-  dynamic_linker=no
-  case ${with_multisubdir}-${enable_shared} in
-    *large*)
-      ;;
-    *mrtp*-yes)
-      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'
-      dynamic_linker="$host_os module_loader"
-      ;;
-  esac
-  ;;
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $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 "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # 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 "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; 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 "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-  if test "x$enable_dlopen" != xyes; 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
-
-    ;;
-
-  *)
-    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 "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && 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 "$cross_compiling" = yes; 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 11096 "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 -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=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 "x$lt_cv_dlopen_self" = xyes; 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 "$cross_compiling" = yes; 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 11202 "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 -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-void fnord () __attribute__((visibility("default")));
-#endif
-
-void fnord () { int i=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 -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $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
-
-
-
-
-
-
-
-
-
-
-
-
-  # Report which 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 "$can_build_shared" = "no" && 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 "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    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 "$enable_shared" = yes || 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 "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; 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_flag_spec_ld_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 "$_lt_caught_CXX_error" != yes; 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_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++"}
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; 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 "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; 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 "$with_gnu_ld" = yes; 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 "$with_gnu_ld" != no && break
-       ;;
-      *)
-       test "$with_gnu_ld" != yes && 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 "$with_gnu_ld" = yes; 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 "$host_cpu" = ia64; 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
-          # need to do runtime linking.
-          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
-           ;;
-          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,'
-
-        if test "$GXX" = yes; 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 "$aix_use_runtimelinking" = yes; then
-           shared_flag="$shared_flag "'${wl}-G'
-         fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; 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 "$aix_use_runtimelinking" = yes; then
-             shared_flag='${wl}-G'
-           else
-             shared_flag='${wl}-bM:SRE'
-           fi
-          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_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; 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.
-           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
-       }
-    }'
-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 "$aix_libpath"; then
-  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 "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; 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 "$with_gnu_ld" = yes; 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
-           # This is similar to how AIX traditionally builds its shared
-           # libraries.
-           archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          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*)
-        # _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 (1st line
-          # is EXPORTS), use it as is; otherwise, prepend...
-          archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; 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
-        ;;
-      darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; 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*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; 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 "$lt_cv_apple_cc_single_mod" != "yes"; 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
-
-       ;;
-
-      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*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      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 $output_objdir/$soname = $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 "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; 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 ${wl}+nodefaultrpath -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 "$GXX" = yes; then
-             if test $with_gnu_ld = no; then
-               case $host_cpu in
-                 hppa*64*)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-                   ;;
-                 ia64*)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-                   ;;
-                 *)
-                   archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${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 "$GXX" = yes; then
-             if test "$with_gnu_ld" = no; then
-               archive_cmds_CXX='$CC -shared -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 -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)
-        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 "x$supports_anon_versioning" = xyes; 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
-       ;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-       ld_shlibs_CXX=no
-       ;;
-
-      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__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; 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 "$GXX" = yes && test "$with_gnu_ld" = no; 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 -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*)
-           # 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 "$GXX" = yes && test "$with_gnu_ld" = no; then
-             no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-             if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-               archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $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 -nostdlib ${wl}-M $wl$lib.exp -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 $LDFLAGS $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 -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 can NOT 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*)
-        # For VxWorks ports, we assume the use of a GNU linker with
-        # standard elf conventions.
-        ld_shlibs_CXX=yes
-        ;;
-
-      *)
-        # 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 "$ld_shlibs_CXX" = no && 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
-
-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 $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-        prev=$p
-        continue
-       else
-        prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-        case $p 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
-       ;;
-
-    *.$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 "$pre_test_object_deps_done" = no; 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
-
-# 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=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-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=
-
-{ $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; }
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; 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 "$host_cpu" = ia64; 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'
-      ;;
-    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 "$host_cpu" = ia64; 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
-       ;;
-      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*)
-       # 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 "$host_cpu" != ia64; 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)
-       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*)
-       ;;
-      *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*)
-           # 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 which 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}: result: $lt_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
-
-
-
-#
-# 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"
-   # 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 x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; 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 x"$lt_cv_prog_compiler_static_works_CXX" = xyes; 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 "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; 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 "$hard_links" = no; 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'
-  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 AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    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) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-  ;;
-  cygwin* | mingw* | cegcc*)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && 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 "$enable_shared" = yes && test "$GCC" = yes; 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
-  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
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; 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
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # 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}'
-    else
-      # 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'
-    fi
-    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%'\''`; test $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
-  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,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*)
-    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
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # 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
-  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*)
-  # 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} $libname${shared_ext}'
-      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
-  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=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/beos/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 "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  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
-  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 "$lt_cv_prog_gnu_ld" = yes; then
-               version_type=linux
-       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
-  ;;
-
-# This must be Linux ELF.
-
-# uclinux* changes (here and below) have been submitted to the libtool
-# project, but have not yet been accepted: they are GCC-local changes
-# for the time being.  (See
-# https://lists.gnu.org/archive/html/libtool-patches/2018-05/msg00000.html)
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | uclinuxfdpiceabi)
-  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'
-  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
-
-  # Append ld.so.conf contents 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'
-  ;;
-
-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
-  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
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*) need_version=yes ;;
-    *)                         need_version=no  ;;
-  esac
-  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
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-       shlibpath_overrides_runpath=no
-       ;;
-      *)
-       shlibpath_overrides_runpath=yes
-       ;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-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
-  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 "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux
-  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
-    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=freebsd-elf
-  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 "$with_gnu_ld" = yes; 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
-  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
-  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
-  ;;
-
-# Shared libraries for VwWorks, >= 7 only at this stage
-# and (fpic) still incompatible with "large" code models
-# in a few configurations. Only for RTP mode in any case,
-# and upon explicit request at configure time.
-vxworks7*)
-  dynamic_linker=no
-  case ${with_multisubdir}-${enable_shared} in
-    *large*)
-      ;;
-    *mrtp*-yes)
-      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'
-      dynamic_linker="$host_os module_loader"
-      ;;
-  esac
-  ;;
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $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 "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # 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 "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; 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 "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  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 "$_lt_caught_CXX_error" != yes
-
-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:
-
-
-# Forbid libtool to hardcode RPATH, because we want to be able to specify
-# library search directory using LD_LIBRARY_PATH
-hardcode_into_libs=no
-
-
-
-# Determine what GCC version number to use in filesystem paths.
-
-  get_gcc_base_ver="cat"
-
-# Check whether --with-gcc-major-version-only was given.
-if test "${with_gcc_major_version_only+set}" = set; then :
-  withval=$with_gcc_major_version_only; if test x$with_gcc_major_version_only = xyes ; then
-        get_gcc_base_ver="sed -e 's/^\([0-9]*\).*/\1/'"
-      fi
-
-fi
-
-
-
-
-# Must be last
-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}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-:mline
-/\\$/{
- N
- s,\\\n,,
- b mline
-}
-t clear
-:clear
-s/^[    ]*#[    ]*define[       ][      ]*\([^  (][^    (]*([^)]*)\)[   ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[    ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[     `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
-       g
-       s/^\n//
-       s/\n/ /g
-       p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.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
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
-$as_echo_n "checking that generated files are newer than configure... " >&6; }
-   if test -n "$am_sleep_pid"; then
-     # Hide warnings about reused PIDs.
-     wait $am_sleep_pid 2>/dev/null
-   fi
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5
-$as_echo "done" >&6; }
- if test -n "$EXEEXT"; then
-  am__EXEEXT_TRUE=
-  am__EXEEXT_FALSE='#'
-else
-  am__EXEEXT_TRUE='#'
-  am__EXEEXT_FALSE=
-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 "${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__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  as_fn_error $? "conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
-if test -z "${PLUGIN_HOST_TRUE}" && test -z "${PLUGIN_HOST_FALSE}"; then
-  as_fn_error $? "conditional \"PLUGIN_HOST\" 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 Intel MIC Offload Plugin $as_me 1.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
-
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-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
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-Intel MIC Offload Plugin config.status 1.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'
-INSTALL='$INSTALL'
-MKDIR_P='$MKDIR_P'
-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;;
-  --he | --h |  --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
-#
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
-
-srcdir="$srcdir"
-host="$host"
-target="$target"
-with_multisubdir="$with_multisubdir"
-with_multisrctop="$with_multisrctop"
-with_target_subdir="$with_target_subdir"
-ac_configure_args="${multilib_arg} ${ac_configure_args}"
-multi_basedir="$multi_basedir"
-CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-CC="$CC"
-CXX="$CXX"
-GFORTRAN="$GFORTRAN"
-GDC="$GDC"
-
-
-# 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"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $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"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $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"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $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_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"`'
-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_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $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"`'
-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_flag_spec_ld='`$ECHO "$hardcode_libdir_flag_spec_ld" | $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"`'
-fix_srcfile_path='`$ECHO "$fix_srcfile_path" | $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"`'
-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"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $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_wl_CXX='`$ECHO "$lt_prog_compiler_wl_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_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_flag_spec_ld_CXX='`$ECHO "$hardcode_libdir_flag_spec_ld_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"`'
-fix_srcfile_path_CXX='`$ECHO "$fix_srcfile_path_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"`'
-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 \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-AR \
-AR_FLAGS \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_wl \
-lt_prog_compiler_pic \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-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_flag_spec_ld \
-hardcode_libdir_separator \
-fix_srcfile_path \
-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_wl_CXX \
-lt_prog_compiler_pic_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_flag_spec_ld_CXX \
-hardcode_libdir_separator_CXX \
-fix_srcfile_path_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\\"\\\`\\\\\\""
-      ;;
-    *)
-      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 \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-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; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which 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'
-    TIMESTAMP='$TIMESTAMP'
-    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
-    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-
-  *) 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_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 = "\a"
-
-}
-{
-  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"
-
-
-eval set X "  :F $CONFIG_FILES      :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
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-  ac_MKDIR_P=$MKDIR_P
-  case $MKDIR_P in
-  [\\/$]* | ?:[\\/]* ) ;;
-  */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
-  esac
-_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
-s&@INSTALL@&$ac_INSTALL&;t t
-s&@MKDIR_P@&$ac_MKDIR_P&;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
- ;;
-
-
-  :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
-    "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.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named 'Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$mf" : 'X\(//\)[^/]' \| \
-        X"$mf" : 'X\(//\)$' \| \
-        X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running 'make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "$am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-        X"$file" : 'X\(//\)[^/]' \| \
-        X"$file" : 'X\(//\)$' \| \
-        X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)[^/].*/{
-           s//\1/
-           q
-         }
-         /^X\(\/\/\)$/{
-           s//\1/
-           q
-         }
-         /^X\(\/\).*/{
-           s//\1/
-           q
-         }
-         s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
-    "default-1":C)
-# Only add multilib support code if we just rebuilt the top-level
-# Makefile.
-case " $CONFIG_FILES " in
- *" Makefile "*)
-   ac_file=Makefile . ${multi_basedir}/config-ml.in
-   ;;
-esac ;;
-    "libtool":C)
-
-    # See if we are running on zsh, and set the options which 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
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# 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 GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### 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
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# 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
-
-# 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
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# 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 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 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
-
-# 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
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# 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
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# 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
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld
-
-# 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
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path
-
-# 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
-
-# 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
-
-  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 "X${COLLECT_NAMES+set}" != Xset; 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 '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \
-    || (rm -f "$cfgfile"; exit 1)
-
-  case $xsi_shell in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result="${1##*/}"
-}
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-  case ${1} in
-    */*) func_dirname_result="${1%/*}${2}" ;;
-    *  ) func_dirname_result="${3}" ;;
-  esac
-  func_basename_result="${1##*/}"
-}
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-func_stripname ()
-{
-  # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-  # positional parameters, so assign one to ordinary parameter first.
-  func_stripname_result=${3}
-  func_stripname_result=${func_stripname_result#"${1}"}
-  func_stripname_result=${func_stripname_result%"${2}"}
-}
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=${1%%=*}
-  func_opt_split_arg=${1#*=}
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  case ${1} in
-    *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-    *)    func_lo2o_result=${1} ;;
-  esac
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=${1%.*}.lo
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=$(( $* ))
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=${#1}
-}
-
-_LT_EOF
-    ;;
-  *) # Bourne compatible functions.
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-  # Extract subdirectory from the argument.
-  func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-  if test "X$func_dirname_result" = "X${1}"; then
-    func_dirname_result="${3}"
-  else
-    func_dirname_result="$func_dirname_result${2}"
-  fi
-}
-
-# func_basename file
-func_basename ()
-{
-  func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-}
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-  case ${2} in
-    .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-    *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-}
-
-# sed scripts:
-my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q'
-my_sed_long_arg='1s/^-[^=]*=//'
-
-# func_opt_split
-func_opt_split ()
-{
-  func_opt_split_opt=`$ECHO "${1}" | $SED "$my_sed_long_opt"`
-  func_opt_split_arg=`$ECHO "${1}" | $SED "$my_sed_long_arg"`
-}
-
-# func_lo2o object
-func_lo2o ()
-{
-  func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-}
-
-# func_xform libobj-or-source
-func_xform ()
-{
-  func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-}
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-  func_arith_result=`expr "$@"`
-}
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-  func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
-}
-
-_LT_EOF
-esac
-
-case $lt_shell_append in
-  yes)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1+=\$2"
-}
-_LT_EOF
-    ;;
-  *)
-    cat << \_LT_EOF >> "$cfgfile"
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-  eval "$1=\$$1\$2"
-}
-
-_LT_EOF
-    ;;
-  esac
-
-
-  sed -n '/^# Generated shell functions inserted here/,$p' "$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
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_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
-
-# If ld is used when linking, flag to hardcode \$libdir into a binary
-# during linking.  This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_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
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path=$lt_fix_srcfile_path_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
-
-# 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
-
diff --git a/liboffloadmic/plugin/configure.ac b/liboffloadmic/plugin/configure.ac
deleted file mode 100644 (file)
index cbcd013..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-# Plugin for offload execution on Intel MIC devices.
-#
-# Copyright (C) 2014 Free Software Foundation, Inc.
-#
-# Contributed by Andrey Turetskiy <andrey.turetskiy@intel.com>.
-#
-# This file is part of the GNU Offloading and Multi Processing Library
-# (libgomp).
-#
-# Libgomp is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 3, or (at your option)
-# any later version.
-#
-# Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-# more details.
-#
-# Under Section 7 of GPL version 3, you are granted additional
-# permissions described in the GCC Runtime Library Exception, version
-# 3.1, as published by the Free Software Foundation.
-#
-# You should have received a copy of the GNU General Public License and
-# a copy of the GCC Runtime Library Exception along with this program;
-# see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-# <http://www.gnu.org/licenses/>.
-
-# Process this file with autoconf to produce a configure script, like so:
-# aclocal -I ../.. -I ../../config && autoconf && automake
-
-AC_INIT([Intel MIC Offload Plugin], [1.0], ,[libgomp-plugin-intelmic])
-
-AC_CONFIG_AUX_DIR(../..)
-
-AC_CANONICAL_SYSTEM
-target_alias=${target_alias-$host_alias}
-AC_SUBST(target_alias)
-
-AM_INIT_AUTOMAKE([1.9.0 foreign no-dist])
-
-AM_MAINTAINER_MODE
-
-AC_PROG_CC
-AC_PROG_CXX
-AC_CONFIG_FILES([Makefile])
-AM_ENABLE_MULTILIB(, ../..)
-
-if test "${multilib}" = "yes"; then
-  multilib_arg="--enable-multilib"
-else
-  multilib_arg=
-fi
-
-# Make sure liboffloadmic is enabled
-case "$enable_liboffloadmic" in
-  host | target)
-    ;;
-  *)
-    AC_MSG_ERROR([Liboffloadmic is disabled]) ;;
-esac
-AM_CONDITIONAL(PLUGIN_HOST, [test x"$enable_liboffloadmic" = xhost])
-
-# Get accel target and path to build or install tree of accel compiler
-accel_search_dir=
-accel_target=
-if test x"$enable_liboffloadmic" = xhost; then
-  for accel in `echo $enable_offload_targets | sed -e 's#,# #g'`; do
-    accel_name=`echo $accel | sed 's/=.*//'`
-    accel_dir=`echo $accel | grep '=' | sed 's/.*=//'`
-    case "$accel_name" in
-      *-intelmic-* | *-intelmicemul-*)
-       accel_target=$accel_name
-       accel_search_dir=$accel_dir
-       ;;
-    esac
-  done
-  if test x"$accel_target" = x; then
-    AC_MSG_ERROR([--enable-offload-targets does not contain intelmic target])
-  fi
-fi
-AC_SUBST(accel_search_dir)
-AC_SUBST(accel_target)
-
-AC_MSG_CHECKING([for --enable-version-specific-runtime-libs])
-AC_ARG_ENABLE([version-specific-runtime-libs],
-  AC_HELP_STRING([--enable-version-specific-runtime-libs],
-                [Specify that runtime libraries should be installed in a compiler-specific directory]),
-  [case "$enableval" in
-    yes) enable_version_specific_runtime_libs=yes ;;
-    no)  enable_version_specific_runtime_libs=no ;;
-    *)   AC_MSG_ERROR([Unknown argument to enable/disable version-specific libs]);;
-   esac],
-  [enable_version_specific_runtime_libs=no])
-AC_MSG_RESULT($enable_version_specific_runtime_libs)
-
-
-GCC_WITH_TOOLEXECLIBDIR
-
-# Calculate toolexeclibdir.
-# Also toolexecdir, though it's only used in toolexeclibdir.
-case ${enable_version_specific_runtime_libs} in
-  yes)
-    # Need the gcc compiler version to know where to install libraries
-    # and header files if --enable-version-specific-runtime-libs option
-    # is selected.
-    toolexecdir='$(libdir)/gcc/$(target_alias)'
-    toolexeclibdir='$(toolexecdir)/$(gcc_version)$(MULTISUBDIR)'
-    ;;
-  no)
-    if test -n "$with_cross_host" &&
-       test x"$with_cross_host" != x"no"; then
-      # Install a library built with a cross compiler in tooldir, not libdir.
-      toolexecdir='$(exec_prefix)/$(target_alias)'
-      case ${with_toolexeclibdir} in
-       no)
-         toolexeclibdir='$(toolexecdir)/lib'
-         ;;
-       *)
-         toolexeclibdir=${with_toolexeclibdir}
-         ;;
-      esac
-    else
-      toolexecdir='$(libdir)/gcc-lib/$(target_alias)'
-      toolexeclibdir='$(libdir)'
-    fi
-    multi_os_directory=`$CC -print-multi-os-directory`
-    case $multi_os_directory in
-      .) ;; # Avoid trailing /.
-      *) toolexeclibdir=$toolexeclibdir/$multi_os_directory ;;
-    esac
-    ;;
-esac
-
-AC_LIBTOOL_DLOPEN
-AM_PROG_LIBTOOL
-# Forbid libtool to hardcode RPATH, because we want to be able to specify
-# library search directory using LD_LIBRARY_PATH
-hardcode_into_libs=no
-AC_SUBST(toolexecdir)
-AC_SUBST(toolexeclibdir)
-
-# Determine what GCC version number to use in filesystem paths.
-GCC_BASE_VER
-
-# Must be last
-AC_OUTPUT
diff --git a/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp b/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
deleted file mode 100644 (file)
index 7be27f0..0000000
+++ /dev/null
@@ -1,545 +0,0 @@
-/* Plugin for offload execution on Intel MIC devices.
-
-   Copyright (C) 2014-2016 Free Software Foundation, Inc.
-
-   Contributed by Ilya Verbin <ilya.verbin@intel.com>.
-
-   This file is part of the GNU Offloading and Multi Processing Library
-   (libgomp).
-
-   Libgomp is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-   more details.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Host side part of a libgomp plugin.  */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <utility>
-#include <vector>
-#include <map>
-#include "libgomp-plugin.h"
-#include "compiler_if_host.h"
-#include "main_target_image.h"
-#include "gomp-constants.h"
-
-#define OFFLOAD_ACTIVE_WAIT_ENV        "OFFLOAD_ACTIVE_WAIT"
-
-#ifdef DEBUG
-#define TRACE(...)                                         \
-{                                                          \
-fprintf (stderr, "HOST:\t%s:%s ", __FILE__, __FUNCTION__);  \
-fprintf (stderr, __VA_ARGS__);                             \
-fprintf (stderr, "\n");                                            \
-}
-#else
-#define TRACE { }
-#endif
-
-
-/* Start/end addresses of functions and global variables on a device.  */
-typedef std::vector<addr_pair> AddrVect;
-
-/* Addresses for one image and all devices.  */
-typedef std::vector<AddrVect> DevAddrVect;
-
-/* Addresses for all images and all devices.  */
-typedef std::map<const void *, DevAddrVect> ImgDevAddrMap;
-
-/* Image descriptor needed by __offload_[un]register_image.  */
-struct TargetImageDesc {
-  int64_t size;
-  /* 10 characters is enough for max int value.  */
-  char name[sizeof ("lib0000000000.so")];
-  char data[];
-};
-
-/* Image descriptors, indexed by a pointer obtained from libgomp.  */
-typedef std::map<const void *, TargetImageDesc *> ImgDescMap;
-
-
-/* Total number of available devices.  */
-static int num_devices;
-
-/* Total number of shared libraries with offloading to Intel MIC.  */
-static int num_images;
-
-/* Two dimensional array: one key is a pointer to image,
-   second key is number of device.  Contains a vector of pointer pairs.  */
-static ImgDevAddrMap *address_table;
-
-/* Descriptors of all images, registered in liboffloadmic.  */
-static ImgDescMap *image_descriptors;
-
-/* Thread-safe registration of the main image.  */
-static pthread_once_t main_image_is_registered = PTHREAD_ONCE_INIT;
-
-static VarDesc vd_host2tgt = {
-  { 1, 1 },                  /* dst, src                             */
-  { 1, 0 },                  /* in, out                              */
-  1,                         /* alloc_if                             */
-  1,                         /* free_if                              */
-  4,                         /* align                                */
-  0,                         /* mic_offset                           */
-  { 0, 0, 0, 0, 0, 0, 0, 0 }, /* is_static, is_static_dstn, has_length,
-                                is_stack_buf, sink_addr, alloc_disp,
-                                is_noncont_src, is_noncont_dst       */
-  0,                         /* offset                               */
-  0,                         /* size                                 */
-  1,                         /* count                                */
-  0,                         /* alloc                                */
-  0,                         /* into                                 */
-  0                          /* ptr                                  */
-};
-
-static VarDesc vd_tgt2host = {
-  { 1, 1 },                  /* dst, src                             */
-  { 0, 1 },                  /* in, out                              */
-  1,                         /* alloc_if                             */
-  1,                         /* free_if                              */
-  4,                         /* align                                */
-  0,                         /* mic_offset                           */
-  { 0, 0, 0, 0, 0, 0, 0, 0 }, /* is_static, is_static_dstn, has_length,
-                                is_stack_buf, sink_addr, alloc_disp,
-                                is_noncont_src, is_noncont_dst       */
-  0,                         /* offset                               */
-  0,                         /* size                                 */
-  1,                         /* count                                */
-  0,                         /* alloc                                */
-  0,                         /* into                                 */
-  0                          /* ptr                                  */
-};
-
-
-__attribute__((constructor))
-static void
-init (void)
-{
-  const char *active_wait = getenv (OFFLOAD_ACTIVE_WAIT_ENV);
-
-  /* Disable active wait by default to avoid useless CPU usage.  */
-  if (!active_wait)
-    setenv (OFFLOAD_ACTIVE_WAIT_ENV, "0", 0);
-
-  address_table = new ImgDevAddrMap;
-  image_descriptors = new ImgDescMap;
-  num_devices = _Offload_number_of_devices ();
-}
-
-extern "C" const char *
-GOMP_OFFLOAD_get_name (void)
-{
-  const char *res = "intelmic";
-  TRACE ("(): return %s", res);
-  return res;
-}
-
-extern "C" unsigned int
-GOMP_OFFLOAD_get_caps (void)
-{
-  unsigned int res = GOMP_OFFLOAD_CAP_OPENMP_400;
-  TRACE ("(): return %x", res);
-  return res;
-}
-
-extern "C" int
-GOMP_OFFLOAD_get_type (void)
-{
-  enum offload_target_type res = OFFLOAD_TARGET_TYPE_INTEL_MIC;
-  TRACE ("(): return %d", res);
-  return res;
-}
-
-extern "C" int
-GOMP_OFFLOAD_get_num_devices (unsigned int omp_requires_mask)
-{
-  /* Return -1 if no omp_requires_mask cannot be fulfilled but
-     devices were present.  */
-  if (num_devices > 0 && omp_requires_mask != 0)
-    return -1;
-  TRACE ("(): return %d", num_devices);
-  return num_devices;
-}
-
-static bool
-offload (const char *file, uint64_t line, int device, const char *name,
-        int num_vars, VarDesc *vars, const void **async_data)
-{
-  OFFLOAD ofld = __offload_target_acquire1 (&device, file, line);
-  if (ofld)
-    {
-      if (async_data == NULL)
-       return __offload_offload1 (ofld, name, 0, num_vars, vars, NULL, 0,
-                                  NULL, NULL);
-      else
-       {
-         OffloadFlags flags;
-         flags.flags = 0;
-         flags.bits.omp_async = 1;
-         return __offload_offload3 (ofld, name, 0, num_vars, vars, NULL, 0,
-                                    NULL, async_data, 0, NULL, flags, NULL);
-       }
-    }
-  else
-    {
-      GOMP_PLUGIN_error ("%s:%d: Offload target acquire failed\n", file, line);
-      return false;
-    }
-}
-
-static void
-register_main_image ()
-{
-  /* Do not check the return value, because old versions of liboffloadmic did
-     not have return values.  */
-  __offload_register_image (&main_target_image);
-
-  /* liboffloadmic will call GOMP_PLUGIN_target_task_completion when
-     asynchronous task on target is completed.  */
-  __offload_register_task_callback (GOMP_PLUGIN_target_task_completion);
-}
-
-/* liboffloadmic loads and runs offload_target_main on all available devices
-   during a first call to offload ().  */
-extern "C" bool
-GOMP_OFFLOAD_init_device (int device)
-{
-  TRACE ("(device = %d)", device);
-  pthread_once (&main_image_is_registered, register_main_image);
-  return offload (__FILE__, __LINE__, device, "__offload_target_init_proc", 0,
-                 NULL, NULL);
-}
-
-extern "C" bool
-GOMP_OFFLOAD_fini_device (int device)
-{
-  TRACE ("(device = %d)", device);
-
-  /* liboffloadmic will finalize target processes on all available devices.  */
-  __offload_unregister_image (&main_target_image);
-  return true;
-}
-
-static bool
-get_target_table (int device, int &num_funcs, int &num_vars, void **&table)
-{
-  VarDesc vd1[2] = { vd_tgt2host, vd_tgt2host };
-  vd1[0].ptr = &num_funcs;
-  vd1[0].size = sizeof (num_funcs);
-  vd1[1].ptr = &num_vars;
-  vd1[1].size = sizeof (num_vars);
-
-  if (!offload (__FILE__, __LINE__, device, "__offload_target_table_p1", 2,
-               vd1, NULL))
-    return false;
-
-  int table_size = num_funcs + 2 * num_vars;
-  if (table_size > 0)
-    {
-      table = new void * [table_size];
-
-      VarDesc vd2;
-      vd2 = vd_tgt2host;
-      vd2.ptr = table;
-      vd2.size = table_size * sizeof (void *);
-
-      return offload (__FILE__, __LINE__, device, "__offload_target_table_p2",
-                     1, &vd2, NULL);
-    }
-  return true;
-}
-
-/* Offload TARGET_IMAGE to all available devices and fill address_table with
-   corresponding target addresses.  */
-
-static bool
-offload_image (const void *target_image)
-{
-  void *image_start = ((void **) target_image)[0];
-  void *image_end   = ((void **) target_image)[1];
-
-  TRACE ("(target_image = %p { %p, %p })",
-        target_image, image_start, image_end);
-
-  int64_t image_size = (uintptr_t) image_end - (uintptr_t) image_start;
-  TargetImageDesc *image = (TargetImageDesc *) malloc (offsetof (TargetImageDesc, data)
-                                                      + image_size);
-  if (!image)
-    {
-      GOMP_PLUGIN_error ("%s: Can't allocate memory\n", __FILE__);
-      return false;
-    }
-
-  image->size = image_size;
-  sprintf (image->name, "lib%010d.so", num_images++);
-  memcpy (image->data, image_start, image->size);
-
-  TRACE ("() __offload_register_image %s { %p, %d }",
-        image->name, image_start, image->size);
-  /* Do not check the return value, because old versions of liboffloadmic did
-     not have return values.  */
-  __offload_register_image (image);
-
-  /* Receive tables for target_image from all devices.  */
-  DevAddrVect dev_table;
-  bool ret = true;
-  for (int dev = 0; dev < num_devices; dev++)
-    {
-      int num_funcs = 0;
-      int num_vars = 0;
-      void **table = NULL;
-
-      ret &= get_target_table (dev, num_funcs, num_vars, table);
-
-      AddrVect curr_dev_table;
-
-      for (int i = 0; i < num_funcs; i++)
-       {
-         addr_pair tgt_addr;
-         tgt_addr.start = (uintptr_t) table[i];
-         tgt_addr.end = tgt_addr.start + 1;
-         TRACE ("() func %d:\t0x%llx..0x%llx", i,
-                tgt_addr.start, tgt_addr.end);
-         curr_dev_table.push_back (tgt_addr);
-       }
-
-      for (int i = 0; i < num_vars; i++)
-       {
-         addr_pair tgt_addr;
-         tgt_addr.start = (uintptr_t) table[num_funcs+i*2];
-         tgt_addr.end = tgt_addr.start + (uintptr_t) table[num_funcs+i*2+1];
-         TRACE ("() var %d:\t0x%llx..0x%llx", i, tgt_addr.start, tgt_addr.end);
-         curr_dev_table.push_back (tgt_addr);
-       }
-
-      dev_table.push_back (curr_dev_table);
-      delete [] table;
-    }
-
-  address_table->insert (std::make_pair (target_image, dev_table));
-  image_descriptors->insert (std::make_pair (target_image, image));
-  return ret;
-}
-
-/* Return the libgomp version number we're compatible with.  There is
-   no requirement for cross-version compatibility.  */
-
-extern "C" unsigned
-GOMP_OFFLOAD_version (void)
-{
-  return GOMP_VERSION;
-}
-
-extern "C" int
-GOMP_OFFLOAD_load_image (int device, const unsigned version,
-                        const void *target_image, addr_pair **result,
-                        uint64_t ** /* rev_fn_table */)
-{
-  TRACE ("(device = %d, target_image = %p)", device, target_image);
-
-  if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
-    {
-      GOMP_PLUGIN_error ("Offload data incompatible with intelmic plugin"
-                        " (expected %u, received %u)",
-                        GOMP_VERSION_INTEL_MIC, GOMP_VERSION_DEV (version));
-      return -1;
-    }
-
-  /* If target_image is already present in address_table, then there is no need
-     to offload it.  */
-  if (address_table->count (target_image) == 0)
-    {
-      /* If fail, return -1 as error code.  */
-      if (!offload_image (target_image))
-       return -1;
-    }
-
-  AddrVect *curr_dev_table = &(*address_table)[target_image][device];
-  int table_size = curr_dev_table->size ();
-  addr_pair *table = (addr_pair *) malloc (table_size * sizeof (addr_pair));
-  if (table == NULL)
-    {
-      GOMP_PLUGIN_error ("%s: Can't allocate memory\n", __FILE__);
-      return -1;
-    }
-
-  std::copy (curr_dev_table->begin (), curr_dev_table->end (), table);
-  *result = table;
-  return table_size;
-}
-
-extern "C" bool
-GOMP_OFFLOAD_unload_image (int device, unsigned version,
-                          const void *target_image)
-{
-  if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
-    {
-      GOMP_PLUGIN_error ("Offload data incompatible with intelmic plugin"
-                        " (expected %u, received %u)",
-                        GOMP_VERSION_INTEL_MIC, GOMP_VERSION_DEV (version));
-      return false;
-    }
-
-  TRACE ("(device = %d, target_image = %p)", device, target_image);
-
-  /* liboffloadmic unloads the image from all available devices.  */
-  if (image_descriptors->count (target_image) > 0)
-    {
-      TargetImageDesc *image_desc = (*image_descriptors)[target_image];
-      __offload_unregister_image (image_desc);
-      free (image_desc);
-
-      address_table->erase (target_image);
-      image_descriptors->erase (target_image);
-    }
-  return true;
-}
-
-extern "C" void *
-GOMP_OFFLOAD_alloc (int device, size_t size)
-{
-  TRACE ("(device = %d, size = %d)", device, size);
-
-  void *tgt_ptr;
-  VarDesc vd[2] = { vd_host2tgt, vd_tgt2host };
-  vd[0].ptr = &size;
-  vd[0].size = sizeof (size);
-  vd[1].ptr = &tgt_ptr;
-  vd[1].size = sizeof (void *);
-
-  if (!offload (__FILE__, __LINE__, device, "__offload_target_alloc", 2,
-               vd, NULL))
-    return NULL;
-
-  return tgt_ptr;
-}
-
-extern "C" bool
-GOMP_OFFLOAD_free (int device, void *tgt_ptr)
-{
-  TRACE ("(device = %d, tgt_ptr = %p)", device, tgt_ptr);
-
-  VarDesc vd = vd_host2tgt;
-  vd.ptr = &tgt_ptr;
-  vd.size = sizeof (void *);
-
-  return offload (__FILE__, __LINE__, device, "__offload_target_free", 1,
-                 &vd, NULL);
-}
-
-extern "C" bool
-GOMP_OFFLOAD_host2dev (int device, void *tgt_ptr, const void *host_ptr,
-                      size_t size)
-{
-  TRACE ("(device = %d, tgt_ptr = %p, host_ptr = %p, size = %d)",
-        device, tgt_ptr, host_ptr, size);
-  if (!size)
-    return true;
-
-  VarDesc vd1[2] = { vd_host2tgt, vd_host2tgt };
-  vd1[0].ptr = &tgt_ptr;
-  vd1[0].size = sizeof (void *);
-  vd1[1].ptr = &size;
-  vd1[1].size = sizeof (size);
-
-  if (!offload (__FILE__, __LINE__, device, "__offload_target_host2tgt_p1", 2,
-               vd1, NULL))
-    return false;
-
-  VarDesc vd2 = vd_host2tgt;
-  vd2.ptr = (void *) host_ptr;
-  vd2.size = size;
-
-  return offload (__FILE__, __LINE__, device, "__offload_target_host2tgt_p2", 1,
-                 &vd2, NULL);
-}
-
-extern "C" bool
-GOMP_OFFLOAD_dev2host (int device, void *host_ptr, const void *tgt_ptr,
-                      size_t size)
-{
-  TRACE ("(device = %d, host_ptr = %p, tgt_ptr = %p, size = %d)",
-        device, host_ptr, tgt_ptr, size);
-  if (!size)
-    return true;
-
-  VarDesc vd1[2] = { vd_host2tgt, vd_host2tgt };
-  vd1[0].ptr = &tgt_ptr;
-  vd1[0].size = sizeof (void *);
-  vd1[1].ptr = &size;
-  vd1[1].size = sizeof (size);
-
-  if (!offload (__FILE__, __LINE__, device, "__offload_target_tgt2host_p1", 2,
-               vd1, NULL))
-    return false;
-
-  VarDesc vd2 = vd_tgt2host;
-  vd2.ptr = (void *) host_ptr;
-  vd2.size = size;
-
-  return offload (__FILE__, __LINE__, device, "__offload_target_tgt2host_p2", 1,
-                 &vd2, NULL);
-}
-
-extern "C" bool
-GOMP_OFFLOAD_dev2dev (int device, void *dst_ptr, const void *src_ptr,
-                     size_t size)
-{
-  TRACE ("(device = %d, dst_ptr = %p, src_ptr = %p, size = %d)",
-        device, dst_ptr, src_ptr, size);
-  if (!size)
-    return true;
-
-  VarDesc vd[3] = { vd_host2tgt, vd_host2tgt, vd_host2tgt };
-  vd[0].ptr = &dst_ptr;
-  vd[0].size = sizeof (void *);
-  vd[1].ptr = &src_ptr;
-  vd[1].size = sizeof (void *);
-  vd[2].ptr = &size;
-  vd[2].size = sizeof (size);
-
-  return offload (__FILE__, __LINE__, device, "__offload_target_tgt2tgt", 3,
-                 vd, NULL);
-}
-
-extern "C" void
-GOMP_OFFLOAD_async_run (int device, void *tgt_fn, void *tgt_vars,
-                       void **, void *async_data)
-{
-  TRACE ("(device = %d, tgt_fn = %p, tgt_vars = %p, async_data = %p)", device,
-        tgt_fn, tgt_vars, async_data);
-
-  VarDesc vd[2] = { vd_host2tgt, vd_host2tgt };
-  vd[0].ptr = &tgt_fn;
-  vd[0].size = sizeof (void *);
-  vd[1].ptr = &tgt_vars;
-  vd[1].size = sizeof (void *);
-
-  offload (__FILE__, __LINE__, device, "__offload_target_run", 2, vd,
-          (const void **) async_data);
-}
-
-extern "C" void
-GOMP_OFFLOAD_run (int device, void *tgt_fn, void *tgt_vars, void **)
-{
-  TRACE ("(device = %d, tgt_fn = %p, tgt_vars = %p)", device, tgt_fn, tgt_vars);
-
-  GOMP_OFFLOAD_async_run (device, tgt_fn, tgt_vars, NULL, NULL);
-}
diff --git a/liboffloadmic/plugin/offload_target_main.cpp b/liboffloadmic/plugin/offload_target_main.cpp
deleted file mode 100644 (file)
index ccf7240..0000000
+++ /dev/null
@@ -1,380 +0,0 @@
-/* Plugin for offload execution on Intel MIC devices.
-
-   Copyright (C) 2014-2016 Free Software Foundation, Inc.
-
-   Contributed by Ilya Verbin <ilya.verbin@intel.com>.
-
-   This file is part of the GNU Offloading and Multi Processing Library
-   (libgomp).
-
-   Libgomp is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 3, or (at your option)
-   any later version.
-
-   Libgomp is distributed in the hope that it will be useful, but WITHOUT ANY
-   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
-   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-   more details.
-
-   Under Section 7 of GPL version 3, you are granted additional
-   permissions described in the GCC Runtime Library Exception, version
-   3.1, as published by the Free Software Foundation.
-
-   You should have received a copy of the GNU General Public License and
-   a copy of the GCC Runtime Library Exception along with this program;
-   see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
-   <http://www.gnu.org/licenses/>.  */
-
-/* Target side part of a libgomp plugin.  */
-
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "compiler_if_target.h"
-
-
-#ifdef DEBUG
-#define TRACE(...)                                           \
-{                                                            \
-fprintf (stderr, "TARGET:\t%s:%s ", __FILE__, __FUNCTION__);  \
-fprintf (stderr, __VA_ARGS__);                               \
-fprintf (stderr, "\n");                                              \
-}
-#else
-#define TRACE { }
-#endif
-
-
-static VarDesc vd_host2tgt = {
-  { 1, 1 },                  /* dst, src                             */
-  { 1, 0 },                  /* in, out                              */
-  1,                         /* alloc_if                             */
-  1,                         /* free_if                              */
-  4,                         /* align                                */
-  0,                         /* mic_offset                           */
-  { 0, 0, 0, 0, 0, 0, 0, 0 }, /* is_static, is_static_dstn, has_length,
-                                is_stack_buf, sink_addr, alloc_disp,
-                                is_noncont_src, is_noncont_dst       */
-  0,                         /* offset                               */
-  0,                         /* size                                 */
-  1,                         /* count                                */
-  0,                         /* alloc                                */
-  0,                         /* into                                 */
-  0                          /* ptr                                  */
-};
-
-static VarDesc vd_tgt2host = {
-  { 1, 1 },                  /* dst, src                             */
-  { 0, 1 },                  /* in, out                              */
-  1,                         /* alloc_if                             */
-  1,                         /* free_if                              */
-  4,                         /* align                                */
-  0,                         /* mic_offset                           */
-  { 0, 0, 0, 0, 0, 0, 0, 0 }, /* is_static, is_static_dstn, has_length,
-                                is_stack_buf, sink_addr, alloc_disp,
-                                is_noncont_src, is_noncont_dst       */
-  0,                         /* offset                               */
-  0,                         /* size                                 */
-  1,                         /* count                                */
-  0,                         /* alloc                                */
-  0,                         /* into                                 */
-  0                          /* ptr                                  */
-};
-
-/* Pointer to the descriptor of the last loaded shared library.  */
-static void *last_loaded_library = NULL;
-
-/* Pointer and size of the variable, used in __offload_target_host2tgt_p[12]
-   and __offload_target_tgt2host_p[12].  */
-static void *last_var_ptr = NULL;
-static int last_var_size = 0;
-
-
-/* Override the corresponding functions from libgomp.  */
-extern "C" int
-omp_is_initial_device (void) __GOMP_NOTHROW
-{
-  return 0;
-}
-
-extern "C" int32_t
-omp_is_initial_device_ (void)
-{
-  return omp_is_initial_device ();
-}
-
-
-/* Dummy function needed for the initialization of target process during the
-   first call to __offload_offload1.  */
-static void
-__offload_target_init_proc (OFFLOAD ofldt)
-{
-  TRACE ("");
-}
-
-/* Collect addresses of the offload functions and of the global variables from
-   the library descriptor and send them to host.
-   Part 1: Send num_funcs and num_vars to host.  */
-static void
-__offload_target_table_p1 (OFFLOAD ofldt)
-{
-  void ***lib_descr = (void ***) last_loaded_library;
-
-  if (lib_descr == NULL)
-    {
-      TRACE ("");
-      fprintf (stderr, "Error! No shared libraries loaded on target.\n");
-      return;
-    }
-
-  void **func_table_begin = lib_descr[0];
-  void **func_table_end   = lib_descr[1];
-  void **var_table_begin  = lib_descr[2];
-  void **var_table_end    = lib_descr[3];
-
-  /* The func table contains only addresses, the var table contains addresses
-     and corresponding sizes.  */
-  int num_funcs = func_table_end - func_table_begin;
-  int num_vars = (var_table_end - var_table_begin) / 2;
-  TRACE ("(num_funcs = %d, num_vars = %d)", num_funcs, num_vars);
-
-  VarDesc vd[2] = { vd_tgt2host, vd_tgt2host };
-  vd[0].ptr = &num_funcs;
-  vd[0].size = sizeof (num_funcs);
-  vd[1].ptr = &num_vars;
-  vd[1].size = sizeof (num_vars);
-
-  __offload_target_enter (ofldt, 2, vd, NULL);
-  __offload_target_leave (ofldt);
-}
-
-/* Part 2: Send the table with addresses to host.  */
-static void
-__offload_target_table_p2 (OFFLOAD ofldt)
-{
-  void ***lib_descr = (void ***) last_loaded_library;
-  void **func_table_begin = lib_descr[0];
-  void **func_table_end   = lib_descr[1];
-  void **var_table_begin  = lib_descr[2];
-  void **var_table_end    = lib_descr[3];
-
-  int num_funcs = func_table_end - func_table_begin;
-  int num_vars = (var_table_end - var_table_begin) / 2;
-  int table_size = (num_funcs + 2 * num_vars) * sizeof (void *);
-  void **table = (void **) malloc (table_size);
-  TRACE ("(table_size = %d)", table_size);
-
-  VarDesc vd = vd_tgt2host;
-  vd.ptr = table;
-  vd.size = table_size;
-
-  __offload_target_enter (ofldt, 1, &vd, NULL);
-
-  void **p;
-  int i = 0;
-  for (p = func_table_begin; p < func_table_end; p++, i++)
-    table[i] = *p;
-
-  for (p = var_table_begin; p < var_table_end; p++, i++)
-    table[i] = *p;
-
-  __offload_target_leave (ofldt);
-  free (table);
-}
-
-/* Allocate size bytes and send a pointer to the allocated memory to host.  */
-static void
-__offload_target_alloc (OFFLOAD ofldt)
-{
-  size_t size = 0;
-  void *ptr = NULL;
-
-  VarDesc vd[2] = { vd_host2tgt, vd_tgt2host };
-  vd[0].ptr = &size;
-  vd[0].size = sizeof (size);
-  vd[1].ptr = &ptr;
-  vd[1].size = sizeof (void *);
-
-  __offload_target_enter (ofldt, 2, vd, NULL);
-  ptr = malloc (size);
-  TRACE ("(size = %d): ptr = %p", size, ptr);
-  __offload_target_leave (ofldt);
-}
-
-/* Free the memory space pointed to by ptr.  */
-static void
-__offload_target_free (OFFLOAD ofldt)
-{
-  void *ptr = 0;
-
-  VarDesc vd = vd_host2tgt;
-  vd.ptr = &ptr;
-  vd.size = sizeof (void *);
-
-  __offload_target_enter (ofldt, 1, &vd, NULL);
-  TRACE ("(ptr = %p)", ptr);
-  free (ptr);
-  __offload_target_leave (ofldt);
-}
-
-/* Receive var_size bytes from host and store to var_ptr.
-   Part 1: Receive var_ptr and var_size from host.  */
-static void
-__offload_target_host2tgt_p1 (OFFLOAD ofldt)
-{
-  void *var_ptr = NULL;
-  size_t var_size = 0;
-
-  VarDesc vd[2] = { vd_host2tgt, vd_host2tgt };
-  vd[0].ptr = &var_ptr;
-  vd[0].size = sizeof (void *);
-  vd[1].ptr = &var_size;
-  vd[1].size = sizeof (var_size);
-
-  __offload_target_enter (ofldt, 2, vd, NULL);
-  TRACE ("(var_ptr = %p, var_size = %d)", var_ptr, var_size);
-  last_var_ptr = var_ptr;
-  last_var_size = var_size;
-  __offload_target_leave (ofldt);
-}
-
-/* Part 2: Receive the data from host.  */
-static void
-__offload_target_host2tgt_p2 (OFFLOAD ofldt)
-{
-  TRACE ("(last_var_ptr = %p, last_var_size = %d)",
-        last_var_ptr, last_var_size);
-
-  VarDesc vd = vd_host2tgt;
-  vd.ptr = last_var_ptr;
-  vd.size = last_var_size;
-
-  __offload_target_enter (ofldt, 1, &vd, NULL);
-  __offload_target_leave (ofldt);
-}
-
-/* Send var_size bytes from var_ptr to host.
-   Part 1: Receive var_ptr and var_size from host.  */
-static void
-__offload_target_tgt2host_p1 (OFFLOAD ofldt)
-{
-  void *var_ptr = NULL;
-  size_t var_size = 0;
-
-  VarDesc vd[2] = { vd_host2tgt, vd_host2tgt };
-  vd[0].ptr = &var_ptr;
-  vd[0].size = sizeof (void *);
-  vd[1].ptr = &var_size;
-  vd[1].size = sizeof (var_size);
-
-  __offload_target_enter (ofldt, 2, vd, NULL);
-  TRACE ("(var_ptr = %p, var_size = %d)", var_ptr, var_size);
-  last_var_ptr = var_ptr;
-  last_var_size = var_size;
-  __offload_target_leave (ofldt);
-}
-
-/* Part 2: Send the data to host.  */
-static void
-__offload_target_tgt2host_p2 (OFFLOAD ofldt)
-{
-  TRACE ("(last_var_ptr = %p, last_var_size = %d)",
-        last_var_ptr, last_var_size);
-
-  VarDesc vd = vd_tgt2host;
-  vd.ptr = last_var_ptr;
-  vd.size = last_var_size;
-
-  __offload_target_enter (ofldt, 1, &vd, NULL);
-  __offload_target_leave (ofldt);
-}
-
-/* Copy SIZE bytes from SRC_PTR to DST_PTR.  */
-static void
-__offload_target_tgt2tgt (OFFLOAD ofldt)
-{
-  void *src_ptr = NULL;
-  void *dst_ptr = NULL;
-  size_t size = 0;
-
-  VarDesc vd[3] = { vd_host2tgt, vd_host2tgt, vd_host2tgt };
-  vd[0].ptr = &dst_ptr;
-  vd[0].size = sizeof (void *);
-  vd[1].ptr = &src_ptr;
-  vd[1].size = sizeof (void *);
-  vd[2].ptr = &size;
-  vd[2].size = sizeof (size);
-
-  __offload_target_enter (ofldt, 3, vd, NULL);
-  TRACE ("(dst_ptr = %p, src_ptr = %p, size = %d)", dst_ptr, src_ptr, size);
-  memcpy (dst_ptr, src_ptr, size);
-  __offload_target_leave (ofldt);
-}
-
-/* Call offload function by the address fn_ptr and pass vars_ptr to it.  */
-static void
-__offload_target_run (OFFLOAD ofldt)
-{
-  void *fn_ptr;
-  void *vars_ptr;
-
-  VarDesc vd[2] = { vd_host2tgt, vd_host2tgt };
-  vd[0].ptr = &fn_ptr;
-  vd[0].size = sizeof (void *);
-  vd[1].ptr = &vars_ptr;
-  vd[1].size = sizeof (void *);
-
-  __offload_target_enter (ofldt, 2, vd, NULL);
-  TRACE ("(fn_ptr = %p, vars_ptr = %p)", fn_ptr, vars_ptr);
-  void (*fn)(void *) = (void (*)(void *)) fn_ptr;
-  fn (vars_ptr);
-  __offload_target_leave (ofldt);
-}
-
-
-/* This should be called from every library with offloading.  */
-extern "C" void
-target_register_lib (const void *target_table)
-{
-  TRACE ("(target_table = %p { %p, %p, %p, %p })", target_table,
-        ((void **) target_table)[0], ((void **) target_table)[1],
-        ((void **) target_table)[2], ((void **) target_table)[3]);
-
-  last_loaded_library = (void *) target_table;
-}
-
-/* Use __offload_target_main from liboffload.  */
-int
-main (int argc, char **argv)
-{
-  __offload_target_main ();
-  return 0;
-}
-
-
-/* Register offload_target_main's functions in the liboffload.  */
-
-struct Entry {
-  const char *name;
-  void *func;
-};
-
-#define REGISTER(f)                                  \
-extern "C" const Entry __offload_target_##f##_$entry  \
-__attribute__ ((section(".OffloadEntryTable."))) = {  \
-  "__offload_target_"#f,                             \
-  (void *) __offload_target_##f                              \
-}
-REGISTER (init_proc);
-REGISTER (table_p1);
-REGISTER (table_p2);
-REGISTER (alloc);
-REGISTER (free);
-REGISTER (host2tgt_p1);
-REGISTER (host2tgt_p2);
-REGISTER (tgt2host_p1);
-REGISTER (tgt2host_p2);
-REGISTER (tgt2tgt);
-REGISTER (run);
-#undef REGISTER
diff --git a/liboffloadmic/runtime/cean_util.cpp b/liboffloadmic/runtime/cean_util.cpp
deleted file mode 100644 (file)
index f2c3e48..0000000
+++ /dev/null
@@ -1,421 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "cean_util.h"
-#include "offload_common.h"
-
-// 1. allocate element of CeanReadRanges type
-// 2. initialized it for reading consequently contiguous ranges
-//    described by "ap" argument
-CeanReadRanges * init_read_ranges_arr_desc(const Arr_Desc *ap)
-{
-    CeanReadRanges * res;
-
-    // find the max contiguous range
-    int64_t rank = ap->rank - 1;
-    int64_t length = ap->dim[rank].size;
-    for (; rank >= 0; rank--) {
-        if (ap->dim[rank].stride == 1) {
-            length *= (ap->dim[rank].upper - ap->dim[rank].lower + 1);
-            if (rank > 0 && length != ap->dim[rank - 1].size) {
-                break;
-            }
-        }
-        else {
-            break;
-        }
-    }
-
-    res =(CeanReadRanges *)malloc(sizeof(CeanReadRanges) +
-                                  (ap->rank - rank) * sizeof(CeanReadDim));
-    if (res == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-
-    res->arr_desc = const_cast<Arr_Desc*>(ap);
-    res->current_number = 0;
-    res->range_size = length;
-    res->last_noncont_ind = rank;
-
-    // calculate number of contiguous ranges inside noncontiguous dimensions
-    int count = 1;
-    bool prev_is_cont = true;
-    int64_t offset = 0;
-
-    for (; rank >= 0; rank--) {
-        res->Dim[rank].count = count;
-        res->Dim[rank].size = ap->dim[rank].stride * ap->dim[rank].size;
-        count *= (prev_is_cont && ap->dim[rank].stride == 1? 1 :
-            (ap->dim[rank].upper - ap->dim[rank].lower +
-            ap->dim[rank].stride) / ap->dim[rank].stride);
-        prev_is_cont = false;
-        offset +=(ap->dim[rank].lower - ap->dim[rank].lindex) *
-                 ap->dim[rank].size;
-    }
-    res->range_max_number = count;
-    res -> ptr = (void*)ap->base;
-    res -> init_offset = offset;
-    return res;
-}
-
-// check if ranges described by 1 argument could be transferred into ranges
-// described by 2-nd one
-bool cean_ranges_match(
-    CeanReadRanges * read_rng1,
-    CeanReadRanges * read_rng2
-)
-{
-    return ( read_rng1 == NULL || read_rng2 == NULL ||
-            (read_rng1->range_size % read_rng2->range_size == 0 ||
-            read_rng2->range_size % read_rng1->range_size == 0));
-}
-
-// Set next offset and length and returns true for next range.
-// Returns false if the ranges are over.
-bool get_next_range(
-    CeanReadRanges * read_rng,
-    int64_t *offset
-)
-{
-    if (++read_rng->current_number > read_rng->range_max_number) {
-        read_rng->current_number = 0;
-        return false;
-    }
-    int rank = 0;
-    int num = read_rng->current_number - 1;
-    int64_t cur_offset = 0;
-    int num_loc;
-    for (; rank <= read_rng->last_noncont_ind; rank++) {
-        num_loc = num / read_rng->Dim[rank].count;
-        cur_offset += num_loc * read_rng->Dim[rank].size;
-        num = num % read_rng->Dim[rank].count;
-    }
-    *offset = cur_offset + read_rng->init_offset;
-    return true;
-}
-
-bool is_arr_desc_contiguous(const Arr_Desc *ap)
-{
-    int64_t rank = ap->rank - 1;
-    int64_t length = ap->dim[rank].size;
-    for (; rank >= 0; rank--) {
-        if (ap->dim[rank].stride > 1 &&
-            ap->dim[rank].upper - ap->dim[rank].lower != 0) {
-                return false;
-        }
-        else if (length != ap->dim[rank].size) {
-            for (; rank >= 0; rank--) {
-                if (ap->dim[rank].upper - ap->dim[rank].lower != 0) {
-                    return false;
-                }
-            }
-            return true;
-        }
-        length *= (ap->dim[rank].upper - ap->dim[rank].lower + 1);
-    }
-    return true;
-}
-
-int64_t cean_get_transf_size(CeanReadRanges * read_rng)
-{
-    return(read_rng->range_max_number * read_rng->range_size);
-}
-
-static uint64_t last_left, last_right;
-
-typedef void (*fpp)(
-    const char *spaces,
-    uint64_t low,
-    uint64_t high,
-    int esize,
-    bool print_values
-);
-
-static void generate_one_range(
-    const char *spaces,
-    uint64_t lrange,
-    uint64_t rrange,
-    fpp fp,
-    int esize,
-    bool print_values
-)
-{
-    OFFLOAD_TRACE(3,
-        "%s    generate_one_range(lrange=%p, rrange=%p, esize=%d)\n",
-        spaces, (void*)lrange, (void*)rrange, esize);
-    if (last_left == -1) {
-        // First range
-        last_left = lrange;
-    }
-    else {
-        if (lrange == last_right+1) {
-            // Extend previous range, don't print
-        }
-        else {
-            (*fp)(spaces, last_left, last_right, esize, print_values);
-            last_left = lrange;
-        }
-    }
-    last_right = rrange;
-}
-
-static bool element_is_contiguous(
-    uint64_t rank,
-    const struct Dim_Desc *ddp
-)
-{    
-    if (rank == 1) {
-        return (ddp[0].lower == ddp[0].upper || ddp[0].stride == 1);
-    }
-    else {
-        return ((ddp[0].size == (ddp[1].upper-ddp[1].lower+1)*ddp[1].size) &&
-                 element_is_contiguous(rank-1, ddp++));
-    }
-}
-
-static void generate_mem_ranges_one_rank(
-    const char *spaces,
-    uint64_t base,
-    uint64_t rank,
-    const struct Dim_Desc *ddp,
-    fpp fp,
-    int esize,
-    bool print_values
-)
-{
-    uint64_t lindex = ddp->lindex;
-    uint64_t lower = ddp->lower;
-    uint64_t upper = ddp->upper;
-    uint64_t stride = ddp->stride;
-    uint64_t size = ddp->size;
-    OFFLOAD_TRACE(3,
-        "%s    "
-        "generate_mem_ranges_one_rank(base=%p, rank=%lld, lindex=%lld, "
-        "lower=%lld, upper=%lld, stride=%lld, size=%lld, esize=%d)\n",
-        spaces, (void*)base, rank, lindex, lower, upper, stride, size, esize);
-
-    if (element_is_contiguous(rank, ddp)) {
-        uint64_t lrange, rrange;
-        lrange = base + (lower-lindex)*size;
-        rrange = lrange + (upper-lower+1)*size - 1;
-        generate_one_range(spaces, lrange, rrange, fp, esize, print_values);
-    }
-    else {
-        if (rank == 1) {
-            for (int i=lower-lindex; i<=upper-lindex; i+=stride) {
-                uint64_t lrange, rrange;
-                lrange = base + i*size;
-                rrange = lrange + size - 1;
-                generate_one_range(spaces, lrange, rrange,
-                                  fp, esize, print_values);
-            }
-        }
-        else {
-            for (int i=lower-lindex; i<=upper-lindex; i+=stride) {
-                generate_mem_ranges_one_rank(
-                    spaces, base+i*size, rank-1, ddp+1,
-                    fp, esize, print_values);
-
-            }
-        }
-    }
-}
-
-static void generate_mem_ranges(
-    const char *spaces,
-    const Arr_Desc *adp,
-    bool deref,
-    fpp fp,
-    bool print_values
-)
-{
-    uint64_t esize;
-
-    OFFLOAD_TRACE(3,
-        "%s    "
-        "generate_mem_ranges(adp=%p, deref=%d, fp)\n",
-        spaces, adp, deref);
-    last_left = -1;
-    last_right = -2;
-
-    // Element size is derived from last dimension
-    esize = adp->dim[adp->rank-1].size;
-
-    generate_mem_ranges_one_rank(
-        // For c_cean_var the base addr is the address of the data
-        // For c_cean_var_ptr the base addr is dereferenced to get to the data
-        spaces, deref ? *((uint64_t*)(adp->base)) : adp->base,
-        adp->rank, &adp->dim[0], fp, esize, print_values);
-    (*fp)(spaces, last_left, last_right, esize, print_values);
-}
-
-// returns offset and length of the data to be transferred
-void __arr_data_offset_and_length(
-    const Arr_Desc *adp,
-    int64_t &offset,
-    int64_t &length
-)
-{
-    int64_t rank = adp->rank - 1;
-    int64_t size = adp->dim[rank].size;
-    int64_t r_off = 0; // offset from right boundary
-
-    // find the rightmost dimension which takes just part of its
-    // range. We define it if the size of left rank is not equal
-    // the range's length between upper and lower boungaries
-    while (rank > 0) {
-        size *= (adp->dim[rank].upper - adp->dim[rank].lower + 1);
-        if (size != adp->dim[rank - 1].size) {
-            break;
-        }
-        rank--;
-    }
-
-    offset = (adp->dim[rank].lower - adp->dim[rank].lindex) *
-             adp->dim[rank].size;
-
-    // find gaps both from the left - offset and from the right - r_off
-    for (rank--; rank >= 0; rank--) {
-        offset += (adp->dim[rank].lower - adp->dim[rank].lindex) *
-                  adp->dim[rank].size;
-        r_off += adp->dim[rank].size -
-                 (adp->dim[rank + 1].upper - adp->dim[rank + 1].lindex + 1) *
-                 adp->dim[rank + 1].size;
-    }
-    length = (adp->dim[0].upper - adp->dim[0].lindex + 1) *
-             adp->dim[0].size - offset - r_off;
-}
-
-#if OFFLOAD_DEBUG > 0
-
-static void print_range(
-    const char *spaces,
-    uint64_t low,
-    uint64_t high,
-    int esize,
-    bool print_values
-)
-{
-    char buffer[1024];
-    char number[32];
-
-    OFFLOAD_TRACE(3, "%s        print_range(low=%p, high=%p, esize=%d)\n",
-        spaces, (void*)low, (void*)high, esize);
-
-    if (console_enabled < 4 || !print_values) {
-        return;
-    }
-    OFFLOAD_TRACE(4, "%s            values:\n", spaces);
-    int count = 0;
-    buffer[0] = '\0';
-    while (low <= high)
-    {
-        switch (esize)
-        {
-        case 1:
-            sprintf(number, "%d ", *((char *)low));
-            low += 1;
-            break;
-        case 2:
-            sprintf(number, "%d ", *((short *)low));
-            low += 2;
-            break;
-        case 4:
-            sprintf(number, "%d ", *((int *)low));
-            low += 4;
-            break;
-        default:
-            sprintf(number, "0x%016x ", *((uint64_t *)low));
-            low += 8;
-            break;
-        }
-        strcat(buffer, number);
-        count++;
-        if (count == 10) {
-            OFFLOAD_TRACE(4, "%s            %s\n", spaces, buffer);
-            count = 0;
-            buffer[0] = '\0';
-        }
-    }
-    if (count != 0) {
-        OFFLOAD_TRACE(4, "%s            %s\n", spaces, buffer);
-    }
-}
-
-void __arr_desc_dump(
-    const char *spaces,
-    const char *name,
-    const Arr_Desc *adp,
-    bool deref,
-    bool print_values
-)
-{
-    OFFLOAD_TRACE(2, "%s%s CEAN expression %p\n", spaces, name, adp);
-
-    if (adp != 0) {
-        OFFLOAD_TRACE(2, "%s    base=%llx, rank=%lld\n",
-            spaces, adp->base, adp->rank);
-
-        for (int i = 0; i < adp->rank; i++) {
-            OFFLOAD_TRACE(2,
-                          "%s    dimension %d: size=%lld, lindex=%lld, "
-                          "lower=%lld, upper=%lld, stride=%lld\n",
-                          spaces, i, adp->dim[i].size, adp->dim[i].lindex,
-                          adp->dim[i].lower, adp->dim[i].upper,
-                          adp->dim[i].stride);
-        }
-        // For c_cean_var the base addr is the address of the data
-        // For c_cean_var_ptr the base addr is dereferenced to get to the data
-        generate_mem_ranges(spaces, adp, deref, &print_range, print_values);
-    }
-}
-
-void noncont_struct_dump(
-    const char *spaces,
-    const char *name,
-    struct NonContigDesc *desc_p)
-{
-   OFFLOAD_TRACE(2, "%s%s NonCont Struct expression %p\n",
-                 spaces, name, desc_p->base);
-   if (desc_p) {
-       OFFLOAD_TRACE(2, "%s%s    base=%p\n", spaces, name, desc_p->base);
-       for (int i = 0; i < desc_p->interval_cnt; i++) {
-           OFFLOAD_TRACE(2,"%s    dimension %d: lower=%lld, size=%lld\n",
-               spaces, i, desc_p->interval[i].lower, desc_p->interval[i].size);
-       }
-   }
-}
-
-int64_t get_noncont_struct_size(struct NonContigDesc *desc_p)
-{
-    int index = desc_p->interval_cnt - 1;
-    return(desc_p->interval[index].lower + desc_p->interval[index].size);
-}
-
-#endif // OFFLOAD_DEBUG
diff --git a/liboffloadmic/runtime/cean_util.h b/liboffloadmic/runtime/cean_util.h
deleted file mode 100644 (file)
index 1ba8793..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef CEAN_UTIL_H_INCLUDED
-#define CEAN_UTIL_H_INCLUDED
-
-#include <stdint.h>
-#include "offload_util.h"
-
-// CEAN expression representation
-struct Dim_Desc {
-    int64_t size;       // Length of data type
-    int64_t lindex;     // Lower index
-    int64_t lower;      // Lower section bound
-    int64_t upper;      // Upper section bound
-    int64_t stride;     // Stride
-};
-
-struct Arr_Desc {
-    int64_t base;       // Base address
-    int64_t rank;       // Rank of array
-    Dim_Desc dim[1];
-};
-
-struct CeanReadDim {
-    int64_t count; // The number of elements in this dimension
-    int64_t size;  // The number of bytes between successive
-                   // elements in this dimension.
-};
-
-struct CeanReadRanges {
-    Arr_Desc* arr_desc;
-    void *  ptr;
-    int64_t current_number;   // the number of ranges read
-    int64_t range_max_number; // number of contiguous ranges
-    int64_t range_size;       // size of max contiguous range
-    int     last_noncont_ind; // size of Dim array
-    int64_t init_offset;      // offset of 1-st element from array left bound
-    CeanReadDim Dim[1];
-};
-
-struct IntervalDesc {
-    int64_t lower;   // Lower  index
-    int64_t size;    // Size of each element at this interval
-};
-
-struct NonContigDesc {
-    int64_t base;            // Base address
-    int64_t interval_cnt;    // Number of intervals
-    struct IntervalDesc interval[1];
-};
-
-// array descriptor length
-#define __arr_desc_length(rank) \
-    (sizeof(int64_t) + sizeof(Dim_Desc) * (rank))
-
-// returns offset and length of the data to be transferred
-DLL_LOCAL void __arr_data_offset_and_length(const Arr_Desc *adp,
-                                  int64_t &offset,
-                                  int64_t &length);
-
-// define if data array described by argument is contiguous one
-DLL_LOCAL bool is_arr_desc_contiguous(const Arr_Desc *ap);
-
-// allocate element of CeanReadRanges type initialized
-// to read consequently contiguous ranges described by "ap" argument
-DLL_LOCAL CeanReadRanges * init_read_ranges_arr_desc(const Arr_Desc *ap);
-
-// check if ranges described by 1 argument could be transferred into ranges
-// described by 2-nd one
-DLL_LOCAL bool cean_ranges_match(
-    CeanReadRanges * read_rng1,
-    CeanReadRanges * read_rng2
-);
-
-// first argument - returned value by call to init_read_ranges_arr_desc.
-// returns true if offset and length of next range is set successfuly.
-// returns false if the ranges is over.
-DLL_LOCAL bool get_next_range(
-    CeanReadRanges * read_rng,
-    int64_t *offset
-);
-
-// returns number of transferred bytes
-DLL_LOCAL int64_t cean_get_transf_size(CeanReadRanges * read_rng);
-
-#if OFFLOAD_DEBUG > 0
-// prints array descriptor contents to stderr
-DLL_LOCAL void    __arr_desc_dump(
-    const char *spaces,
-    const char *name,
-    const Arr_Desc *adp,
-    bool dereference,
-    bool print_values);
-
-DLL_LOCAL void noncont_struct_dump(
-    const char *spaces,
-    const char *name,
-    struct NonContigDesc *desc_p);
-
-DLL_LOCAL int64_t get_noncont_struct_size(struct NonContigDesc *desc_p);
-
-#define ARRAY_DESC_DUMP(spaces, name, adp, dereference, print_values) \
-    if (console_enabled >= 2) \
-        __arr_desc_dump(spaces, name, adp, dereference, print_values);
-#else
-#define ARRAY_DESC_DUMP(spaces, name, adp, dereference, print_values)
-#endif // OFFLOAD_DEBUG
-
-#endif // CEAN_UTIL_H_INCLUDED
diff --git a/liboffloadmic/runtime/coi/coi_client.cpp b/liboffloadmic/runtime/coi/coi_client.cpp
deleted file mode 100644 (file)
index 179a302..0000000
+++ /dev/null
@@ -1,494 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// The COI host interface
-
-#include "coi_client.h"
-#include "../offload_common.h"
-
-namespace COI {
-
-#define COI_VERSION1    "COI_1.0"
-#define COI_VERSION2    "COI_2.0"
-
-bool            is_available;
-static void*    lib_handle;
-
-// pointers to functions from COI library
-COIRESULT (*EngineGetCount)(COI_ISA_TYPE, uint32_t*);
-COIRESULT (*EngineGetHandle)(COI_ISA_TYPE, uint32_t, COIENGINE*);
-
-COIRESULT (*ProcessCreateFromMemory)(COIENGINE, const char*, const void*,
-                                     uint64_t, int, const char**, uint8_t,
-                                     const char**, uint8_t, const char*,
-                                     uint64_t, const char*, const char*,
-                                     uint64_t, COIPROCESS*);
-COIRESULT (*ProcessCreateFromFile)(COIENGINE, const char*,
-                                     int, const char**, uint8_t,
-                                     const char**, uint8_t, const char*,
-                                     uint64_t, const char*,COIPROCESS*);
-COIRESULT (*ProcessSetCacheSize)(COIPROCESS, uint64_t, uint32_t,
-                                 uint64_t, uint32_t, uint32_t,
-                                 const COIEVENT*, COIEVENT*);
-COIRESULT (*ProcessDestroy)(COIPROCESS, int32_t, uint8_t, int8_t*, uint32_t*);
-COIRESULT (*ProcessGetFunctionHandles)(COIPROCESS, uint32_t, const char**,
-                                       COIFUNCTION*);
-COIRESULT (*ProcessLoadLibraryFromMemory)(COIPROCESS, const void*, uint64_t,
-                                          const char*, const char*,
-                                          const char*, uint64_t, uint32_t,
-                                          COILIBRARY*);
-COIRESULT (*ProcessUnloadLibrary)(COIPROCESS,
-                                  COILIBRARY);
-COIRESULT (*ProcessRegisterLibraries)(uint32_t, const void**, const uint64_t*,
-                                      const char**, const uint64_t*);
-
-COIRESULT (*PipelineCreate)(COIPROCESS, COI_CPU_MASK, uint32_t, COIPIPELINE*);
-COIRESULT (*PipelineDestroy)(COIPIPELINE);
-COIRESULT (*PipelineRunFunction)(COIPIPELINE, COIFUNCTION, uint32_t,
-                                 const COIBUFFER*, const COI_ACCESS_FLAGS*,
-                                 uint32_t, const COIEVENT*, const void*,
-                                 uint16_t, void*, uint16_t, COIEVENT*);
-
-COIRESULT (*BufferCreate)(uint64_t, COI_BUFFER_TYPE, uint32_t, const void*,
-                          uint32_t, const COIPROCESS*, COIBUFFER*);
-COIRESULT (*BufferCreateFromMemory)(uint64_t, COI_BUFFER_TYPE, uint32_t,
-                                    void*, uint32_t, const COIPROCESS*,
-                                    COIBUFFER*);
-COIRESULT (*BufferDestroy)(COIBUFFER);
-COIRESULT (*BufferMap)(COIBUFFER, uint64_t, uint64_t, COI_MAP_TYPE, uint32_t,
-                       const COIEVENT*, COIEVENT*, COIMAPINSTANCE*, void**);
-COIRESULT (*BufferUnmap)(COIMAPINSTANCE, uint32_t, const COIEVENT*, COIEVENT*);
-COIRESULT (*BufferWrite)(COIBUFFER, uint64_t, const void*, uint64_t,
-                         COI_COPY_TYPE, uint32_t, const COIEVENT*, COIEVENT*);
-COIRESULT (*BufferRead)(COIBUFFER, uint64_t, void*, uint64_t, COI_COPY_TYPE,
-                        uint32_t, const COIEVENT*, COIEVENT*);
-COIRESULT (*BufferReadMultiD)(COIBUFFER, uint64_t,
-                        void *, void *, COI_COPY_TYPE,
-                        uint32_t, const   COIEVENT*, COIEVENT*);
-COIRESULT (*BufferWriteMultiD)(COIBUFFER, const   COIPROCESS,
-                       uint64_t, void *, void *,
-                       COI_COPY_TYPE, uint32_t, const   COIEVENT*, COIEVENT*);
-
-COIRESULT (*BufferCopy)(COIBUFFER, COIBUFFER, uint64_t, uint64_t, uint64_t,
-                        COI_COPY_TYPE, uint32_t, const COIEVENT*, COIEVENT*);
-COIRESULT (*BufferGetSinkAddress)(COIBUFFER, uint64_t*);
-COIRESULT (*BufferSetState)(COIBUFFER, COIPROCESS, COI_BUFFER_STATE,
-                            COI_BUFFER_MOVE_FLAG, uint32_t,
-                            const   COIEVENT*, COIEVENT*);
-
-COIRESULT (*EventWait)(uint16_t, const COIEVENT*, int32_t, uint8_t, uint32_t*,
-                       uint32_t*);
-
-uint64_t  (*PerfGetCycleFrequency)(void);
-
-COIRESULT (*PipelineClearCPUMask) (COI_CPU_MASK);
-
-COIRESULT (*PipelineSetCPUMask) (COIPROCESS, uint32_t,
-                                        uint8_t, COI_CPU_MASK);
-COIRESULT (*EngineGetInfo)(COIENGINE, uint32_t, COI_ENGINE_INFO*);
-
-COIRESULT (*EventRegisterCallback)(
-    const COIEVENT,
-    void (*)(COIEVENT, const COIRESULT, const void*),
-    const void*,
-    const uint64_t);
-
-COIRESULT (*ProcessConfigureDMA)(const uint64_t, const int);
-
-bool init(void)
-{
-#ifndef TARGET_WINNT
-    const char *lib_name = "libcoi_host.so.0";
-#else // TARGET_WINNT
-    const char *lib_name = "coi_host.dll";
-#endif // TARGET_WINNT
-
-    OFFLOAD_DEBUG_TRACE(2, "Loading COI library %s ...\n", lib_name);
-    lib_handle = DL_open(lib_name);
-    if (lib_handle == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to load the library\n");
-        return false;
-    }
-
-    EngineGetCount =
-        (COIRESULT (*)(COI_ISA_TYPE, uint32_t*))
-            DL_sym(lib_handle, "COIEngineGetCount", COI_VERSION1);
-    if (EngineGetCount == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIEngineGetCount");
-        fini();
-        return false;
-    }
-
-    EngineGetHandle =
-        (COIRESULT (*)(COI_ISA_TYPE, uint32_t, COIENGINE*))
-            DL_sym(lib_handle, "COIEngineGetHandle", COI_VERSION1);
-    if (EngineGetHandle == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIEngineGetHandle");
-        fini();
-        return false;
-    }
-
-    ProcessCreateFromMemory =
-        (COIRESULT (*)(COIENGINE, const char*, const void*, uint64_t, int,
-                       const char**, uint8_t, const char**, uint8_t,
-                       const char*, uint64_t, const char*, const char*,
-                       uint64_t, COIPROCESS*))
-            DL_sym(lib_handle, "COIProcessCreateFromMemory", COI_VERSION1);
-    if (ProcessCreateFromMemory == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessCreateFromMemory");
-        fini();
-        return false;
-    }
-
-    ProcessSetCacheSize =
-           (COIRESULT (*)(COIPROCESS, uint64_t, uint32_t,
-                                 uint64_t, uint32_t, uint32_t,
-                                 const COIEVENT*, COIEVENT*))
-               DL_sym(lib_handle, "COIProcessSetCacheSize", COI_VERSION1);
-    if (ProcessSetCacheSize == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessSetCacheSize");
-#if 0  // for now disable as ProcessSetCacheSize is not available on < MPSS 3.4
-        fini();
-        return false;
-#endif
-    }
-
-    ProcessCreateFromFile =
-           (COIRESULT (*)(COIENGINE, const char*, int, const char**, uint8_t,
-                          const char**, uint8_t, const char*, uint64_t,
-                          const char*, COIPROCESS*))
-            DL_sym(lib_handle, "COIProcessCreateFromFile", COI_VERSION1);
-    if (ProcessCreateFromFile == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessCreateFromFile");
-        fini();
-        return false;
-    }
-
-    ProcessDestroy =
-        (COIRESULT (*)(COIPROCESS, int32_t, uint8_t, int8_t*,
-                       uint32_t*))
-            DL_sym(lib_handle, "COIProcessDestroy", COI_VERSION1);
-    if (ProcessDestroy == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessDestroy");
-        fini();
-        return false;
-    }
-
-    ProcessGetFunctionHandles =
-        (COIRESULT (*)(COIPROCESS, uint32_t, const char**, COIFUNCTION*))
-            DL_sym(lib_handle, "COIProcessGetFunctionHandles", COI_VERSION1);
-    if (ProcessGetFunctionHandles == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessGetFunctionHandles");
-        fini();
-        return false;
-    }
-
-    ProcessLoadLibraryFromMemory =
-        (COIRESULT (*)(COIPROCESS, const void*, uint64_t, const char*,
-                       const char*, const char*, uint64_t, uint32_t,
-                       COILIBRARY*))
-            DL_sym(lib_handle, "COIProcessLoadLibraryFromMemory", COI_VERSION2);
-    if (ProcessLoadLibraryFromMemory == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessLoadLibraryFromMemory");
-        fini();
-        return false;
-    }
-
-    ProcessUnloadLibrary =
-        (COIRESULT (*)(COIPROCESS,
-                       COILIBRARY))
-            DL_sym(lib_handle, "COIProcessUnloadLibrary", COI_VERSION1);
-    if (ProcessUnloadLibrary == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessUnloadLibrary");
-        fini();
-        return false;
-    }
-
-    ProcessRegisterLibraries =
-        (COIRESULT (*)(uint32_t, const void**, const uint64_t*, const char**,
-                       const uint64_t*))
-            DL_sym(lib_handle, "COIProcessRegisterLibraries", COI_VERSION1);
-    if (ProcessRegisterLibraries == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIProcessRegisterLibraries");
-        fini();
-        return false;
-    }
-
-    PipelineCreate =
-        (COIRESULT (*)(COIPROCESS, COI_CPU_MASK, uint32_t, COIPIPELINE*))
-            DL_sym(lib_handle, "COIPipelineCreate", COI_VERSION1);
-    if (PipelineCreate == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIPipelineCreate");
-        fini();
-        return false;
-    }
-
-    PipelineDestroy =
-        (COIRESULT (*)(COIPIPELINE))
-            DL_sym(lib_handle, "COIPipelineDestroy", COI_VERSION1);
-    if (PipelineDestroy == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIPipelineDestroy");
-        fini();
-        return false;
-    }
-
-    PipelineRunFunction =
-        (COIRESULT (*)(COIPIPELINE, COIFUNCTION, uint32_t, const COIBUFFER*,
-                       const COI_ACCESS_FLAGS*, uint32_t, const COIEVENT*,
-                       const void*, uint16_t, void*, uint16_t, COIEVENT*))
-            DL_sym(lib_handle, "COIPipelineRunFunction", COI_VERSION1);
-    if (PipelineRunFunction == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIPipelineRunFunction");
-        fini();
-        return false;
-    }
-
-    BufferCreate =
-        (COIRESULT (*)(uint64_t, COI_BUFFER_TYPE, uint32_t, const void*,
-                       uint32_t, const COIPROCESS*, COIBUFFER*))
-            DL_sym(lib_handle, "COIBufferCreate", COI_VERSION1);
-    if (BufferCreate == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferCreate");
-        fini();
-        return false;
-    }
-
-    BufferCreateFromMemory =
-        (COIRESULT (*)(uint64_t, COI_BUFFER_TYPE, uint32_t, void*,
-                       uint32_t, const COIPROCESS*, COIBUFFER*))
-            DL_sym(lib_handle, "COIBufferCreateFromMemory", COI_VERSION1);
-    if (BufferCreateFromMemory == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferCreateFromMemory");
-        fini();
-        return false;
-    }
-
-    BufferDestroy =
-        (COIRESULT (*)(COIBUFFER))
-            DL_sym(lib_handle, "COIBufferDestroy", COI_VERSION1);
-    if (BufferDestroy == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferDestroy");
-        fini();
-        return false;
-    }
-
-    BufferMap =
-        (COIRESULT (*)(COIBUFFER, uint64_t, uint64_t, COI_MAP_TYPE, uint32_t,
-                       const COIEVENT*, COIEVENT*, COIMAPINSTANCE*,
-                       void**))
-            DL_sym(lib_handle, "COIBufferMap", COI_VERSION1);
-    if (BufferMap == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferMap");
-        fini();
-        return false;
-    }
-
-    BufferUnmap =
-        (COIRESULT (*)(COIMAPINSTANCE, uint32_t, const COIEVENT*,
-                       COIEVENT*))
-            DL_sym(lib_handle, "COIBufferUnmap", COI_VERSION1);
-    if (BufferUnmap == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferUnmap");
-        fini();
-        return false;
-    }
-
-    BufferWrite =
-        (COIRESULT (*)(COIBUFFER, uint64_t, const void*, uint64_t,
-                       COI_COPY_TYPE, uint32_t, const COIEVENT*,
-                       COIEVENT*))
-            DL_sym(lib_handle, "COIBufferWrite", COI_VERSION1);
-    if (BufferWrite == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferWrite");
-        fini();
-        return false;
-    }
-
-    BufferRead =
-        (COIRESULT (*)(COIBUFFER, uint64_t, void*, uint64_t,
-                                     COI_COPY_TYPE, uint32_t,
-                                     const COIEVENT*, COIEVENT*))
-            DL_sym(lib_handle, "COIBufferRead", COI_VERSION1);
-    if (BufferRead == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferRead");
-        fini();
-        return false;
-    }
-
-    BufferReadMultiD =
-        (COIRESULT (*)(COIBUFFER, uint64_t,
-                       void *, void *, COI_COPY_TYPE,
-                       uint32_t, const   COIEVENT*, COIEVENT*))
-            DL_sym(lib_handle, "COIBufferReadMultiD", COI_VERSION1);
-    // We  accept that coi library has no COIBufferReadMultiD routine.
-    // So there is no check for zero value
-
-    BufferWriteMultiD =
-        (COIRESULT (*)(COIBUFFER, const   COIPROCESS,
-                       uint64_t, void *, void *,
-                       COI_COPY_TYPE, uint32_t, const   COIEVENT*, COIEVENT*))
-            DL_sym(lib_handle, "COIBufferWriteMultiD", COI_VERSION1);
-    // We  accept that coi library has no COIBufferWriteMultiD routine.
-    // So there is no check for zero value
-
-    BufferCopy =
-        (COIRESULT (*)(COIBUFFER, COIBUFFER, uint64_t, uint64_t, uint64_t,
-                       COI_COPY_TYPE, uint32_t, const COIEVENT*,
-                       COIEVENT*))
-            DL_sym(lib_handle, "COIBufferCopy", COI_VERSION1);
-    if (BufferCopy == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferCopy");
-        fini();
-        return false;
-    }
-
-    BufferGetSinkAddress =
-        (COIRESULT (*)(COIBUFFER, uint64_t*))
-            DL_sym(lib_handle, "COIBufferGetSinkAddress", COI_VERSION1);
-    if (BufferGetSinkAddress == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferGetSinkAddress");
-        fini();
-        return false;
-    }
-
-    BufferSetState =
-        (COIRESULT(*)(COIBUFFER, COIPROCESS, COI_BUFFER_STATE,
-                      COI_BUFFER_MOVE_FLAG, uint32_t, const COIEVENT*,
-                      COIEVENT*))
-            DL_sym(lib_handle, "COIBufferSetState", COI_VERSION1);
-    if (BufferSetState == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIBufferSetState");
-        fini();
-        return false;
-    }
-
-    EventWait =
-        (COIRESULT (*)(uint16_t, const COIEVENT*, int32_t, uint8_t,
-                       uint32_t*, uint32_t*))
-            DL_sym(lib_handle, "COIEventWait", COI_VERSION1);
-    if (EventWait == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIEventWait");
-        fini();
-        return false;
-    }
-
-    PerfGetCycleFrequency =
-        (uint64_t (*)(void))
-            DL_sym(lib_handle, "COIPerfGetCycleFrequency", COI_VERSION1);
-    if (PerfGetCycleFrequency == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIPerfGetCycleFrequency");
-        fini();
-        return false;
-    }
-
-    PipelineClearCPUMask =
-        (COIRESULT (*)(COI_CPU_MASK))
-            DL_sym(lib_handle, "COIPipelineClearCPUMask", COI_VERSION1);
-    if (PipelineClearCPUMask == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIPipelineClearCPUMask");
-        fini();
-        return false;
-    }
-
-    PipelineSetCPUMask =
-        (COIRESULT (*)(COIPROCESS, uint32_t,uint8_t, COI_CPU_MASK))
-            DL_sym(lib_handle, "COIPipelineSetCPUMask", COI_VERSION1);
-    if (PipelineSetCPUMask == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIPipelineSetCPUMask");
-        fini();
-        return false;
-    }
-
-    EngineGetInfo =
-        (COIRESULT (*)(COIENGINE, uint32_t, COI_ENGINE_INFO*))
-            DL_sym(lib_handle, "COIEngineGetInfo", COI_VERSION1);
-    if (EngineGetInfo == 0) {
-        OFFLOAD_DEBUG_TRACE(2, "Failed to find %s in COI library\n",
-                            "COIEngineGetInfo");
-        fini();
-        return false;
-    }
-    
-    EventRegisterCallback =
-        (COIRESULT (*)(COIEVENT,
-         void (*)(COIEVENT, const COIRESULT, const void*),
-         const void*,
-         const uint64_t))
-            DL_sym(lib_handle, "COIEventRegisterCallback", COI_VERSION1);
-
-    ProcessConfigureDMA =
-        (COIRESULT (*)(const uint64_t, const int))
-            DL_sym(lib_handle, "COIProcessConfigureDMA", COI_VERSION1);
-    
-    is_available = true;
-
-    return true;
-}
-
-void fini(void)
-{
-    is_available = false;
-
-    if (lib_handle != 0) {
-#ifndef TARGET_WINNT
-        DL_close(lib_handle);
-#endif // TARGET_WINNT
-        lib_handle = 0;
-    }
-}
-
-} // namespace COI
diff --git a/liboffloadmic/runtime/coi/coi_client.h b/liboffloadmic/runtime/coi/coi_client.h
deleted file mode 100644 (file)
index b5b0efc..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// The interface between offload library and the COI API on the host
-
-#ifndef COI_CLIENT_H_INCLUDED
-#define COI_CLIENT_H_INCLUDED
-
-#include <common/COIPerf_common.h>
-#include <common/COIMacros_common.h>
-#include <source/COIEngine_source.h>
-#include <source/COIProcess_source.h>
-#include <source/COIPipeline_source.h>
-#include <source/COIBuffer_source.h>
-#include <source/COIEvent_source.h>
-
-#include <string.h>
-
-#include "../liboffload_error_codes.h"
-#include "../offload_util.h"
-
-#define MIC_ENGINES_MAX     128
-
-#if MIC_ENGINES_MAX < COI_MAX_ISA_MIC_DEVICES
-#error MIC_ENGINES_MAX need to be increased
-#endif
-
-// COI library interface
-namespace COI {
-
-DLL_LOCAL extern bool init(void);
-DLL_LOCAL extern void fini(void);
-
-DLL_LOCAL extern bool is_available;
-
-// pointers to functions from COI library
-DLL_LOCAL extern COIRESULT (*EngineGetCount)(COI_ISA_TYPE, uint32_t*);
-DLL_LOCAL extern COIRESULT (*EngineGetHandle)(COI_ISA_TYPE, uint32_t, COIENGINE*);
-
-DLL_LOCAL extern COIRESULT (*ProcessCreateFromMemory)(COIENGINE, const char*,
-                                           const void*, uint64_t, int,
-                                           const char**, uint8_t,
-                                           const char**, uint8_t,
-                                           const char*, uint64_t,
-                                           const char*,
-                                           const char*, uint64_t,
-                                           COIPROCESS*);
-DLL_LOCAL extern COIRESULT (*ProcessCreateFromFile)(COIENGINE, const char*, int,
-                                          const char**, uint8_t,
-                                          const char**,
-                                          uint8_t,
-                                          const char*,
-                                          uint64_t,
-                                          const char*,
-                                          COIPROCESS*);
-DLL_LOCAL extern COIRESULT (*ProcessSetCacheSize)(COIPROCESS, uint64_t, uint32_t,
-                                                uint64_t, uint32_t, uint32_t,
-                                                const COIEVENT*, COIEVENT*);
-DLL_LOCAL extern COIRESULT (*ProcessDestroy)(COIPROCESS, int32_t, uint8_t,
-                                  int8_t*, uint32_t*);
-DLL_LOCAL extern COIRESULT (*ProcessGetFunctionHandles)(COIPROCESS, uint32_t,
-                                             const char**,
-                                             COIFUNCTION*);
-DLL_LOCAL extern COIRESULT (*ProcessLoadLibraryFromMemory)(COIPROCESS,
-                                                const void*,
-                                                uint64_t,
-                                                const char*,
-                                                const char*,
-                                                const char*,
-                                                uint64_t,
-                                                uint32_t,
-                                                COILIBRARY*);
-
-DLL_LOCAL extern COIRESULT (*ProcessUnloadLibrary)(COIPROCESS,
-                                                COILIBRARY);
-
-DLL_LOCAL extern COIRESULT (*ProcessRegisterLibraries)(uint32_t,
-                                            const void**,
-                                            const uint64_t*,
-                                            const char**,
-                                            const uint64_t*);
-
-DLL_LOCAL extern COIRESULT (*PipelineCreate)(COIPROCESS, COI_CPU_MASK, uint32_t,
-                                  COIPIPELINE*);
-DLL_LOCAL extern COIRESULT (*PipelineDestroy)(COIPIPELINE);
-DLL_LOCAL extern COIRESULT (*PipelineRunFunction)(COIPIPELINE, COIFUNCTION,
-                                       uint32_t, const COIBUFFER*,
-                                       const COI_ACCESS_FLAGS*,
-                                       uint32_t, const COIEVENT*,
-                                       const void*, uint16_t, void*,
-                                       uint16_t, COIEVENT*);
-
-DLL_LOCAL extern COIRESULT (*BufferCreate)(uint64_t, COI_BUFFER_TYPE, uint32_t,
-                                const void*, uint32_t,
-                                const COIPROCESS*, COIBUFFER*);
-DLL_LOCAL extern COIRESULT (*BufferCreateFromMemory)(uint64_t, COI_BUFFER_TYPE,
-                                          uint32_t, void*,
-                                          uint32_t, const COIPROCESS*,
-                                          COIBUFFER*);
-DLL_LOCAL extern COIRESULT (*BufferDestroy)(COIBUFFER);
-DLL_LOCAL extern COIRESULT (*BufferMap)(COIBUFFER, uint64_t, uint64_t,
-                             COI_MAP_TYPE, uint32_t, const COIEVENT*,
-                             COIEVENT*, COIMAPINSTANCE*, void**);
-DLL_LOCAL extern COIRESULT (*BufferUnmap)(COIMAPINSTANCE, uint32_t,
-                               const COIEVENT*, COIEVENT*);
-DLL_LOCAL extern COIRESULT (*BufferWrite)(COIBUFFER, uint64_t, const void*,
-                               uint64_t, COI_COPY_TYPE, uint32_t,
-                               const COIEVENT*, COIEVENT*);
-DLL_LOCAL extern COIRESULT (*BufferRead)(COIBUFFER, uint64_t, void*, uint64_t,
-                              COI_COPY_TYPE, uint32_t,
-                              const COIEVENT*, COIEVENT*);
-DLL_LOCAL extern COIRESULT (*BufferReadMultiD)(COIBUFFER, uint64_t,
-                            void *, void *, COI_COPY_TYPE,
-                            uint32_t, const   COIEVENT*, COIEVENT*);
-DLL_LOCAL extern COIRESULT (*BufferWriteMultiD)(COIBUFFER, const   COIPROCESS,
-                            uint64_t, void *, void *,
-                            COI_COPY_TYPE, uint32_t, const   COIEVENT*, COIEVENT*);
-
-DLL_LOCAL extern COIRESULT (*BufferCopy)(COIBUFFER, COIBUFFER, uint64_t, uint64_t,
-                              uint64_t, COI_COPY_TYPE, uint32_t,
-                              const COIEVENT*, COIEVENT*);
-DLL_LOCAL extern COIRESULT (*BufferGetSinkAddress)(COIBUFFER, uint64_t*);
-DLL_LOCAL extern COIRESULT (*BufferSetState)(COIBUFFER, COIPROCESS, COI_BUFFER_STATE,
-                                   COI_BUFFER_MOVE_FLAG, uint32_t,
-                                   const   COIEVENT*, COIEVENT*);
-
-DLL_LOCAL extern COIRESULT (*EventWait)(uint16_t, const COIEVENT*, int32_t,
-                           uint8_t, uint32_t*, uint32_t*);
-
-DLL_LOCAL extern uint64_t (*PerfGetCycleFrequency)(void);
-
-DLL_LOCAL extern COIRESULT (*ProcessConfigureDMA)(const uint64_t, const int);
-
-extern COIRESULT (*PipelineClearCPUMask)(COI_CPU_MASK);
-
-extern COIRESULT (*PipelineSetCPUMask)(COIPROCESS, uint32_t,
-                                        uint8_t, COI_CPU_MASK);
-extern COIRESULT (*EngineGetInfo)(COIENGINE, uint32_t, COI_ENGINE_INFO*);
-
-extern COIRESULT (*EventRegisterCallback)(
-    const COIEVENT,
-    void (*)(COIEVENT, const COIRESULT, const void*),
-    const void*,
-    const uint64_t);
-    
-const int DMA_MODE_READ_WRITE = 1; 
-} // namespace COI
-
-#endif // COI_CLIENT_H_INCLUDED
diff --git a/liboffloadmic/runtime/coi/coi_server.cpp b/liboffloadmic/runtime/coi/coi_server.cpp
deleted file mode 100644 (file)
index 67aa991..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// The COI interface on the target
-
-#include "coi_server.h"
-
-#include "../offload_target.h"
-#include "../offload_timer.h"
-#ifdef MYO_SUPPORT
-#include "../offload_myo_target.h"      // for __offload_myoLibInit/Fini
-#endif // MYO_SUPPORT
-
-#if !defined(CPU_COUNT)
-// if CPU_COUNT is not defined count number of CPUs manually 
-static
-int my_cpu_count(cpu_set_t const *cpu_set) 
-{
-    int res = 0;
-    for (int i = 0; i < sizeof(cpu_set_t) / sizeof(__cpu_mask); ++i) {
-        res += __builtin_popcountl(cpu_set->__bits[i]);
-    }
-    return res;
-}
-// Map CPU_COUNT to our function
-#define CPU_COUNT(x) my_cpu_count(x)
-
-#endif
-
-COINATIVELIBEXPORT
-void server_compute(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    OffloadDescriptor::offload(buffer_count, buffers,
-                               misc_data, misc_data_len,
-                               return_data, return_data_len);
-}
-
-COINATIVELIBEXPORT
-void server_init(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    struct init_data {
-        int  device_index;
-        int  devices_total;
-        int  console_level;
-        int  offload_report_level;
-    } *data = (struct init_data*) misc_data;
-
-    // set device index and number of total devices
-    mic_index = data->device_index;
-    mic_engines_total = data->devices_total;
-
-    // initialize trace level
-    console_enabled = data->console_level;
-    offload_report_level = data->offload_report_level;
-
-    // return back the process id
-    *((pid_t*) return_data) = getpid();
-}
-
-COINATIVELIBEXPORT
-void server_var_table_size(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    struct Params {
-        int64_t nelems;
-        int64_t length;
-    } *params;
-
-    params = static_cast<Params*>(return_data);
-    params->length = __offload_vars.table_size(params->nelems);
-}
-
-COINATIVELIBEXPORT
-void server_var_table_copy(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    __offload_vars.table_copy(buffers[0], *static_cast<int64_t*>(misc_data));
-}
-
-COINATIVELIBEXPORT
-void server_set_stream_affinity(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-  /* kmp affinity is not supported by GCC.  */
-}
-
-#ifdef MYO_SUPPORT
-// temporary workaround for blocking behavior of myoiLibInit/Fini calls
-COINATIVELIBEXPORT
-void server_myoinit(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    __offload_myoLibInit();
-}
-
-COINATIVELIBEXPORT
-void server_myofini(
-    uint32_t  buffer_count,
-    void**    buffers,
-    uint64_t* buffers_len,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    __offload_myoLibFini();
-}
-#endif // MYO_SUPPORT
diff --git a/liboffloadmic/runtime/coi/coi_server.h b/liboffloadmic/runtime/coi/coi_server.h
deleted file mode 100644 (file)
index 1afaa3b..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// The interface between offload library and the COI API on the target
-
-#ifndef COI_SERVER_H_INCLUDED
-#define COI_SERVER_H_INCLUDED
-
-#include <common/COIEngine_common.h>
-#include <common/COIPerf_common.h>
-#include <sink/COIProcess_sink.h>
-#include <sink/COIPipeline_sink.h>
-#include <sink/COIBuffer_sink.h>
-#include <list>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include "../liboffload_error_codes.h"
-
-// wrappers for COI API
-#define PipelineStartExecutingRunFunctions() \
-    { \
-        COIRESULT res = COIPipelineStartExecutingRunFunctions(); \
-        if (res != COI_SUCCESS) { \
-            LIBOFFLOAD_ERROR(c_pipeline_start_run_funcs, mic_index, res); \
-            exit(1); \
-        } \
-    }
-
-#define ProcessWaitForShutdown() \
-    { \
-        COIRESULT res = COIProcessWaitForShutdown(); \
-        if (res != COI_SUCCESS) { \
-            LIBOFFLOAD_ERROR(c_process_wait_shutdown, mic_index, res); \
-            exit(1); \
-        } \
-    }
-
-#define BufferAddRef(buf) \
-    { \
-        COIRESULT res = COIBufferAddRef(buf); \
-        if (res != COI_SUCCESS) { \
-            LIBOFFLOAD_ERROR(c_buf_add_ref, mic_index, res); \
-            exit(1); \
-        } \
-    }
-
-#define BufferReleaseRef(buf) \
-    { \
-        COIRESULT res = COIBufferReleaseRef(buf); \
-        if (res != COI_SUCCESS) { \
-            LIBOFFLOAD_ERROR(c_buf_release_ref, mic_index, res); \
-            exit(1); \
-        } \
-    }
-
-#define EngineGetIndex(index) \
-    { \
-        COI_ISA_TYPE isa_type; \
-        COIRESULT res = COIEngineGetIndex(&isa_type, index); \
-        if (res != COI_SUCCESS) { \
-            LIBOFFLOAD_ERROR(c_get_engine_index, mic_index, res); \
-            exit(1); \
-        } \
-    }
-
-#endif // COI_SERVER_H_INCLUDED
diff --git a/liboffloadmic/runtime/compiler_if_host.cpp b/liboffloadmic/runtime/compiler_if_host.cpp
deleted file mode 100644 (file)
index 4d8feb4..0000000
+++ /dev/null
@@ -1,501 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "compiler_if_host.h"
-
-#include <malloc.h>
-#ifndef TARGET_WINNT
-#include <alloca.h>
-#endif // TARGET_WINNT
-
-// Global counter on host.
-// This variable is used if P2OPT_offload_do_data_persistence == 2.
-// The variable used to identify offload constructs contained in one procedure.
-// Increment of OFFLOAD_CALL_COUNT is inserted at entries of HOST routines with
-// offload constructs.
-static int offload_call_count = 0;
-
-extern "C" OFFLOAD OFFLOAD_TARGET_ACQUIRE(
-    TARGET_TYPE      target_type,
-    int              target_number,
-    int              is_optional,
-    _Offload_status* status,
-    const char*      file,
-    uint64_t         line
-)
-{
-    bool retval;
-    OFFLOAD ofld;
-
-    // initialize status
-    if (status != 0) {
-        status->result = OFFLOAD_UNAVAILABLE;
-        status->device_number = -1;
-        status->data_sent = 0;
-        status->data_received = 0;
-    }
-
-    // make sure libray is initialized
-    retval = __offload_init_library();
-
-    // OFFLOAD_TIMER_INIT must follow call to __offload_init_library
-    OffloadHostTimerData * timer_data = OFFLOAD_TIMER_INIT(file, line);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_total_offload);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_initialize);
-
-    // initialize all devices is init_type is on_offload_all
-    if (retval && __offload_init_type == c_init_on_offload_all) {
-        for (int i = 0; i < mic_engines_total; i++) {
-             mic_engines[i].init();
-        }
-    }
-    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_initialize);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_target_acquire);
-
-    if (target_type == TARGET_HOST) {
-        // Host always available
-        retval = true;
-    }
-    else if (target_type == TARGET_MIC) {
-        if (target_number >= -1) {
-            if (retval) {
-                if (target_number >= 0) {
-                    // User provided the device number
-                    target_number = target_number % mic_engines_total;
-                }
-                else {
-                    // use device 0
-                    target_number = 0;
-                }
-
-                // reserve device in ORSL
-                if (is_optional) {
-                    if (!ORSL::try_reserve(target_number)) {
-                        target_number = -1;
-                    }
-                }
-                else {
-                    if (!ORSL::reserve(target_number)) {
-                        target_number = -1;
-                    }
-                }
-
-                // initialize device
-                if (target_number >= 0 &&
-                    __offload_init_type == c_init_on_offload) {
-                    OFFLOAD_TIMER_START(timer_data, c_offload_host_initialize);
-                    mic_engines[target_number].init();
-                    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_initialize);
-                }
-            }
-            else {
-                // fallback to CPU
-                target_number = -1;
-            }
-
-            if (target_number < 0 || !retval) {
-                if (!is_optional && status == 0) {
-                    LIBOFFLOAD_ERROR(c_device_is_not_available);
-                    exit(1);
-                }
-
-                retval = false;
-            }
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_device_number);
-            exit(1);
-        }
-    }
-
-    if (retval) {
-        ofld = new OffloadDescriptor(target_number, status,
-                                     !is_optional, false, timer_data);
-        OFFLOAD_TIMER_HOST_MIC_NUM(timer_data, target_number);
-        Offload_Report_Prolog(timer_data);
-        OFFLOAD_DEBUG_TRACE_1(2, timer_data->offload_number, c_offload_start,
-                              "Starting offload: target_type = %d, "
-                              "number = %d, is_optional = %d\n",
-                              target_type, target_number, is_optional);
-
-        OFFLOAD_TIMER_STOP(timer_data, c_offload_host_target_acquire);
-    }
-    else {
-        ofld = NULL;
-
-        OFFLOAD_TIMER_STOP(timer_data, c_offload_host_target_acquire);
-        OFFLOAD_TIMER_STOP(timer_data, c_offload_host_total_offload);
-        offload_report_free_data(timer_data);
-    }
-
-    return ofld;
-}
-
-// This routine is called for OpenMP4.5 offload calls
-// OpenMP 4.5 offload is always optional.
-extern "C" OFFLOAD OFFLOAD_TARGET_ACQUIRE1(
-    const int*  device_num,
-    const char* file,
-    uint64_t    line
-)
-{
-    int target_number;
-
-    // make sure libray is initialized and at least one device is available
-    if (!__offload_init_library()) {
-       OFFLOAD_DEBUG_TRACE(2, "No device available, fall back to host\n");
-       return NULL;
-    }
-
-    // OFFLOAD_TIMER_INIT must follow call to __offload_init_library
-
-    OffloadHostTimerData * timer_data = OFFLOAD_TIMER_INIT(file, line);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_total_offload);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_initialize);
-
-    if (__offload_init_type == c_init_on_offload_all) {
-        for (int i = 0; i < mic_engines_total; i++) {
-             mic_engines[i].init();
-        }
-    }
-
-    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_initialize);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_target_acquire);
-
-    // use default device number if it is not provided
-    if (device_num != 0) {
-        target_number = *device_num;
-    }
-    else {
-        target_number = __omp_device_num;
-    }
-
-    // device number should be a non-negative integer value
-    if (target_number < 0) {
-        LIBOFFLOAD_ERROR(c_omp_invalid_device_num);
-        exit(1);
-    }
-
-    // should we do this for OpenMP?
-    target_number %= mic_engines_total;
-
-    // reserve device in ORSL
-    if (!ORSL::reserve(target_number)) {
-        LIBOFFLOAD_ERROR(c_device_is_not_available);
-        exit(1);
-    }
-
-    // initialize device(s)
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_initialize);
-
-    if (__offload_init_type == c_init_on_offload) {
-        mic_engines[target_number].init();
-    }
-
-    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_initialize);
-
-    OFFLOAD ofld =
-        new OffloadDescriptor(target_number, 0, true, true, timer_data);
-
-    OFFLOAD_TIMER_HOST_MIC_NUM(timer_data, target_number);
-
-    Offload_Report_Prolog(timer_data);
-
-    OFFLOAD_DEBUG_TRACE_1(2, timer_data->offload_number, c_offload_start,
-                          "Starting OpenMP offload, device = %d\n",
-                          target_number);
-
-    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_target_acquire);
-
-    return ofld;
-}
-
-extern "C" OFFLOAD OFFLOAD_TARGET_ACQUIRE2(
-    TARGET_TYPE      target_type,
-    int              target_number,
-    int              is_optional,
-    _Offload_status* status,
-    const char*      file,
-    uint64_t         line,
-    const void**     stream
-)
-{
-    bool retval;
-    OFFLOAD ofld;
-
-    // initialize status
-    if (status != 0) {
-        status->result = OFFLOAD_UNAVAILABLE;
-        status->device_number = -1;
-        status->data_sent = 0;
-        status->data_received = 0;
-    }
-
-    // make sure libray is initialized
-    retval = __offload_init_library();
-    // OFFLOAD_TIMER_INIT must follow call to __offload_init_library
-    OffloadHostTimerData * timer_data = OFFLOAD_TIMER_INIT(file, line);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_total_offload);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_initialize);
-
-    // initalize all devices if init_type is on_offload_all
-    if (retval && __offload_init_type == c_init_on_offload_all) {
-        for (int i = 0; i < mic_engines_total; i++) {
-             mic_engines[i].init();
-        }
-    }
-    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_initialize);
-
-    OFFLOAD_TIMER_START(timer_data, c_offload_host_target_acquire);
-
-    if (target_type == TARGET_HOST) {
-        // Host always available
-        retval = true;
-    }
-    else if (target_type == TARGET_MIC) {
-        _Offload_stream handle = *(reinterpret_cast<_Offload_stream*>(stream));
-        Stream * stream = handle ? Stream::find_stream(handle, false) : NULL;
-        if (target_number >= -1) {
-            if (retval) {
-                // device number is defined by stream
-                if (stream) {
-                    target_number = stream->get_device();
-                    target_number = target_number % mic_engines_total;
-                }
-
-                // reserve device in ORSL
-                if (target_number != -1) {
-                    if (is_optional) {
-                        if (!ORSL::try_reserve(target_number)) {
-                            target_number = -1;
-                        }
-                    }
-                    else {
-                        if (!ORSL::reserve(target_number)) {
-                            target_number = -1;
-                        }
-                    }
-                }
-
-                // initialize device
-                if (target_number >= 0 &&
-                    __offload_init_type == c_init_on_offload) {
-                    OFFLOAD_TIMER_START(timer_data, c_offload_host_initialize);
-                    mic_engines[target_number].init();
-                    OFFLOAD_TIMER_STOP(timer_data, c_offload_host_initialize);
-                }
-            }
-            else {
-                // fallback to CPU
-                target_number = -1;
-            }
-            if (!(target_number == -1 && handle == 0)) {
-                if (target_number < 0 || !retval) {
-                    if (!is_optional && status == 0) {
-                        LIBOFFLOAD_ERROR(c_device_is_not_available);
-                        exit(1);
-                    }
-
-                    retval = false;
-                }
-            }
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_device_number);
-            exit(1);
-        }
-    }
-
-    if (retval) {
-        ofld = new OffloadDescriptor(target_number, status,
-                                     !is_optional, false, timer_data);
-        OFFLOAD_TIMER_HOST_MIC_NUM(timer_data, target_number);
-        Offload_Report_Prolog(timer_data);
-        OFFLOAD_DEBUG_TRACE_1(2, timer_data->offload_number, c_offload_start,
-                              "Starting offload: target_type = %d, "
-                              "number = %d, is_optional = %d\n",
-                              target_type, target_number, is_optional);
-
-        OFFLOAD_TIMER_STOP(timer_data, c_offload_host_target_acquire);
-    }
-    else {
-        ofld = NULL;
-
-        OFFLOAD_TIMER_STOP(timer_data, c_offload_host_target_acquire);
-        OFFLOAD_TIMER_STOP(timer_data, c_offload_host_total_offload);
-        offload_report_free_data(timer_data);
-    }
-
-    return ofld;
-}
-
-static int offload_offload_wrap(
-    OFFLOAD ofld,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void **waits,
-    const void **signal,
-    int entry_id,
-    const void *stack_addr,
-    OffloadFlags offload_flags
-)
-{
-    if (signal) {
-       ofld->set_signal(*signal);
-    }
-
-    bool ret = ofld->offload(name, is_empty, vars, vars2, num_vars,
-                             waits, num_waits, signal, entry_id,
-                             stack_addr, offload_flags);
-    if (!ret || (signal == 0 && ofld->get_stream() == 0 &&
-                 !offload_flags.bits.omp_async)) {
-        delete ofld;
-    }
-    return ret;
-}
-
-extern "C" int OFFLOAD_OFFLOAD1(
-    OFFLOAD ofld,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void **waits,
-    const void **signal
-)
-{
-    return offload_offload_wrap(ofld, name, is_empty,
-                            num_vars, vars, vars2,
-                            num_waits, waits,
-                            signal, 0, NULL, {0});
-}
-
-extern "C" int OFFLOAD_OFFLOAD2(
-    OFFLOAD ofld,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void** waits,
-    const void** signal,
-    int entry_id,
-    const void *stack_addr
-)
-{
-    return offload_offload_wrap(ofld, name, is_empty,
-                            num_vars, vars, vars2,
-                            num_waits, waits,
-                            signal, entry_id, stack_addr, {0});
-}
-
-extern "C" int OFFLOAD_OFFLOAD3(
-    OFFLOAD ofld,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void** waits,
-    const void** signal,
-    int entry_id,
-    const void *stack_addr,
-    OffloadFlags offload_flags,
-    const void** stream
-)
-{
-    // 1. if the source is compiled with -traceback then stream is 0
-    // 2. if offload has a stream clause then stream is address of stream value
-    if (stream) {
-        ofld->set_stream(*(reinterpret_cast<_Offload_stream *>(stream)));
-    }
-
-    return offload_offload_wrap(ofld, name, is_empty,
-                            num_vars, vars, vars2,
-                            num_waits, waits,
-                            signal, entry_id, stack_addr, offload_flags);
-}
-
-extern "C" int OFFLOAD_OFFLOAD(
-    OFFLOAD ofld,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void **waits,
-    const void *signal,
-    int entry_id,
-    const void *stack_addr
-)
-{
-    // signal is passed by reference now
-    const void **signal_new = (signal != 0) ? &signal : 0;
-    const void **waits_new = 0;
-    int num_waits_new = 0;
-
-    // remove NULL values from the list of signals to wait for
-    if (num_waits > 0) {
-        waits_new = (const void**) alloca(sizeof(void*) * num_waits);
-        for (int i = 0; i < num_waits; i++) {
-            if (waits[i] != 0) {
-                waits_new[num_waits_new++] = waits[i];
-            }
-        }
-    }
-
-    return OFFLOAD_OFFLOAD1(ofld, name, is_empty,
-                            num_vars, vars, vars2,
-                            num_waits_new, waits_new,
-                            signal_new);
-}
-
-extern "C" int OFFLOAD_CALL_COUNT()
-{
-    offload_call_count++;
-    return offload_call_count;
-}
diff --git a/liboffloadmic/runtime/compiler_if_host.h b/liboffloadmic/runtime/compiler_if_host.h
deleted file mode 100644 (file)
index 025f6fb..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*! \file
-    \brief The interface between compiler-generated host code and runtime library
-*/
-
-#ifndef COMPILER_IF_HOST_H_INCLUDED
-#define COMPILER_IF_HOST_H_INCLUDED
-
-#include "offload_host.h"
-
-#define OFFLOAD_TARGET_ACQUIRE          OFFLOAD_PREFIX(target_acquire)
-#define OFFLOAD_TARGET_ACQUIRE1         OFFLOAD_PREFIX(target_acquire1)
-#define OFFLOAD_TARGET_ACQUIRE2         OFFLOAD_PREFIX(target_acquire2)
-#define OFFLOAD_OFFLOAD                 OFFLOAD_PREFIX(offload)
-#define OFFLOAD_OFFLOAD1                OFFLOAD_PREFIX(offload1)
-#define OFFLOAD_OFFLOAD2                OFFLOAD_PREFIX(offload2)
-#define OFFLOAD_OFFLOAD3                OFFLOAD_PREFIX(offload3)
-#define OFFLOAD_CALL_COUNT              OFFLOAD_PREFIX(offload_call_count)
-
-
-/*! \fn OFFLOAD_TARGET_ACQUIRE
-    \brief Attempt to acquire the target.
-    \param target_type   The type of target.
-    \param target_number The device number.
-    \param is_optional   Whether CPU fall-back is allowed.
-    \param status        Address of variable to hold offload status.
-    \param file          Filename in which this offload occurred.
-    \param line          Line number in the file where this offload occurred.
-*/
-extern "C" OFFLOAD OFFLOAD_TARGET_ACQUIRE(
-    TARGET_TYPE      target_type,
-    int              target_number,
-    int              is_optional,
-    _Offload_status* status,
-    const char*      file,
-    uint64_t         line
-);
-
-/*! \fn OFFLOAD_TARGET_ACQUIRE1
-    \brief Acquire the target for offload (OpenMP).
-    \param device_number Device number or null if not specified.
-    \param file          Filename in which this offload occurred
-    \param line          Line number in the file where this offload occurred.
-*/
-extern "C" OFFLOAD OFFLOAD_TARGET_ACQUIRE1(
-    const int*      device_number,
-    const char*     file,
-    uint64_t        line
-);
-
-/*! \fn OFFLOAD_TARGET_ACQUIRE2
-    \brief Attempt to acquire the target.
-    \param target_type   The type of target.
-    \param target_number The device number.
-    \param is_optional   Whether CPU fall-back is allowed.
-    \param status        Address of variable to hold offload status.
-    \param file          Filename in which this offload occurred.
-    \param line          Line number in the file where this offload occurred.
-    \param stream        Pointer to stream value.
-*/
-extern "C" OFFLOAD OFFLOAD_TARGET_ACQUIRE2(
-    TARGET_TYPE      target_type,
-    int              target_number,
-    int              is_optional,
-    _Offload_status* status,
-    const char*      file,
-    uint64_t         line,
-    const void**     stream
-);
-
-/*! \fn OFFLOAD_OFFLOAD1
-    \brief Run function on target using interface for old data persistence.
-    \param o Offload descriptor created by OFFLOAD_TARGET_ACQUIRE.
-    \param name Name of offload entry point.
-    \param is_empty If no code to execute (e.g. offload_transfer)
-    \param num_vars Number of variable descriptors.
-    \param vars Pointer to VarDesc array.
-    \param vars2 Pointer to VarDesc2 array.
-    \param num_waits Number of "wait" values.
-    \param waits Pointer to array of wait values.
-    \param signal Pointer to signal value or NULL.
-*/
-extern "C" int OFFLOAD_OFFLOAD1(
-    OFFLOAD o,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void** waits,
-    const void** signal
-);
-
-/*! \fn OFFLOAD_OFFLOAD2
-    \brief Run function on target using interface for new data persistence.
-    \param o Offload descriptor created by OFFLOAD_TARGET_ACQUIRE.
-    \param name Name of offload entry point.
-    \param is_empty If no code to execute (e.g. offload_transfer)
-    \param num_vars Number of variable descriptors.
-    \param vars Pointer to VarDesc array.
-    \param vars2 Pointer to VarDesc2 array.
-    \param num_waits Number of "wait" values.
-    \param waits Pointer to array of wait values.
-    \param signal Pointer to signal value or NULL.
-    \param entry_id A signature for the function doing the offload.
-    \param stack_addr The stack frame address of the function doing offload.
-*/
-extern "C" int OFFLOAD_OFFLOAD2(
-    OFFLOAD o,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void** waits,
-    const void** signal,
-    int entry_id,
-    const void *stack_addr
-);
-
-
-/*! \fn OFFLOAD_OFFLOAD3
-    \brief Run function on target, API introduced in 15.0 Update 1
-    \brief when targetptr, preallocated feature was introduced.
-    \param o Offload descriptor created by OFFLOAD_TARGET_ACQUIRE.
-    \param name Name of offload entry point.
-    \param is_empty If no code to execute (e.g. offload_transfer)
-    \param num_vars Number of variable descriptors.
-    \param vars Pointer to VarDesc array.
-    \param vars2 Pointer to VarDesc2 array.
-    \param num_waits Number of "wait" values.
-    \param waits Pointer to array of wait values.
-    \param signal Pointer to signal value or NULL.
-    \param entry_id A signature for the function doing the offload.
-    \param stack_addr The stack frame address of the function doing offload.
-    \param offload_flags Flags to indicate Fortran traceback, OpenMP async.
-    \param stream Pointer to stream value or NULL.
-*/
-extern "C" int OFFLOAD_OFFLOAD3(
-    OFFLOAD ofld,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void** waits,
-    const void** signal,
-    int entry_id,
-    const void *stack_addr,
-    OffloadFlags offload_flags,
-    const void** stream
-);
-
-// Run function on target (obsolete).
-// @param o    OFFLOAD object
-// @param name function name
-extern "C" int OFFLOAD_OFFLOAD(
-    OFFLOAD o,
-    const char *name,
-    int is_empty,
-    int num_vars,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int num_waits,
-    const void** waits,
-    const void* signal,
-    int entry_id = 0,
-    const void *stack_addr = NULL
-);
-
-// Global counter on host.
-// This variable is used if P2OPT_offload_do_data_persistence == 2.
-// The variable used to identify offload constructs contained in one procedure.
-// Call to OFFLOAD_CALL_COUNT() is inserted at HOST on entry of the routine.
-extern "C" int  OFFLOAD_CALL_COUNT();
-
-#endif // COMPILER_IF_HOST_H_INCLUDED
diff --git a/liboffloadmic/runtime/compiler_if_target.cpp b/liboffloadmic/runtime/compiler_if_target.cpp
deleted file mode 100644 (file)
index a44bd88..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "compiler_if_target.h"
-
-extern "C" void OFFLOAD_TARGET_ENTER(
-    OFFLOAD ofld,
-    int vars_total,
-    VarDesc *vars,
-    VarDesc2 *vars2
-)
-{
-    OFFLOAD_DEBUG_TRACE(3, "%s(%p, %d, %p, %p)\n", __func__, ofld,
-                        vars_total, vars, vars2);
-    ofld->merge_var_descs(vars, vars2, vars_total);
-    ofld->scatter_copyin_data();
-}
-
-extern "C" void OFFLOAD_TARGET_LEAVE(
-    OFFLOAD ofld
-)
-{
-    OFFLOAD_DEBUG_TRACE(3, "%s(%p)\n", __func__, ofld);
-    ofld->gather_copyout_data();
-}
-
-extern "C" void OFFLOAD_TARGET_MAIN(void)
-{
-    // initialize target part
-    __offload_target_init();
-
-    // pass control to COI
-    PipelineStartExecutingRunFunctions();
-    ProcessWaitForShutdown();
-
-    OFFLOAD_DEBUG_TRACE(2, "Exiting main...\n");
-}
diff --git a/liboffloadmic/runtime/compiler_if_target.h b/liboffloadmic/runtime/compiler_if_target.h
deleted file mode 100644 (file)
index ebb9b73..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*! \file
-    \brief The interface between compiler-generated target code and runtime library
-*/
-
-#ifndef COMPILER_IF_TARGET_H_INCLUDED
-#define COMPILER_IF_TARGET_H_INCLUDED
-
-#include "offload_target.h"
-
-#define OFFLOAD_TARGET_ENTER            OFFLOAD_PREFIX(target_enter)
-#define OFFLOAD_TARGET_LEAVE            OFFLOAD_PREFIX(target_leave)
-#define OFFLOAD_TARGET_MAIN             OFFLOAD_PREFIX(target_main)
-
-/*! \fn OFFLOAD_TARGET_ENTER
-    \brief Fill in variable addresses using VarDesc array.
-    \brief Then call back the runtime library to fetch data.
-    \param ofld         Offload descriptor created by runtime.
-    \param var_desc_num Number of variable descriptors.
-    \param var_desc     Pointer to VarDesc array.
-    \param var_desc2    Pointer to VarDesc2 array.
-*/
-extern "C" void OFFLOAD_TARGET_ENTER(
-    OFFLOAD ofld,
-    int var_desc_num,
-    VarDesc *var_desc,
-    VarDesc2 *var_desc2
-);
-
-/*! \fn OFFLOAD_TARGET_LEAVE
-    \brief Call back the runtime library to gather outputs using VarDesc array.
-    \param ofld Offload descriptor created by OFFLOAD_TARGET_ACQUIRE.
-*/
-extern "C" void OFFLOAD_TARGET_LEAVE(
-    OFFLOAD ofld
-);
-
-// Entry point for the target application.
-extern "C" void OFFLOAD_TARGET_MAIN(void);
-
-#endif // COMPILER_IF_TARGET_H_INCLUDED
diff --git a/liboffloadmic/runtime/dv_util.cpp b/liboffloadmic/runtime/dv_util.cpp
deleted file mode 100644 (file)
index f79cf1f..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_common.h"
-
-bool __dv_is_contiguous(const ArrDesc *dvp)
-{
-    if (dvp->Flags & ArrDescFlagsContiguous) {
-        return true;
-    }
-
-    if (dvp->Rank != 0) {
-        if (dvp->Dim[0].Mult != dvp->Len) {
-            return false;
-        }
-        for (int i = 1; i < dvp->Rank; i++) {
-            if (dvp->Dim[i].Mult !=
-                dvp->Dim[i-1].Extent * dvp->Dim[i-1].Mult) {
-                return false;
-            }
-        }
-    }
-    return true;
-}
-
-bool __dv_is_allocated(const ArrDesc *dvp)
-{
-    return (dvp->Flags & ArrDescFlagsDefined);
-}
-
-uint64_t __dv_data_length(const ArrDesc *dvp)
-{
-    uint64_t size;
-
-    if (dvp->Rank == 0) {
-        size = dvp->Len;
-        return size;
-    }
-
-    size = dvp->Len;
-    for (int i = 0; i < dvp->Rank; ++i) {
-        size += (dvp->Dim[i].Extent-1) * dvp->Dim[i].Mult;
-    }
-    return size;
-}
-
-uint64_t __dv_data_length(const ArrDesc *dvp, int64_t count)
-{
-    if (dvp->Rank == 0) {
-        return count;
-    }
-
-    return count * dvp->Dim[0].Mult;
-}
-
-// Create CeanReadRanges data for reading contiguous ranges of
-// noncontiguous array defined by the argument
-CeanReadRanges * init_read_ranges_dv(const ArrDesc *dvp)
-{
-    int64_t         len;
-    int             count;
-    int             rank = dvp->Rank;
-    CeanReadRanges *res = NULL;
-
-    if (rank != 0) {
-        int i = 0;
-        len = dvp->Len;
-        if (dvp->Dim[0].Mult == len) {
-            for (i = 1; i < rank; i++) {
-                len *= dvp->Dim[i-1].Extent;
-                if (dvp->Dim[i].Mult != len) {
-                    break;
-                }
-            }
-        }
-        res = (CeanReadRanges *)malloc(
-            sizeof(CeanReadRanges) + (rank - i) * sizeof(CeanReadDim));
-        if (res == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        res -> last_noncont_ind = rank - i - 1;
-        count = 1;
-        for (; i < rank; i++) {
-            res->Dim[rank - i - 1].count = count;
-            res->Dim[rank - i - 1].size = dvp->Dim[i].Mult;
-            count *= dvp->Dim[i].Extent;
-        }
-        res -> range_max_number = count;
-        res -> range_size = len;
-        res -> ptr = (void*)dvp->Base;
-        res -> current_number = 0;
-        res -> init_offset = 0;
-    }
-    return res;
-}
-
-#if OFFLOAD_DEBUG > 0
-void __dv_desc_dump(const char *name, const ArrDesc *dvp)
-{
-    OFFLOAD_TRACE(3, "%s DV %p\n", name, dvp);
-
-    if (dvp != 0) {
-        OFFLOAD_TRACE(3,
-                      "    dv->Base   = 0x%lx\n"
-                      "    dv->Len    = 0x%lx\n"
-                      "    dv->Offset = 0x%lx\n"
-                      "    dv->Flags  = 0x%lx\n"
-                      "    dv->Rank   = 0x%lx\n"
-                      "    dv->Resrvd = 0x%lx\n",
-                      dvp->Base,
-                      dvp->Len,
-                      dvp->Offset,
-                      dvp->Flags,
-                      dvp->Rank,
-                      dvp->Reserved);
-
-        for (int i = 0 ; i < dvp->Rank; i++) {
-            OFFLOAD_TRACE(3,
-                          "    (%d) Extent=%ld, Multiplier=%ld, LowerBound=%ld\n",
-                          i,
-                          dvp->Dim[i].Extent,
-                          dvp->Dim[i].Mult,
-                          dvp->Dim[i].LowerBound);
-        }
-    }
-}
-#endif // OFFLOAD_DEBUG > 0
diff --git a/liboffloadmic/runtime/dv_util.h b/liboffloadmic/runtime/dv_util.h
deleted file mode 100644 (file)
index 370ff01..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef DV_UTIL_H_INCLUDED
-#define DV_UTIL_H_INCLUDED
-
-#include <stdint.h>
-#include "offload_util.h"
-
-// Dope vector declarations
-#define ArrDescMaxArrayRank         31
-
-// Dope vector flags
-#define ArrDescFlagsDefined         1
-#define ArrDescFlagsNodealloc       2
-#define ArrDescFlagsContiguous      4
-
-typedef int64_t dv_size;
-
-typedef struct DimDesc {
-    dv_size        Extent;      // Number of elements in this dimension
-    dv_size        Mult;        // Multiplier for this dimension.
-                                // The number of bytes between successive
-                                // elements in this dimension.
-    dv_size        LowerBound;  // LowerBound of this dimension
-} DimDesc ;
-
-typedef struct ArrDesc {
-    dv_size        Base;        // Base address
-    dv_size        Len;         // Length of data type, used only for
-                                // character strings.
-    dv_size        Offset;
-    dv_size        Flags;       // Flags
-    dv_size        Rank;        // Rank of pointer
-    dv_size        Reserved;    // reserved for openmp requests
-    DimDesc Dim[ArrDescMaxArrayRank];
-} ArrDesc ;
-
-typedef ArrDesc* pArrDesc;
-
-DLL_LOCAL bool __dv_is_contiguous(const ArrDesc *dvp);
-
-DLL_LOCAL bool __dv_is_allocated(const ArrDesc *dvp);
-
-DLL_LOCAL uint64_t __dv_data_length(const ArrDesc *dvp);
-
-DLL_LOCAL uint64_t __dv_data_length(const ArrDesc *dvp, int64_t nelems);
-
-DLL_LOCAL CeanReadRanges * init_read_ranges_dv(const ArrDesc *dvp);
-
-#if OFFLOAD_DEBUG > 0
-DLL_LOCAL void    __dv_desc_dump(const char *name, const ArrDesc *dvp);
-#else // OFFLOAD_DEBUG
-#define __dv_desc_dump(name, dvp)
-#endif // OFFLOAD_DEBUG
-
-#endif // DV_UTIL_H_INCLUDED
diff --git a/liboffloadmic/runtime/emulator/coi_common.h b/liboffloadmic/runtime/emulator/coi_common.h
deleted file mode 100644 (file)
index 085a92d..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef COI_COMMON_H_INCLUDED
-#define COI_COMMON_H_INCLUDED
-
-#include <common/COIMacros_common.h>
-#include <common/COIPerf_common.h>
-#include <source/COIEngine_source.h>
-#include <source/COIProcess_source.h>
-#include <source/COIPipeline_source.h>
-#include <source/COIBuffer_source.h>
-#include <source/COIEvent_source.h>
-
-#include <assert.h>
-#include <dirent.h>
-#include <dlfcn.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <pthread.h>
-#include <signal.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-
-/* Environment variable for path to 'target' files.  */
-#define MIC_DIR_ENV              "OFFLOAD_MIC_DIR"
-
-/* Environment variable for engine index.  */
-#define MIC_INDEX_ENV            "OFFLOAD_MIC_INDEX"
-
-/* Environment variable for target executable run command.  */
-#define OFFLOAD_EMUL_RUN_ENV      "OFFLOAD_EMUL_RUN"
-
-/* Environment variable for number of emulated devices.  */
-#define OFFLOAD_EMUL_NUM_ENV     "OFFLOAD_EMUL_NUM"
-
-
-/* Path to engine directory.  */
-#define ENGINE_PATH              "/tmp/offload_XXXXXX"
-
-/* Relative path to directory with pipes.  */
-#define PIPES_PATH               "/pipes"
-
-/* Non-numerical part of host-to-target pipe file name.  */
-#define PIPE_HOST2TGT_NAME       PIPES_PATH "/host2tgt_"
-
-/* Non-numerical part of target-to-host pipe file name.  */
-#define PIPE_TGT2HOST_NAME       PIPES_PATH "/tgt2host_"
-
-/* Non-numerical part of shared memory file name.  */
-#define SHM_NAME                 "/offload_shm_"
-
-
-/* Use secure getenv if it's supported.  */
-#ifdef HAVE_SECURE_GETENV
-  #define getenv(x)          secure_getenv(x)
-#elif HAVE___SECURE_GETENV
-  #define getenv(x)          __secure_getenv(x)
-#endif
-
-
-/* Wrapper for malloc.  */
-#define MALLOC(type, ptr, size)                        \
-{                                              \
-  type p = (type) malloc (size);               \
-  if (p == NULL)                               \
-    COIERROR ("Cannot allocate memory.");      \
-  ptr = p;                                     \
-}
-
-/* Like MALLOC, but return NULL instead of COIRESULT.  */
-#define MALLOCN(type, ptr, size)               \
-{                                              \
-  type p = (type) malloc (size);               \
-  if (p == NULL)                               \
-    COIERRORN ("Cannot allocate memory.");     \
-  ptr = p;                                     \
-}
-
-/* Wrapper for strdup.  */
-#define STRDUP(ptr, str)                       \
-{                                              \
-  char *p = strdup (str);                      \
-  if (p == NULL)                               \
-    COIERROR ("Cannot allocate memory.");      \
-  ptr = p;                                     \
-}
-
-/* Wrapper for pipe reading.  */
-#define READ(pipe, ptr, size)                  \
-{                                              \
-  int s = (int) size;                          \
-  if (read (pipe, ptr, s) != s)                        \
-    COIERROR ("Cannot read from pipe.");       \
-}
-
-/* Like READ, but return NULL instead of COIRESULT.  */
-#define READN(pipe, ptr, size)                 \
-{                                              \
-  int s = (int) size;                          \
-  if (read (pipe, ptr, s) != s)                        \
-    COIERRORN ("Cannot read from pipe.");      \
-}
-
-/* Wrapper for pipe writing.  */
-#define WRITE(pipe, ptr, size)                 \
-{                                              \
-  int s = (int) size;                          \
-  if (write (pipe, ptr, s) != s)               \
-    COIERROR ("Cannot write in pipe.");                \
-}
-
-/* Like WRITE, but return NULL instead of COIRESULT.  */
-#define WRITEN(pipe, ptr, size)                        \
-{                                              \
-  int s = (int) size;                          \
-  if (write (pipe, ptr, s) != s)               \
-    COIERRORN ("Cannot write in pipe.");       \
-}
-
-
-/* Command codes enum.  */
-typedef enum
-{
-  CMD_BUFFER_COPY,
-  CMD_BUFFER_MAP,
-  CMD_BUFFER_UNMAP,
-  CMD_GET_FUNCTION_HANDLE,
-  CMD_OPEN_LIBRARY,
-  CMD_CLOSE_LIBRARY,
-  CMD_PIPELINE_CREATE,
-  CMD_PIPELINE_DESTROY,
-  CMD_PIPELINE_RUN_FUNCTION,
-  CMD_SHUTDOWN
-} cmd_t;
-
-#endif // COI_COMMON_H_INCLUDED
diff --git a/liboffloadmic/runtime/emulator/coi_device.cpp b/liboffloadmic/runtime/emulator/coi_device.cpp
deleted file mode 100644 (file)
index c112147..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include "coi_device.h"
-
-#include "coi_version_asm.h"
-
-#define CYCLE_FREQUENCY     1000000000
-
-
-static uint32_t engine_index;
-static char *engine_dir;
-
-
-extern "C"
-{
-
-COIRESULT
-SYMBOL_VERSION (COIBufferAddRef, 1) (void *ptr)
-{
-  COITRACE ("COIBufferAddRef");
-
-  /* Looks like we have nothing to do here.  */
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferReleaseRef, 1) (void *ptr)
-{
-  COITRACE ("COIBufferReleaseRef");
-
-  /* Looks like we have nothing to do here.  */
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIEngineGetIndex, 1) (COI_ISA_TYPE *type,
-                                      uint32_t *index)
-{
-  COITRACE ("COIEngineGetIndex");
-
-  /* type is not used in liboffloadmic.  */
-  *index = engine_index;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIPipelineStartExecutingRunFunctions, 1) ()
-{
-  COITRACE ("COIPipelineStartExecutingRunFunctions");
-
-  /* Looks like we have nothing to do here.  */
-
-  return COI_SUCCESS;
-}
-
-
-/* The start routine for the COI pipeline thread.  */
-
-static void *
-pipeline_thread_routine (void *in_pipeline_num)
-{
-  uint32_t pipeline_num = *(uint32_t *) in_pipeline_num;
-  free (in_pipeline_num);
-
-  /* Open pipes.  */
-  char *pipe_host2tgt_path, *pipe_tgt2host_path;
-  MALLOCN (char *, pipe_host2tgt_path,
-         strlen (engine_dir) + sizeof (PIPE_HOST2TGT_NAME "0000000000"));
-  MALLOCN (char *, pipe_tgt2host_path,
-         strlen (engine_dir) + sizeof (PIPE_TGT2HOST_NAME "0000000000"));
-  sprintf (pipe_host2tgt_path, "%s" PIPE_HOST2TGT_NAME "%010d", engine_dir,
-          pipeline_num);
-  sprintf (pipe_tgt2host_path, "%s" PIPE_TGT2HOST_NAME "%010d", engine_dir,
-          pipeline_num);
-  int pipe_host2tgt = open (pipe_host2tgt_path, O_CLOEXEC | O_RDONLY);
-  if (pipe_host2tgt < 0)
-    COIERRORN ("Cannot open host-to-target pipe.");
-  int pipe_tgt2host = open (pipe_tgt2host_path, O_CLOEXEC | O_WRONLY);
-  if (pipe_tgt2host < 0)
-    COIERRORN ("Cannot open target-to-host pipe.");
-
-  free (pipe_host2tgt_path);
-  free (pipe_tgt2host_path);
-
-  while (1)
-    {
-      /* Read and execute command.  */
-      cmd_t cmd = CMD_PIPELINE_DESTROY;
-      int cmd_len = read (pipe_host2tgt, &cmd, sizeof (cmd_t));
-      if (cmd_len != sizeof (cmd_t) && cmd_len != 0)
-       COIERRORN ("Cannot read from pipe.");
-
-      if (cmd == CMD_PIPELINE_DESTROY)
-       break;
-      else if (cmd == CMD_PIPELINE_RUN_FUNCTION)
-       {
-         /* Receive data from host.  */
-         void (*func) (uint32_t, void **, uint64_t *, void *, uint16_t, void *,
-                       uint16_t);
-         uint32_t buffer_count;
-         READN (pipe_host2tgt, &func, sizeof (void *));
-         READN (pipe_host2tgt, &buffer_count, sizeof (uint32_t));
-         void **buffers;
-         uint64_t *buffers_len;
-         MALLOCN (void **, buffers, buffer_count * sizeof (void *));
-         MALLOCN (uint64_t *, buffers_len, buffer_count * sizeof (uint64_t));
-         for (uint32_t i = 0; i < buffer_count; i++)
-           {
-             READN (pipe_host2tgt, &buffers_len[i], sizeof (uint64_t));
-             READN (pipe_host2tgt, &buffers[i], sizeof (void *));
-           }
-         uint16_t misc_data_len;
-         READN (pipe_host2tgt, &misc_data_len, sizeof (uint16_t));
-         void *misc_data = NULL;
-         if (misc_data_len > 0)
-           {
-             MALLOCN (void *, misc_data, misc_data_len);
-             READN (pipe_host2tgt, misc_data, misc_data_len);
-           }
-         uint16_t return_data_len;
-         READN (pipe_host2tgt, &return_data_len, sizeof (uint16_t));
-         void *return_data;
-         if (return_data_len > 0)
-           MALLOCN (void *, return_data, return_data_len);
-
-         /* Run function.  */
-         func (buffer_count, buffers, buffers_len, misc_data,
-               misc_data_len, return_data, return_data_len);
-
-         /* Send data to host if any or just send notification.  */
-         WRITEN (pipe_tgt2host, return_data_len > 0 ? return_data : &cmd,
-                 return_data_len > 0 ? return_data_len : sizeof (cmd_t));
-
-         /* Clean up.  */
-         free (buffers);
-         free (buffers_len);
-         if (misc_data_len > 0)
-           free (misc_data);
-         if (return_data_len > 0)
-           free (return_data);
-       }
-      else
-       COIERRORN ("Unrecognizable command from host.");
-    }
-
-  /* Close pipes.  */
-  if (close (pipe_host2tgt) < 0)
-    COIERRORN ("Cannot close host-to-target pipe.");
-  if (close (pipe_tgt2host) < 0)
-    COIERRORN ("Cannot close target-to-host pipe.");
-
-  return NULL;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessWaitForShutdown, 1) ()
-{
-  COITRACE ("COIProcessWaitForShutdown");
-
-  engine_dir = getenv (MIC_DIR_ENV);
-  char *mic_index = getenv (MIC_INDEX_ENV);
-  assert (engine_dir != NULL && mic_index != NULL);
-
-  /* Get engine index.  */
-  engine_index = atoi (mic_index);
-
-  /* Open main pipes.  */
-  char *pipe_host2tgt_path, *pipe_tgt2host_path;
-  MALLOC (char *, pipe_host2tgt_path,
-         strlen (engine_dir) + sizeof (PIPE_HOST2TGT_NAME "mainpipe"));
-  MALLOC (char *, pipe_tgt2host_path,
-         strlen (engine_dir) + sizeof (PIPE_TGT2HOST_NAME "mainpipe"));
-  sprintf (pipe_host2tgt_path, "%s" PIPE_HOST2TGT_NAME "mainpipe", engine_dir);
-  sprintf (pipe_tgt2host_path, "%s" PIPE_TGT2HOST_NAME "mainpipe", engine_dir);
-  int pipe_host2tgt = open (pipe_host2tgt_path, O_CLOEXEC | O_RDONLY);
-  if (pipe_host2tgt < 0)
-    COIERROR ("Cannot open host-to-target main pipe.");
-  int pipe_tgt2host = open (pipe_tgt2host_path, O_CLOEXEC | O_WRONLY);
-  if (pipe_tgt2host < 0)
-    COIERROR ("Cannot open target-to-host main pipe.");
-
-  /* Clean up.  */
-  free (pipe_host2tgt_path);
-  free (pipe_tgt2host_path);
-
-  /* Handler.  */
-  while (1)
-    {
-      /* Read and execute command.  */
-      cmd_t cmd = CMD_SHUTDOWN;
-      int cmd_len = read (pipe_host2tgt, &cmd, sizeof (cmd_t));
-      if (cmd_len != sizeof (cmd_t) && cmd_len != 0)
-       COIERROR ("Cannot read from main pipe.");
-
-      switch (cmd)
-       {
-       case CMD_BUFFER_COPY:
-         {
-           uint64_t len;
-           void *dest, *source;
-
-           /* Receive data from host.  */
-           READ (pipe_host2tgt, &dest, sizeof (void *));
-           READ (pipe_host2tgt, &source, sizeof (void *));
-           READ (pipe_host2tgt, &len, sizeof (uint64_t));
-
-           /* Copy.  */
-           memcpy (dest, source, len);
-
-           /* Notify host about completion.  */
-           WRITE (pipe_tgt2host, &cmd, sizeof (cmd_t));
-
-           break;
-         }
-       case CMD_BUFFER_MAP:
-         {
-           char *name;
-           size_t len;
-           uint64_t buffer_len;
-           void *buffer;
-
-           /* Receive data from host.  */
-           READ (pipe_host2tgt, &len, sizeof (size_t));
-           MALLOC (char *, name, len);
-           READ (pipe_host2tgt, name, len);
-           READ (pipe_host2tgt, &buffer_len, sizeof (uint64_t));
-
-           /* Open shared memory.  */
-           int fd = shm_open (name, O_CLOEXEC | O_RDWR, S_IRUSR | S_IWUSR);
-           if (fd < 0)
-             COIERROR ("Cannot open shared memory.");
-
-           /* Map shared memory.  */
-           buffer = mmap (NULL, buffer_len, PROT_READ | PROT_WRITE,
-                          MAP_SHARED, fd, 0);
-           if (buffer == NULL)
-             COIERROR ("Cannot map shared memory.");
-
-           /* Send data to host.  */
-           WRITE (pipe_tgt2host, &fd, sizeof (int));
-           WRITE (pipe_tgt2host, &buffer, sizeof (void *));
-
-           /* Clean up.  */
-           free (name);
-
-           break;
-         }
-       case CMD_BUFFER_UNMAP:
-         {
-           int fd;
-           uint64_t buffer_len;
-           void *buffer;
-
-           /* Receive data from host.  */
-           READ (pipe_host2tgt, &fd, sizeof (int));
-           READ (pipe_host2tgt, &buffer, sizeof (void *));
-           READ (pipe_host2tgt, &buffer_len, sizeof (uint64_t));
-
-           /* Unmap buffer.  */
-           if (munmap (buffer, buffer_len) < 0)
-             COIERROR ("Cannot unmap shared memory.");
-
-           /* Close shared memory.  */
-           if (close (fd) < 0)
-             COIERROR ("Cannot close shared memory file.");
-
-           /* Notify host about completion.  */
-           WRITE (pipe_tgt2host, &cmd, sizeof (cmd_t));
-
-           break;
-         }
-       case CMD_GET_FUNCTION_HANDLE:
-         {
-           char *name;
-           size_t len;
-
-           /* Receive data from host.  */
-           READ (pipe_host2tgt, &len, sizeof (size_t));
-           MALLOC (char *, name, len);
-           READ (pipe_host2tgt, name, len);
-
-           /* Find function.  */
-           void *ptr = dlsym (RTLD_DEFAULT, name);
-           if (ptr == NULL)
-             COIERROR ("Cannot find symbol %s.", name);
-
-           /* Send data to host.  */
-           WRITE (pipe_tgt2host, &ptr, sizeof (void *));
-
-           /* Clean up.  */
-           free (name);
-
-           break;
-         }
-       case CMD_OPEN_LIBRARY:
-         {
-           char *lib_path;
-           size_t len;
-
-           /* Receive data from host.  */
-           READ (pipe_host2tgt, &len, sizeof (size_t));
-           MALLOC (char *, lib_path, len);
-           READ (pipe_host2tgt, lib_path, len);
-
-           /* Open library.  */
-           void *handle = dlopen (lib_path, RTLD_LAZY | RTLD_GLOBAL);
-           if (handle == NULL)
-             COIERROR ("Cannot load %s: %s", lib_path, dlerror ());
-
-           /* Send data to host.  */
-           WRITE (pipe_tgt2host, &handle, sizeof (void *));
-
-           /* Clean up.  */
-           free (lib_path);
-
-           break;
-         }
-       case CMD_CLOSE_LIBRARY:
-         {
-           /* Receive data from host.  */
-           void *handle;
-           READ (pipe_host2tgt, &handle, sizeof (void *));
-
-           dlclose (handle);
-
-           break;
-         }
-       case CMD_PIPELINE_CREATE:
-         {
-           /* Receive data from host.  */
-           uint32_t *pipeline_num;
-           MALLOC (uint32_t *, pipeline_num, sizeof (uint32_t));
-           READ (pipe_host2tgt, pipeline_num, sizeof (*pipeline_num));
-
-           /* Create a new thread for the pipeline.  */
-           pthread_t thread;
-           if (pthread_create (&thread, NULL, pipeline_thread_routine,
-                               pipeline_num))
-             COIERROR ("Cannot create new thread.");
-           break;
-         }
-       case CMD_SHUTDOWN:
-         if (close (pipe_host2tgt) < 0)
-           COIERROR ("Cannot close host-to-target main pipe.");
-         if (close (pipe_tgt2host) < 0)
-           COIERROR ("Cannot close target-to-host main pipe.");
-         return COI_SUCCESS;
-       default:
-         COIERROR ("Unrecognizable command from host.");
-       }
-    }
-
-  return COI_ERROR;
-}
-
-
-
-uint64_t
-SYMBOL_VERSION (COIPerfGetCycleFrequency, 1) ()
-{
-  COITRACE ("COIPerfGetCycleFrequency");
-
-  return (uint64_t) CYCLE_FREQUENCY;
-}
-
-} // extern "C"
-
diff --git a/liboffloadmic/runtime/emulator/coi_device.h b/liboffloadmic/runtime/emulator/coi_device.h
deleted file mode 100644 (file)
index a3778ba..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef COI_DEVICE_H_INCLUDED
-#define COI_DEVICE_H_INCLUDED
-
-#include "coi_common.h"
-
-#define COIERROR(...)                      \
-{                                          \
-  fprintf (stderr, "COI ERROR - TARGET: "); \
-  fprintf (stderr, __VA_ARGS__);           \
-  fprintf (stderr, "\n");                  \
-  perror (NULL);                           \
-  return COI_ERROR;                        \
-}
-
-/* Like COIERROR, but return NULL instead of COIRESULT.  */
-#define COIERRORN(...)                     \
-{                                          \
-  fprintf (stderr, "COI ERROR - TARGET: "); \
-  fprintf (stderr, __VA_ARGS__);           \
-  fprintf (stderr, "\n");                  \
-  perror (NULL);                           \
-  return NULL;                             \
-}
-
-#ifdef DEBUG
-  #define COITRACE(...)                              \
-  {                                          \
-    fprintf (stderr, "COI TRACE - TARGET: "); \
-    fprintf (stderr, __VA_ARGS__);           \
-    fprintf (stderr, "\n");                  \
-  }
-#else
-  #define COITRACE(...) {}
-#endif
-
-
-#endif // COI_DEVICE_H_INCLUDED
diff --git a/liboffloadmic/runtime/emulator/coi_host.cpp b/liboffloadmic/runtime/emulator/coi_host.cpp
deleted file mode 100644 (file)
index 6170d8d..0000000
+++ /dev/null
@@ -1,1634 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <set>
-#include <map>
-#include <queue>
-
-#include "coi_host.h"
-
-#include "coi_version_asm.h"
-
-#define CYCLE_FREQUENCY     1000000000
-
-enum buffer_t
-{
-  BUFFER_NORMAL,
-  BUFFER_MEMORY
-};
-
-struct Engine
-{
-  COI_ISA_TYPE type;
-  uint32_t index;
-  char *dir;
-};
-
-struct Function
-{
-  void *ptr;
-  uint32_t num_buffers;
-  uint64_t *bufs_size;
-  void * *bufs_data_target;
-  uint16_t misc_data_len;
-  void *misc_data;
-  uint16_t return_value_len;
-  void *return_value;
-  COIEVENT completion_event;
-};
-
-struct Callback
-{
-  COI_EVENT_CALLBACK ptr;
-  const void *data;
-};
-
-struct Process
-{
-  pid_t pid;
-  int pipe_host2tgt;
-  int pipe_tgt2host;
-  Engine *engine;
-  void **functions;
-};
-
-struct Pipeline
-{
-  pthread_t thread;
-  bool destroy;
-  bool is_destroyed;
-  char *pipe_host2tgt_path;
-  char *pipe_tgt2host_path;
-  int pipe_host2tgt;
-  int pipe_tgt2host;
-  std::queue<Function> queue;
-  Process *process;
-};
-
-struct Buffer
-{
-  buffer_t type;
-  char *name;
-  int fd;
-  int fd_target;
-  uint64_t size;
-  void *data;
-  void *data_target;
-  Process *process;
-};
-
-
-/* Environment variables.  */
-extern char **environ;
-
-/* List of directories for removing on exit.  */
-static char **tmp_dirs;
-static unsigned tmp_dirs_num;
-
-/* Number of emulated MIC engines.  */
-static long num_engines;
-
-/* Number of the last COI pipeline.  */
-static uint32_t max_pipeline_num;
-
-/* Set of undestroyed pipelines.  */
-static std::set<Pipeline *> pipelines;
-
-/* Number of the last COI event, the event #0 is always signalled.  */
-static uint64_t max_event_num = 1;
-
-/* Set of created COI events, which are not signalled.  */
-static std::set<uint64_t> non_signalled_events;
-
-/* Set of COI events, which encountered errors.  */
-static std::map<uint64_t, COIRESULT> errored_events;
-
-/* Set of registered callbacks, indexed by event number.  */
-static std::map<uint64_t, Callback> callbacks;
-
-/* Mutex to sync parallel execution.  */
-static pthread_mutex_t mutex = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
-
-
-static COIRESULT
-read_long_env (const char *env_name, long *var, long var_default)
-{
-  char *str = getenv (env_name);
-  char *s;
-
-  if (!str || *str == '\0')
-    *var = var_default;
-  else
-    {
-      errno = 0;
-      *var = strtol (str, &s, 0);
-      if (errno != 0 || s == str || *s != '\0')
-       COIERROR ("Variable %s has invalid value.", env_name);
-    }
-
-  return COI_SUCCESS;
-}
-
-__attribute__((constructor))
-static void
-init ()
-{
-  if (read_long_env (OFFLOAD_EMUL_NUM_ENV, &num_engines, 1) == COI_ERROR)
-    exit (0);
-}
-
-
-/* Helper function for directory removing.  */
-static COIRESULT remove_directory (char *path)
-{
-  char *file;
-  struct dirent *entry;
-  struct stat statfile;
-  DIR *dir = opendir (path);
-  if (dir == NULL)
-    COIERROR ("Cannot open directory %s.", dir);
-
-  while (entry = readdir (dir))
-    {
-      if (!strcmp (entry->d_name, ".") || !strcmp (entry->d_name, ".."))
-       continue;
-
-      MALLOC (char *, file, strlen (path) + strlen (entry->d_name) + 2);
-      sprintf (file, "%s/%s", path, entry->d_name);
-
-      if (stat (file, &statfile) < 0)
-       COIERROR ("Cannot retrieve information about file %s.", file);
-
-      if (S_ISDIR (statfile.st_mode))
-       {
-         if (remove_directory (file) == COI_ERROR)
-           return COI_ERROR;
-       }
-      else
-       {
-         if (unlink (file) < 0)
-           COIERROR ("Cannot unlink file %s.", file);
-       }
-
-      free (file);
-    }
-
-  if (closedir (dir) < 0)
-    COIERROR ("Cannot close directory %s.", path);
-  if (rmdir (path) < 0)
-    COIERROR ("Cannot remove directory %s.", path);
-
-  return COI_SUCCESS;
-}
-
-__attribute__((destructor))
-static void
-cleanup ()
-{
-  for (unsigned i = 0; i < tmp_dirs_num; i++)
-    {
-      remove_directory (tmp_dirs[i]);
-      free (tmp_dirs[i]);
-    }
-  free (tmp_dirs);
-}
-
-static COIRESULT
-start_critical_section ()
-{
-  if (pthread_mutex_lock (&mutex) != 0)
-    COIERROR ("Cannot lock mutex.");
-  return COI_SUCCESS;
-}
-
-static COIRESULT
-finish_critical_section ()
-{
-  if (pthread_mutex_unlock (&mutex) != 0)
-    COIERROR ("Cannot unlock mutex.");
-  return COI_SUCCESS;
-}
-
-static bool
-pipeline_is_destroyed (const Pipeline *pipeline)
-{
-  start_critical_section ();
-  bool res = pipeline->is_destroyed;
-  finish_critical_section ();
-  return res;
-}
-
-static void
-maybe_invoke_callback (const COIEVENT event, const COIRESULT result)
-{
-  std::map<uint64_t, Callback>::iterator cb = callbacks.find (event.opaque[0]);
-
-  if (cb != callbacks.end ())
-    {
-      Callback callback = cb->second;
-      callback.ptr (event, result, callback.data);
-      callbacks.erase (cb);
-    }
-}
-
-static void
-signal_event (const COIEVENT event, const COIRESULT result)
-{
-  if (result != COI_SUCCESS)
-    errored_events.insert (std::pair <uint64_t, COIRESULT> (event.opaque[0],
-                                                           result));
-  non_signalled_events.erase (event.opaque[0]);
-
-  maybe_invoke_callback (event, result);
-}
-
-static COIRESULT
-get_event_result (const COIEVENT event)
-{
-  COIRESULT res = COI_SUCCESS;
-
-  std::map<uint64_t, COIRESULT>::iterator ee
-    = errored_events.find (event.opaque[0]);
-
-  if (ee != errored_events.end ())
-    res = ee->second;
-
-  return res;
-}
-
-
-extern "C"
-{
-
-COIRESULT
-SYMBOL_VERSION (COIBufferCopy, 1) (COIBUFFER in_DestBuffer,
-                                  COIBUFFER in_SourceBuffer,
-                                  uint64_t in_DestOffset,
-                                  uint64_t in_SourceOffset,
-                                  uint64_t in_Length,
-                                  COI_COPY_TYPE in_Type,
-                                  uint32_t in_NumDependencies,
-                                  const COIEVENT *in_pDependencies,  // Ignored
-                                  COIEVENT *out_pCompletion)
-{
-  COITRACE ("COIBufferCopy");
-
-  /* Features of liboffloadmic.  */
-  assert (in_DestBuffer != NULL);
-  assert (in_SourceBuffer != NULL);
-  assert (in_Type == COI_COPY_UNSPECIFIED);
-  assert (in_NumDependencies == 0);
-
-  /* Convert input arguments.  */
-  Buffer *dest = (Buffer *) in_DestBuffer;
-  Buffer *source = (Buffer *) in_SourceBuffer;
-
-  start_critical_section ();
-
-  /* Map buffers if needed.  */
-  if (dest->data == 0 && dest->type == BUFFER_NORMAL)
-    if (COIBufferMap (in_DestBuffer, 0, dest->size, (COI_MAP_TYPE) 0,
-                     0, 0, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-  if (source->data == 0 && source->type == BUFFER_NORMAL)
-    if (COIBufferMap (in_SourceBuffer, 0, source->size, (COI_MAP_TYPE) 0,
-                     0, 0, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-
-  /* Copy data.  */
-  if (source->data != 0 && dest->data != 0)
-    memcpy ((void *) ((uintptr_t) dest->data + in_DestOffset),
-           (void *) ((uintptr_t) source->data + in_SourceOffset), in_Length);
-  else
-    {
-      assert (dest->process == source->process);
-
-      Buffer *buffer;
-      cmd_t cmd = CMD_BUFFER_COPY;
-
-      /* Create intermediary buffer.  */
-      if (COIBufferCreate (in_Length, COI_BUFFER_NORMAL, 0, 0, 1,
-                          (COIPROCESS*) &dest->process,
-                          (COIBUFFER *) &buffer) == COI_ERROR)
-       return COI_ERROR;
-
-      int pipe_host2tgt = dest->process->pipe_host2tgt;
-      int pipe_tgt2host = dest->process->pipe_tgt2host;
-
-      /* Copy from source to intermediary buffer.  */
-      if (source->data == 0)
-       {
-         assert (source->data_target != 0);
-
-         /* Send data to target.  */
-         WRITE (pipe_host2tgt, &cmd, sizeof (cmd_t));
-         WRITE (pipe_host2tgt, &buffer->data_target, sizeof (void *));
-         WRITE (pipe_host2tgt, &source->data_target, sizeof (void *));
-         WRITE (pipe_host2tgt, &buffer->size, sizeof (uint64_t));
-
-         /* Receive data from target.  */
-         READ (pipe_tgt2host, &cmd, sizeof (cmd_t));
-       }
-      else
-       {
-         if (COIBufferCopy ((COIBUFFER) buffer, in_SourceBuffer, 0,
-                            in_SourceOffset, in_Length, in_Type, 0, 0, 0)
-             == COI_ERROR)
-           return COI_ERROR;
-       }
-
-      /* Copy from intermediary buffer to dest.  */
-      if (dest->data == 0)
-       {
-         assert (dest->data_target != 0);
-
-         /* Send data to target.  */
-         WRITE (pipe_host2tgt, &cmd, sizeof (cmd_t));
-         WRITE (pipe_host2tgt, &dest->data_target, sizeof (void *));
-         WRITE (pipe_host2tgt, &buffer->data_target, sizeof (void *));
-         WRITE (pipe_host2tgt, &buffer->size, sizeof (uint64_t));
-
-         /* Receive data from target.  */
-         READ (pipe_tgt2host, &cmd, sizeof (cmd_t));
-       }
-      else
-       {
-         if (COIBufferCopy (in_DestBuffer, (COIBUFFER) buffer, in_DestOffset,
-                            0, in_Length, in_Type, 0, 0, 0) == COI_ERROR)
-           return COI_ERROR;
-       }
-
-      /* Unmap on target and destroy intermediary buffer.  */
-      if (COIBufferDestroy ((COIBUFFER) buffer) == COI_ERROR)
-       return COI_ERROR;
-    }
-
-  /* Unmap buffers if needed.  */
-  if (dest->type == BUFFER_NORMAL)
-    if (COIBufferUnmap ((COIMAPINSTANCE) dest, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-  if (source->type == BUFFER_NORMAL)
-    if (COIBufferUnmap ((COIMAPINSTANCE) source, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-
-  finish_critical_section ();
-
-  if (out_pCompletion)
-    out_pCompletion->opaque[0] = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferCreate, 1) (uint64_t in_Size,
-                                    COI_BUFFER_TYPE in_Type,
-                                    uint32_t in_Flags,
-                                    const void *in_pInitData,
-                                    uint32_t in_NumProcesses,
-                                    const COIPROCESS *in_pProcesses,
-                                    COIBUFFER *out_pBuffer)
-{
-  COITRACE ("COIBufferCreate");
-
-  char *shm_name;
-  int shm_fd;
-  const int ullong_max_len = 20;
-
-  /* Features of liboffloadmic.  */
-  assert (in_Type == COI_BUFFER_NORMAL || in_Type == COI_BUFFER_OPENCL);
-  assert ((in_Flags & COI_SINK_MEMORY) == 0);
-  assert ((in_Flags & COI_SAME_ADDRESS_SINKS) == 0);
-  assert ((in_Flags & COI_SAME_ADDRESS_SINKS_AND_SOURCE) == 0);
-  assert (in_pInitData == NULL);
-  assert (in_NumProcesses == 1);
-  assert (in_pProcesses != NULL);
-  assert (out_pBuffer != NULL);
-
-  /* Create shared memory with an unique name.  */
-  MALLOC (char *, shm_name, strlen (SHM_NAME) + ullong_max_len + 1);
-  for (unsigned long long i = 0; i >= 0; i++)
-    {
-      sprintf (shm_name, SHM_NAME "%lu", i);
-      shm_fd = shm_open (shm_name, O_CLOEXEC | O_CREAT | O_EXCL | O_RDWR,
-                        S_IRUSR | S_IWUSR);
-      if (shm_fd > 0)
-       break;
-    }
-  if (ftruncate (shm_fd, in_Size) < 0)
-    COIERROR ("Cannot truncate shared memory file.");
-
-  /* Create buffer.  */
-  Buffer *buf = new Buffer;
-  buf->data = 0;
-  buf->fd = shm_fd;
-  buf->process = (Process *) in_pProcesses[0];
-  buf->size = in_Size;
-  buf->type = BUFFER_NORMAL;
-  STRDUP (buf->name, shm_name);
-
-  /* Map buffer on target.  */
-  size_t len = strlen (buf->name) + 1;
-
-  start_critical_section ();
-
-  /* Send data to target.  */
-  const cmd_t cmd = CMD_BUFFER_MAP;
-  int pipe_host2tgt = buf->process->pipe_host2tgt;
-  WRITE (pipe_host2tgt, &cmd, sizeof (cmd_t));
-  WRITE (pipe_host2tgt, &len, sizeof (size_t));
-  WRITE (pipe_host2tgt, buf->name, len);
-  WRITE (pipe_host2tgt, &buf->size, sizeof (uint64_t));
-
-  /* Receive data from target.  */
-  int pipe_tgt2host = buf->process->pipe_tgt2host;
-  READ (pipe_tgt2host, &buf->fd_target, sizeof (int));
-  READ (pipe_tgt2host, &buf->data_target, sizeof (void *));
-
-  finish_critical_section ();
-
-  /* Prepare output arguments.  */
-  *out_pBuffer = (COIBUFFER) buf;
-
-  /* Clean up.  */
-  free (shm_name);
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferCreateFromMemory, 1) (uint64_t in_Size,
-                                              COI_BUFFER_TYPE in_Type,
-                                              uint32_t in_Flags,
-                                              void *in_Memory,
-                                              uint32_t in_NumProcesses,
-                                              const COIPROCESS *in_pProcesses,
-                                              COIBUFFER *out_pBuffer)
-{
-  COITRACE ("COIBufferCreateFromMemory");
-
-  /* Features of liboffloadmic.  */
-  assert (in_Type == COI_BUFFER_NORMAL);
-  assert ((in_Flags & COI_SAME_ADDRESS_SINKS) == 0);
-  assert ((in_Flags & COI_SAME_ADDRESS_SINKS_AND_SOURCE) == 0);
-  assert (in_NumProcesses == 1);
-  assert (in_pProcesses != NULL);
-  assert (out_pBuffer != NULL);
-
-  /* Create buffer.  */
-  Buffer *buf = new Buffer;
-  buf->data = (in_Flags & COI_SINK_MEMORY) == 0 ? in_Memory : 0;
-  buf->data_target = (in_Flags & COI_SINK_MEMORY) != 0 ? in_Memory : 0;
-  buf->process = (Process *) in_pProcesses[0];
-  buf->size = in_Size;
-  buf->type = BUFFER_MEMORY;
-
-  /* Prepare output argument.  */
-  *out_pBuffer = (COIBUFFER) buf;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferDestroy, 1) (COIBUFFER in_Buffer)
-{
-  COITRACE ("COIBufferDestroy");
-
-  cmd_t cmd = CMD_BUFFER_UNMAP;
-
-  assert (in_Buffer != NULL);
-
-  /* Convert input arguments.  */
-  Buffer *buf = (Buffer *) in_Buffer;
-
-  /* Unmap buffer on host.  */
-  if (buf->data != 0 && buf->type == BUFFER_NORMAL)
-    if (COIBufferUnmap ((COIMAPINSTANCE) in_Buffer, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-
-  /* Unmap buffer on target.  */
-  if (buf->data_target != 0)
-    {
-      start_critical_section ();
-
-      /* Send data to target.  */
-      int pipe_host2tgt = buf->process->pipe_host2tgt;
-      WRITE (pipe_host2tgt, &cmd, sizeof (cmd_t));
-      WRITE (pipe_host2tgt, &buf->fd_target, sizeof (int));
-      WRITE (pipe_host2tgt, &buf->data_target, sizeof (void *));
-      WRITE (pipe_host2tgt, &buf->size, sizeof (uint64_t));
-
-      /* Receive data from target.  */
-      READ (buf->process->pipe_tgt2host, &cmd, sizeof (cmd_t));
-
-      finish_critical_section ();
-    }
-
-  /* Unlink shared memory.  */
-  if (buf->type == BUFFER_NORMAL)
-    {
-      if (close (buf->fd) < 0)
-       COIERROR ("Cannot close shared memory file.");
-      if (shm_unlink (buf->name) < 0)
-       COIERROR ("Cannot unlink shared memory.");
-      free (buf->name);
-    }
-
-  /* Clean up.  */
-  delete buf;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferGetSinkAddress, 1) (COIBUFFER in_Buffer,
-                                            uint64_t *out_pAddress)
-{
-  COITRACE ("COIBufferGetSinkAddress");
-
-  assert (in_Buffer != NULL);
-  assert (out_pAddress != NULL);
-
-  /* Convert input arguments.  */
-  Buffer *buf = (Buffer *) in_Buffer;
-
-  /* Here should come BUFFER_NORMAL buffer.  */
-  assert (buf->type == BUFFER_NORMAL);
-
-  /* Prepare output argument.  */
-  *out_pAddress = (uint64_t) buf->data_target;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferMap, 1) (COIBUFFER in_Buffer,
-                                 uint64_t in_Offset,
-                                 uint64_t in_Length,               // Ignored
-                                 COI_MAP_TYPE in_Type,             // Ignored
-                                 uint32_t in_NumDependencies,
-                                 const COIEVENT *in_pDependencies, // Ignored
-                                 COIEVENT *out_pCompletion,
-                                 COIMAPINSTANCE *out_pMapInstance,
-                                 void **out_ppData)
-{
-  COITRACE ("COIBufferMap");
-
-  /* Features of liboffloadmic.  */
-  assert (in_Offset == 0);
-  assert (in_NumDependencies == 0);
-
-  /* Convert input arguments.  */
-  Buffer *buf = (Buffer *) in_Buffer;
-
-  /* Only BUFFER_NORMAL buffers should come here.  */
-  assert (buf->type == BUFFER_NORMAL);
-
-  /* Map shared memory.  */
-  buf->data = mmap (NULL, buf->size, PROT_READ | PROT_WRITE,
-                   MAP_SHARED, buf->fd, 0);
-  if (buf->data == NULL)
-    COIERROR ("Cannot map shared memory.");
-
-  /* Prepare output arguments.  */
-  if (out_pMapInstance != 0)
-    *out_pMapInstance = (COIMAPINSTANCE) buf;
-  if (out_ppData != 0)
-    *out_ppData = buf->data;
-
-  if (out_pCompletion)
-    out_pCompletion->opaque[0] = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferRead, 1) (COIBUFFER in_SourceBuffer,
-                                  uint64_t in_Offset,
-                                  void *in_pDestData,
-                                  uint64_t in_Length,
-                                  COI_COPY_TYPE in_Type,
-                                  uint32_t in_NumDependencies,
-                                  const COIEVENT *in_pDependencies,  // Ignored
-                                  COIEVENT *out_pCompletion)
-{
-  COITRACE ("COIBufferRead");
-
-  /* Features of liboffloadmic.  */
-  assert (in_pDestData != NULL);
-  assert (in_Type == COI_COPY_UNSPECIFIED);
-  assert (in_NumDependencies == 0);
-
-  /* Convert input arguments.  */
-  Buffer *buf = (Buffer *) in_SourceBuffer;
-
-  start_critical_section ();
-
-  /* Map buffers if needed.  */
-  if (buf->data == 0 && buf->type == BUFFER_NORMAL)
-    if (COIBufferMap (in_SourceBuffer, 0, buf->size, (COI_MAP_TYPE) 0, 0, 0, 0,
-                     0, 0) == COI_ERROR)
-      return COI_ERROR;
-
-  /* Copy data.  */
-  memcpy (in_pDestData, (void *) ((uintptr_t) buf->data + in_Offset),
-         in_Length);
-
-  /* Unmap buffers if needed.  */
-  if (buf->type == BUFFER_NORMAL)
-    if (COIBufferUnmap ((COIMAPINSTANCE) buf, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-
-  finish_critical_section ();
-
-  if (out_pCompletion)
-    out_pCompletion->opaque[0] = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferSetState, 1) (COIBUFFER in_Buffer,              // Ignored
-                                      COIPROCESS in_Process,             // Ignored
-                                      COI_BUFFER_STATE in_State,         // Ignored
-                                      COI_BUFFER_MOVE_FLAG in_DataMove,
-                                      uint32_t in_NumDependencies,
-                                      const COIEVENT *in_pDependencies,  // Ignored
-                                      COIEVENT *out_pCompletion)
-{
-  COITRACE ("COIBufferSetState");
-
-  /* Features of liboffloadmic.  */
-  assert (in_DataMove == COI_BUFFER_NO_MOVE);
-  assert (in_NumDependencies == 0);
-
-  /* Looks like we have nothing to do here.  */
-
-  if (out_pCompletion)
-    out_pCompletion->opaque[0] = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferUnmap, 1) (COIMAPINSTANCE in_MapInstance,
-                                   uint32_t in_NumDependencies,
-                                   const COIEVENT *in_pDependencies, // Ignored
-                                   COIEVENT *out_pCompletion)
-{
-  COITRACE ("COIBufferUnmap");
-
-  /* Features of liboffloadmic.  */
-  assert (in_MapInstance != NULL);
-  assert (in_NumDependencies == 0);
-
-  /* Convert input arguments.  */
-  Buffer *buffer = (Buffer *) in_MapInstance;
-
-  /* Only BUFFER_NORMAL buffers should come here.  */
-  assert (buffer->type == BUFFER_NORMAL);
-
-  /* Unmap shared memory.  */
-  if (munmap (buffer->data, buffer->size) < 0)
-    COIERROR ("Cannot unmap shared memory.");
-
-  buffer->data = 0;
-
-  if (out_pCompletion)
-    out_pCompletion->opaque[0] = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIBufferWrite, 1) (COIBUFFER in_DestBuffer,
-                                   uint64_t in_Offset,
-                                   const void *in_pSourceData,
-                                   uint64_t in_Length,
-                                   COI_COPY_TYPE in_Type,
-                                   uint32_t in_NumDependencies,
-                                   const COIEVENT *in_pDependencies, // Ignored
-                                   COIEVENT *out_pCompletion)
-{
-  COITRACE ("COIBufferWrite");
-
-  /* Features of liboffloadmic.  */
-  assert (in_DestBuffer != NULL);
-  assert (in_pSourceData != NULL);
-  assert (in_Type == COI_COPY_UNSPECIFIED);
-  assert (in_NumDependencies == 0);
-
-  /* Convert input arguments.  */
-  Buffer *buf = (Buffer *) in_DestBuffer;
-
-  start_critical_section ();
-
-  /* Map buffers if needed.  */
-  if (buf->data == 0 && buf->type == BUFFER_NORMAL)
-    if (COIBufferMap (in_DestBuffer, 0, buf->size, (COI_MAP_TYPE) 0, 0, 0, 0, 0,
-                     0) == COI_ERROR)
-      return COI_ERROR;
-
-  /* Copy data.  */
-  memcpy ((void *) ((uintptr_t) buf->data + in_Offset), in_pSourceData,
-         in_Length);
-
-  /* Unmap buffers if needed.  */
-  if (buf->type == BUFFER_NORMAL)
-    if (COIBufferUnmap ((COIMAPINSTANCE) buf, 0, 0, 0) == COI_ERROR)
-      return COI_ERROR;
-
-  finish_critical_section ();
-
-  if (out_pCompletion)
-    out_pCompletion->opaque[0] = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIEngineGetCount, 1) (COI_ISA_TYPE isa,
-                                      uint32_t *count)
-{
-  COITRACE ("COIEngineGetCount");
-
-  /* Features of liboffloadmic.  */
-  assert (isa == COI_ISA_MIC);
-  assert (count != NULL);
-
-  /* Prepare output arguments.  */
-  *count = num_engines;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIEngineGetHandle, 1) (COI_ISA_TYPE in_ISA,
-                                       uint32_t in_EngineIndex,
-                                       COIENGINE *out_pEngineHandle)
-{
-  COITRACE ("COIEngineGetHandle");
-
-  /* Features of liboffloadmic.  */
-  assert (in_ISA == COI_ISA_MIC);
-  assert (out_pEngineHandle != NULL);
-
-  /* Check engine index.  */
-  if (in_EngineIndex >= num_engines)
-    COIERROR ("Wrong engine index.");
-
-  /* Create engine handle.  */
-  Engine *engine = new Engine;
-  engine->dir = NULL;
-  engine->index = in_EngineIndex;
-  engine->type = in_ISA;
-
-  /* Prepare output argument.  */
-  *out_pEngineHandle = (COIENGINE) engine;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIEventWait, 1) (uint16_t in_NumEvents,
-                                 const COIEVENT *in_pEvents,
-                                 int32_t in_TimeoutMilliseconds,
-                                 uint8_t in_WaitForAll,
-                                 uint32_t *out_pNumSignaled,
-                                 uint32_t *out_pSignaledIndices)
-{
-  COITRACE ("COIEventWait");
-
-  /* Features of liboffloadmic.  */
-  assert (in_pEvents != NULL);
-  assert (in_TimeoutMilliseconds == 0 || in_TimeoutMilliseconds == -1);
-  assert (in_WaitForAll == 1);
-  assert (out_pNumSignaled == NULL);
-  assert (out_pSignaledIndices == NULL);
-
-  if (in_TimeoutMilliseconds == 0)
-    {
-      /* If some event is not signalled, return timeout error.  */
-      for (uint16_t i = 0; i < in_NumEvents; i++)
-       if (non_signalled_events.count (in_pEvents[i].opaque[0]) > 0)
-         return COI_TIME_OUT_REACHED;
-       else
-         {
-           /* If the event signalled with an error, return that error.  */
-           start_critical_section ();
-           COIRESULT res = get_event_result (in_pEvents[i]);
-           finish_critical_section ();
-           if (res != COI_SUCCESS)
-             return res;
-         }
-    }
-  else
-    {
-      /* Wait indefinitely for all events.  */
-      for (uint16_t i = 0; i < in_NumEvents; i++)
-       {
-         while (non_signalled_events.count (in_pEvents[i].opaque[0]) > 0)
-           usleep (1000);
-
-         /* If the event signalled with an error, return that error.  */
-         start_critical_section ();
-         COIRESULT res = get_event_result (in_pEvents[i]);
-         finish_critical_section ();
-         if (res != COI_SUCCESS)
-           return res;
-       }
-    }
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIEventRegisterCallback, 1) (const COIEVENT in_Event,
-                                             COI_EVENT_CALLBACK in_Callback,
-                                             const void *in_UserData,
-                                             const uint64_t in_Flags)
-{
-  COITRACE ("COIEventRegisterCallback");
-
-  /* Features of liboffloadmic.  */
-  assert (in_Callback != NULL);
-  assert (in_UserData != NULL);
-  assert (in_Flags == 0);
-
-  start_critical_section ();
-  if (non_signalled_events.count (in_Event.opaque[0]) == 0)
-    {
-      /* If the event is already signalled, invoke the callback immediately.  */
-      COIRESULT res = get_event_result (in_Event);
-      in_Callback (in_Event, res, in_UserData);
-    }
-  else
-    {
-      Callback callback;
-      callback.ptr = in_Callback;
-      callback.data = in_UserData;
-      callbacks.insert (std::pair <uint64_t, Callback> (in_Event.opaque[0],
-                                                       callback));
-    }
-  finish_critical_section ();
-
-  return COI_SUCCESS;
-}
-
-
-/* The start routine for the COI pipeline thread.  */
-
-static void *
-pipeline_thread_routine (void *in_Pipeline)
-{
-  /* Convert input arguments.  */
-  Pipeline *pipeline = (Pipeline *) in_Pipeline;
-
-  /* Open pipes.  */
-  pipeline->pipe_host2tgt
-    = open (pipeline->pipe_host2tgt_path, O_CLOEXEC | O_WRONLY);
-  if (pipeline->pipe_host2tgt < 0)
-    COIERRORN ("Cannot open host-to-target pipe.");
-  pipeline->pipe_tgt2host
-    = open (pipeline->pipe_tgt2host_path, O_CLOEXEC | O_RDONLY);
-  if (pipeline->pipe_tgt2host < 0)
-    COIERRORN ("Cannot open target-to-host pipe.");
-
-  free (pipeline->pipe_host2tgt_path);
-  free (pipeline->pipe_tgt2host_path);
-  pipeline->pipe_host2tgt_path = NULL;
-  pipeline->pipe_tgt2host_path = NULL;
-
-  while (!pipeline->destroy)
-    if (pipeline->queue.empty ())
-      usleep (1000);
-    else
-      {
-       Function func = pipeline->queue.front ();
-       start_critical_section ();
-       pipeline->queue.pop ();
-       finish_critical_section ();
-
-       /* Send data to target.  */
-       cmd_t cmd = CMD_PIPELINE_RUN_FUNCTION;
-       WRITEN (pipeline->pipe_host2tgt, &cmd, sizeof (cmd_t));
-       WRITEN (pipeline->pipe_host2tgt, &func.ptr, sizeof (void *));
-       WRITEN (pipeline->pipe_host2tgt, &func.num_buffers, sizeof (uint32_t));
-       for (uint32_t i = 0; i < func.num_buffers; i++)
-         {
-           WRITEN (pipeline->pipe_host2tgt, &func.bufs_size[i],
-                   sizeof (uint64_t));
-           WRITEN (pipeline->pipe_host2tgt, &func.bufs_data_target[i],
-                   sizeof (void *));
-         }
-       WRITEN (pipeline->pipe_host2tgt, &func.misc_data_len,
-               sizeof (uint16_t));
-       if (func.misc_data_len > 0)
-         WRITEN (pipeline->pipe_host2tgt, func.misc_data, func.misc_data_len);
-       WRITEN (pipeline->pipe_host2tgt, &func.return_value_len,
-               sizeof (uint16_t));
-
-       delete [] func.bufs_size;
-       delete [] func.bufs_data_target;
-
-       /* Receive data from target.  Wait for target function to complete,
-          whether it has any data to return or not.  */
-       bool has_return_value = func.return_value_len > 0;
-       int ret_len
-         = read (pipeline->pipe_tgt2host,
-                 has_return_value ? func.return_value : &cmd,
-                 has_return_value ? func.return_value_len : sizeof (cmd_t));
-       if (ret_len == 0)
-         {
-           start_critical_section ();
-           signal_event (func.completion_event, COI_PROCESS_DIED);
-           pipeline->is_destroyed = true;
-           finish_critical_section ();
-           return NULL;
-         }
-       else if (ret_len != (has_return_value ? func.return_value_len
-                                             : sizeof (cmd_t)))
-         COIERRORN ("Cannot read from pipe.");
-
-       start_critical_section ();
-       signal_event (func.completion_event, COI_SUCCESS);
-       finish_critical_section ();
-      }
-
-  /* Send data to target.  */
-  const cmd_t cmd = CMD_PIPELINE_DESTROY;
-  WRITEN (pipeline->pipe_host2tgt, &cmd, sizeof (cmd_t));
-
-  /* Close pipes.  */
-  if (close (pipeline->pipe_host2tgt) < 0)
-    COIERRORN ("Cannot close host-to-target pipe.");
-  if (close (pipeline->pipe_tgt2host) < 0)
-    COIERRORN ("Cannot close target-to-host pipe.");
-
-  start_critical_section ();
-  pipeline->is_destroyed = true;
-  finish_critical_section ();
-  return NULL;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIPipelineCreate, 1) (COIPROCESS in_Process,
-                                      COI_CPU_MASK in_Mask,
-                                      uint32_t in_StackSize,       // Ignored
-                                      COIPIPELINE *out_pPipeline)
-{
-  COITRACE ("COIPipelineCreate");
-
-  /* Features of liboffloadmic.  */
-  assert (in_Process != NULL);
-  assert (in_Mask == 0);
-  assert (out_pPipeline != NULL);
-
-  /* Convert input arguments.  */
-  Process *proc = (Process *) in_Process;
-
-  start_critical_section ();
-
-  /* Create pipeline handle.  */
-  Pipeline *pipeline = new Pipeline;
-  pipeline->destroy = false;
-  pipeline->is_destroyed = false;
-  pipeline->process = proc;
-  pipelines.insert (pipeline);
-
-  /* Create pipes.  */
-  uint32_t pipeline_num = max_pipeline_num++;
-  char *eng_dir = pipeline->process->engine->dir;
-  MALLOC (char *, pipeline->pipe_host2tgt_path,
-         strlen (eng_dir) + sizeof (PIPE_HOST2TGT_NAME "0000000000"));
-  MALLOC (char *, pipeline->pipe_tgt2host_path,
-         strlen (eng_dir) + sizeof (PIPE_TGT2HOST_NAME "0000000000"));
-  sprintf (pipeline->pipe_host2tgt_path, "%s" PIPE_HOST2TGT_NAME "%010d",
-          eng_dir, pipeline_num);
-  sprintf (pipeline->pipe_tgt2host_path, "%s" PIPE_TGT2HOST_NAME "%010d",
-          eng_dir, pipeline_num);
-  if (mkfifo (pipeline->pipe_host2tgt_path, S_IRUSR | S_IWUSR) < 0)
-    COIERROR ("Cannot create pipe %s.", pipeline->pipe_host2tgt_path);
-  if (mkfifo (pipeline->pipe_tgt2host_path, S_IRUSR | S_IWUSR) < 0)
-    COIERROR ("Cannot create pipe %s.", pipeline->pipe_tgt2host_path);
-
-  /* Send data to target.  */
-  const cmd_t cmd = CMD_PIPELINE_CREATE;
-  WRITE (proc->pipe_host2tgt, &cmd, sizeof (cmd_t));
-  WRITE (proc->pipe_host2tgt, &pipeline_num, sizeof (pipeline_num));
-
-  /* Create a new thread for the pipeline.  */
-  if (pthread_create (&pipeline->thread, NULL, pipeline_thread_routine,
-                     pipeline))
-    COIERROR ("Cannot create new thread.");
-
-  finish_critical_section ();
-
-  /* Prepare output arguments.  */
-  *out_pPipeline = (COIPIPELINE) pipeline;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIPipelineDestroy, 1) (COIPIPELINE in_Pipeline)
-{
-  COITRACE ("COIPipelineDestroy");
-
-  assert (in_Pipeline != NULL);
-
-  /* Convert input arguments.  */
-  Pipeline *pipeline = (Pipeline *) in_Pipeline;
-
-  start_critical_section ();
-  /* Remove pipeline from the set of undestroyed pipelines.  */
-  pipelines.erase (pipeline);
-
-  /* Exit pipeline thread.  */
-  pipeline->destroy = true;
-  finish_critical_section ();
-
-  while (!pipeline_is_destroyed (pipeline))
-    usleep (1000);
-
-  /* Join with a destroyed thread.  */
-  if (pthread_join (pipeline->thread, NULL))
-    COIERROR ("Cannot join with a thread.");
-
-  delete pipeline;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIPipelineRunFunction, 1) (COIPIPELINE in_Pipeline,
-                                           COIFUNCTION in_Function,
-                                           uint32_t in_NumBuffers,
-                                           const COIBUFFER *in_Buffers,
-                                           const COI_ACCESS_FLAGS *in_pBufferAccessFlags, // Ignored
-                                           uint32_t in_NumDependencies,
-                                           const COIEVENT *in_pDependencies,              // Ignored
-                                           const void *in_pMiscData,
-                                           uint16_t in_MiscDataLen,
-                                           void *out_pAsyncReturnValue,
-                                           uint16_t in_AsyncReturnValueLen,
-                                           COIEVENT *out_pCompletion)
-{
-  COITRACE ("COIPipelineRunFunction");
-
-  /* Features of liboffloadmic.  */
-  assert (in_Pipeline != NULL);
-  assert (in_Function != NULL);
-  assert (in_NumDependencies == 0);
-
-  Function func;
-  func.ptr = (void *) in_Function;
-  func.num_buffers = in_NumBuffers;
-  func.bufs_size = new uint64_t [in_NumBuffers];
-  func.bufs_data_target = new void * [in_NumBuffers];
-  for (uint32_t i = 0; i < in_NumBuffers; i++)
-    {
-      Buffer **bufs = (Buffer **) in_Buffers;
-      func.bufs_size[i] = bufs[i]->size;
-      func.bufs_data_target[i] = bufs[i]->data_target;
-    }
-  func.misc_data = (void *) in_pMiscData;
-  func.misc_data_len = in_MiscDataLen;
-  func.return_value = out_pAsyncReturnValue;
-  func.return_value_len = in_AsyncReturnValueLen;
-
-  start_critical_section ();
-  func.completion_event.opaque[0] = max_event_num++;
-  non_signalled_events.insert (func.completion_event.opaque[0]);
-  ((Pipeline *) in_Pipeline)->queue.push (func);
-  finish_critical_section ();
-
-  /* In case of synchronous execution we have to wait for target.  */
-  if (out_pCompletion == NULL)
-    COIEventWait (1, &func.completion_event, -1, 1, NULL, NULL);
-  else
-    *out_pCompletion = func.completion_event;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessCreateFromMemory, 1) (COIENGINE in_Engine,
-                                               const char *in_pBinaryName,
-                                               const void *in_pBinaryBuffer,
-                                               uint64_t in_BinaryBufferLength,
-                                               int in_Argc,
-                                               const char **in_ppArgv,
-                                               uint8_t in_DupEnv,
-                                               const char **in_ppAdditionalEnv,
-                                               uint8_t in_ProxyActive,         // Ignored
-                                               const char *in_Reserved,        // Ignored
-                                               uint64_t in_InitialBufferSpace, // Ignored
-                                               const char *in_LibrarySearchPath,
-                                               const char *in_FileOfOrigin,    // Ignored
-                                               uint64_t in_FileOfOriginOffset, // Ignored
-                                               COIPROCESS *out_pProcess)
-{
-  COITRACE ("COIProcessCreateFromMemory");
-
-  const int run_max_args_num = 128;
-  char *run_argv[run_max_args_num];
-  char *emul_run = getenv (OFFLOAD_EMUL_RUN_ENV);
-  const int uint_max_len = 11;
-
-  /* Features of liboffloadmic.  */
-  assert (in_Engine != NULL);
-  assert (in_pBinaryName != NULL);
-  assert (in_pBinaryBuffer != NULL);
-  assert (in_Argc == 0);
-  assert (in_ppArgv == NULL);
-  assert (in_ppAdditionalEnv == NULL);
-  assert (in_LibrarySearchPath != NULL);
-  assert (out_pProcess != NULL);
-
-  /* Convert input arguments.  */
-  Engine *eng = (Engine *) in_Engine;
-
-  /* Create temporary directory for engine files.  */
-  assert (eng->dir == NULL);
-  STRDUP (eng->dir, ENGINE_PATH);
-  if (mkdtemp (eng->dir) == NULL)
-    COIERROR ("Cannot create temporary directory %s.", eng->dir);
-
-  /* Save path to engine directory for clean up on exit.  */
-  tmp_dirs_num++;
-  tmp_dirs = (char **) realloc (tmp_dirs, tmp_dirs_num * sizeof (char *));
-  if (!tmp_dirs)
-    COIERROR ("Cannot allocate memory.");
-  STRDUP (tmp_dirs[tmp_dirs_num - 1], eng->dir);
-
-  /* Create target executable file.  */
-  char *target_exe;
-  MALLOC (char *, target_exe, strlen (eng->dir) + strlen (in_pBinaryName) + 2);
-  sprintf (target_exe, "%s/%s", eng->dir, in_pBinaryName);
-  int fd = open (target_exe, O_CLOEXEC | O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
-  if (fd < 0)
-    COIERROR ("Cannot create file %s.", target_exe);
-  FILE *file = fdopen (fd, "wb");
-  if (file == NULL)
-    COIERROR ("Cannot associate stream with file descriptor.");
-  if (fwrite (in_pBinaryBuffer, 1, in_BinaryBufferLength, file)
-      != in_BinaryBufferLength)
-    COIERROR ("Cannot write in file %s.", target_exe);
-  if (fclose (file) != 0)
-    COIERROR ("Cannot close file %s.", target_exe);
-
-  /* Fix file permissions.  */
-  if (chmod (target_exe, S_IRWXU) < 0)
-    COIERROR ("Cannot change permissions for file %s.", target_exe);
-
-  /* Create directory for pipes to prevent names collision.  */
-  char *pipes_path;
-  MALLOC (char *, pipes_path, strlen (eng->dir) + sizeof (PIPES_PATH));
-  sprintf (pipes_path, "%s" PIPES_PATH, eng->dir);
-  if (mkdir (pipes_path, S_IRWXU) < 0)
-    COIERROR ("Cannot create folder %s.", pipes_path);
-
-  /* Create 2 main pipes for inter-process communication.  */
-  char *pipe_host2tgt_path, *pipe_tgt2host_path;
-  MALLOC (char *, pipe_host2tgt_path,
-         strlen (eng->dir) + sizeof (PIPE_HOST2TGT_NAME "mainpipe"));
-  MALLOC (char *, pipe_tgt2host_path,
-         strlen (eng->dir) + sizeof (PIPE_TGT2HOST_NAME "mainpipe"));
-  sprintf (pipe_host2tgt_path, "%s" PIPE_HOST2TGT_NAME "mainpipe", eng->dir);
-  sprintf (pipe_tgt2host_path, "%s" PIPE_TGT2HOST_NAME "mainpipe", eng->dir);
-  if (mkfifo (pipe_host2tgt_path, S_IRUSR | S_IWUSR) < 0)
-    COIERROR ("Cannot create main pipe %s.", pipe_host2tgt_path);
-  if (mkfifo (pipe_tgt2host_path, S_IRUSR | S_IWUSR) < 0)
-    COIERROR ("Cannot create main pipe %s.", pipe_tgt2host_path);
-
-  /* Prepare argv.  */
-  if (emul_run == NULL || strcmp (emul_run, "") == 0)
-    {
-      STRDUP (run_argv[0], target_exe);
-      run_argv[1] = (char *) NULL;
-    }
-  else
-    {
-      char *ptr, *tmp;
-      int i = 0;
-      STRDUP (tmp, emul_run);
-      char *tok = strtok_r (tmp, " ", &ptr);
-      while (tok != NULL)
-       {
-         if (i >= run_max_args_num)
-           COIERROR ("Run command has too many arguments.");
-         STRDUP (run_argv[i++], tok);
-         tok = strtok_r (NULL, " ", &ptr);
-       }
-      STRDUP (run_argv[i], target_exe);
-      run_argv[i + 1] = (char *) NULL;
-      free (tmp);
-    }
-
-  /* Prepare envp.  */
-  int env_num = 0;
-  if (in_DupEnv == true)
-    while (environ[env_num++]);
-  env_num += 4; // LD_LIBRARY_PATH, MIC_DIR, MIC_INDEX, NULL
-
-  char **envp;
-  MALLOC (char **, envp, env_num * sizeof (char *));
-
-  int env_i = 0;
-  if (in_DupEnv == true)
-    for (unsigned i = 0; environ[i] != NULL; i++)
-      {
-       unsigned j;
-       char *env_name;
-       STRDUP (env_name, environ[i]);
-       for (j = 0; env_name[j] != '=' && env_name[j] != '\0'; j++);
-       env_name[j] = '\0';
-       if (strcmp (env_name, "LD_LIBRARY_PATH") != 0
-           && strcmp (env_name, MIC_DIR_ENV) != 0
-           && strcmp (env_name, MIC_INDEX_ENV) != 0)
-         STRDUP (envp[env_i++], environ[i]);
-       free (env_name);
-      }
-
-  MALLOC (char *, envp[env_i], strlen (MIC_DIR_ENV) + strlen (eng->dir) + 2);
-  sprintf (envp[env_i], "%s=%s", MIC_DIR_ENV, eng->dir);
-
-  MALLOC (char *, envp[env_i + 1], strlen (MIC_INDEX_ENV) + uint_max_len + 1);
-  sprintf (envp[env_i + 1], "%s=%u", MIC_INDEX_ENV, eng->index);
-
-  MALLOC (char *, envp[env_i + 2],
-         strlen ("LD_LIBRARY_PATH=") + strlen (in_LibrarySearchPath) + 1);
-  sprintf (envp[env_i + 2], "LD_LIBRARY_PATH=%s", in_LibrarySearchPath);
-
-  envp[env_i + 3] = (char *) NULL;
-
-  /* Create target process.  */
-  pid_t pid = vfork ();
-  if (pid < 0)
-    COIERROR ("Cannot create child process.");
-
-  if (pid == 0)
-    {
-      /* Run target executable.  */
-      if (execvpe (run_argv[0], run_argv, envp) == -1)
-       COIERROR ("Cannot execute file %s.", target_exe);
-    }
-
-  /* Open main pipes.  */
-  int pipe_host2tgt = open (pipe_host2tgt_path, O_CLOEXEC | O_WRONLY);
-  if (pipe_host2tgt < 0)
-    COIERROR ("Cannot open host-to-target main pipe.");
-  int pipe_tgt2host = open (pipe_tgt2host_path, O_CLOEXEC | O_RDONLY);
-  if (pipe_tgt2host < 0)
-    COIERROR ("Cannot open target-to-host main pipe.");
-
-  /* Create process handle.  */
-  Process *proc = new Process;
-  proc->pid = pid;
-  proc->pipe_host2tgt = pipe_host2tgt;
-  proc->pipe_tgt2host = pipe_tgt2host;
-  proc->engine = eng;
-  proc->functions = NULL;
-
-  /* Prepare output arguments.  */
-  *out_pProcess = (COIPROCESS) proc;
-
-  /* Clean up.  */
-  for (unsigned i = 0; run_argv[i] != NULL; i++)
-    free (run_argv[i]);
-  for (unsigned i = 0; envp[i] != NULL; i++)
-    free (envp[i]);
-  free (envp);
-  free (pipe_host2tgt_path);
-  free (pipe_tgt2host_path);
-  free (pipes_path);
-  free (target_exe);
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessCreateFromFile, 1) (COIENGINE in_Engine,
-                                             const char *in_pBinaryName,
-                                             int in_Argc,
-                                             const char **in_ppArgv,
-                                             uint8_t in_DupEnv,
-                                             const char **in_ppAdditionalEnv,
-                                             uint8_t in_ProxyActive,
-                                             const char *in_Reserved,
-                                             uint64_t in_BufferSpace,
-                                             const char *in_LibrarySearchPath,
-                                             COIPROCESS *out_pProcess)
-{
-  COITRACE ("COIProcessCreateFromFile");
-
-  /* liboffloadmic with GCC compiled binaries should never go here.  */
-  assert (false);
-  return COI_ERROR;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessDestroy, 1) (COIPROCESS in_Process,
-                                      int32_t in_WaitForMainTimeout, // Ignored
-                                      uint8_t in_ForceDestroy,
-                                      int8_t *out_pProcessReturn,
-                                      uint32_t *out_pTerminationCode)
-{
-  COITRACE ("COIProcessDestroy");
-
-  assert (in_Process != NULL);
-  assert (out_pProcessReturn != NULL);
-  assert (out_pTerminationCode != NULL);
-
-  /* Convert input arguments.  */
-  Process *proc = (Process *) in_Process;
-
-  /* Destroy all undestroyed pipelines.  */
-  while (!pipelines.empty ())
-    {
-      std::set<Pipeline *>::iterator p = pipelines.begin ();
-      COIPipelineDestroy ((COIPIPELINE) *p);
-    }
-
-  /* Close main pipes.  */
-  if (close (proc->pipe_host2tgt) < 0)
-    COIERROR ("Cannot close host-to-target main pipe.");
-  if (close (proc->pipe_tgt2host) < 0)
-    COIERROR ("Cannot close target-to-host main pipe.");
-
-  /* Shutdown target process by force.  */
-  if (in_ForceDestroy)
-    kill (proc->pid, SIGTERM);
-
-  /* Clean up.  */
-  free (proc->engine->dir);
-  free (proc->functions);
-  delete proc->engine;
-  delete proc;
-
-  /* Prepare output arguments.  */
-  *out_pProcessReturn = 0;
-  *out_pTerminationCode = 0;
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessGetFunctionHandles, 1) (COIPROCESS in_Process,
-                                                 uint32_t in_NumFunctions,
-                                                 const char **in_ppFunctionNameArray,
-                                                 COIFUNCTION *out_pFunctionHandleArray)
-{
-  COITRACE ("COIProcessGetFunctionHandles");
-
-  assert (in_Process != NULL);
-  assert (in_ppFunctionNameArray != NULL);
-  assert (out_pFunctionHandleArray != NULL);
-
-  /* Convert input arguments.  */
-  Process *proc = (Process *) in_Process;
-
-  /* This function should be called once for the process.  */
-  assert (proc->functions == NULL);
-
-  /* Create array of function pointers.  Last element is 0, what shows the end
-     of the array.  This array is used to free memory when process is
-     destroyed.  */
-  proc->functions = (void **) calloc (in_NumFunctions + 1, sizeof (void *));
-  if (proc->functions == NULL)
-    COIERROR ("Cannot allocate memory.");
-
-  /* Get handles for functions.  */
-  for (uint32_t i = 0; i < in_NumFunctions; i++)
-    {
-      size_t len = strlen (in_ppFunctionNameArray[i]) + 1;
-
-      start_critical_section ();
-
-      /* Send data to target.  */
-      const cmd_t cmd = CMD_GET_FUNCTION_HANDLE;
-      WRITE (proc->pipe_host2tgt, &cmd, sizeof (cmd_t));
-      WRITE (proc->pipe_host2tgt, &len, sizeof (size_t));
-      WRITE (proc->pipe_host2tgt, in_ppFunctionNameArray[i], len);
-
-      /* Receive data from target.  */
-      void *fn_ptr;
-      READ (proc->pipe_tgt2host, &fn_ptr, sizeof (void *));
-
-      finish_critical_section ();
-
-      /* Save function pointer.  */
-      proc->functions[i] = fn_ptr;
-
-      /* Prepare output arguments.  */
-      out_pFunctionHandleArray[i] = (COIFUNCTION) fn_ptr;
-    }
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessLoadLibraryFromMemory, 2) (COIPROCESS in_Process,
-                                                    const void *in_pLibraryBuffer,
-                                                    uint64_t in_LibraryBufferLength,
-                                                    const char *in_pLibraryName,
-                                                    const char *in_LibrarySearchPath,  // Ignored
-                                                    const char *in_FileOfOrigin,       // Ignored
-                                                    uint64_t in_FileOfOriginOffset,    // Ignored
-                                                    uint32_t in_Flags,                 // Ignored
-                                                    COILIBRARY *out_pLibrary)
-{
-  COITRACE ("COIProcessLoadLibraryFromMemory");
-
-  assert (in_Process != NULL);
-  assert (in_pLibraryBuffer != NULL);
-  assert (out_pLibrary != NULL);
-
-  /* Convert input arguments.  */
-  Process *proc = (Process *) in_Process;
-
-  /* Create target library file.  */
-  char *lib_path;
-  size_t len = strlen (proc->engine->dir) + strlen (in_pLibraryName) + 2;
-  MALLOC (char *, lib_path, len);
-  sprintf (lib_path, "%s/%s", proc->engine->dir, in_pLibraryName);
-  int fd = open (lib_path, O_CLOEXEC | O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
-  if (fd < 0)
-    COIERROR ("Cannot create file %s.", lib_path);
-  FILE *file = fdopen (fd, "wb");
-  if (file == NULL)
-    COIERROR ("Cannot associate stream with file descriptor.");
-  if (fwrite (in_pLibraryBuffer, 1, in_LibraryBufferLength, file)
-      != in_LibraryBufferLength)
-    COIERROR ("Cannot write in file %s.", lib_path);
-  if (fclose (file) != 0)
-    COIERROR ("Cannot close file %s.", lib_path);
-
-  start_critical_section ();
-
-  /* Make target open library.  */
-  const cmd_t cmd = CMD_OPEN_LIBRARY;
-  WRITE (proc->pipe_host2tgt, &cmd, sizeof (cmd_t));
-  WRITE (proc->pipe_host2tgt, &len, sizeof (size_t));
-  WRITE (proc->pipe_host2tgt, lib_path, len);
-
-  /* Receive data from target.  */
-  void *handle;
-  READ (proc->pipe_tgt2host, &handle, sizeof (void *));
-
-  finish_critical_section ();
-
-  /* Clean up.  */
-  free (lib_path);
-
-  *out_pLibrary = (COILIBRARY) handle;
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessRegisterLibraries, 1) (uint32_t in_NumLibraries,                   // Ignored
-                                                const void **in_ppLibraryArray,              // Ignored
-                                                const uint64_t *in_pLibrarySizeArray,        // Ignored
-                                                const char **in_ppFileOfOriginArray,         // Ignored
-                                                const uint64_t *in_pFileOfOriginOffSetArray) // Ignored
-{
-  COITRACE ("COIProcessRegisterLibraries");
-
-  /* Looks like we have nothing to do here.  */
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIProcessUnloadLibrary, 1) (COIPROCESS in_Process,
-                                            COILIBRARY in_Library)
-{
-  COITRACE ("COIProcessUnloadLibrary");
-
-  assert (in_Process != NULL);
-  assert (in_Library != NULL);
-
-  const cmd_t cmd = CMD_CLOSE_LIBRARY;
-
-  /* Convert input arguments.  */
-  Process *proc = (Process *) in_Process;
-
-  start_critical_section ();
-
-  /* Make target close library.  */
-  WRITE (proc->pipe_host2tgt, &cmd, sizeof (cmd_t));
-  WRITE (proc->pipe_host2tgt, &in_Library, sizeof (void *));
-
-  finish_critical_section ();
-
-  return COI_SUCCESS;
-}
-
-
-uint64_t
-SYMBOL_VERSION (COIPerfGetCycleFrequency, 1) ()
-{
-  COITRACE ("COIPerfGetCycleFrequency");
-
-  return (uint64_t) CYCLE_FREQUENCY;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIPipelineClearCPUMask, 1) (COI_CPU_MASK *in_Mask)
-{
-  COITRACE ("COIPipelineClearCPUMask");
-
-  /* Looks like we have nothing to do here.  */
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIPipelineSetCPUMask, 1) (COIPROCESS in_Process,
-                                          uint32_t in_CoreID,
-                                          uint8_t in_ThreadID,
-                                          COI_CPU_MASK *out_pMask)
-{
-  COITRACE ("COIPipelineSetCPUMask");
-
-  /* Looks like we have nothing to do here.  */
-
-  return COI_SUCCESS;
-}
-
-
-COIRESULT
-SYMBOL_VERSION (COIEngineGetInfo, 1) (COIENGINE in_EngineHandle,  // Ignored
-                                     uint32_t in_EngineInfoSize, // Ignored
-                                     COI_ENGINE_INFO *out_pEngineInfo)
-{
-  COITRACE ("COIEngineGetInfo");
-
-  assert (out_pEngineInfo != NULL);
-
-  out_pEngineInfo->ISA = COI_DEVICE_KNL;
-  out_pEngineInfo->NumCores = 1;
-  out_pEngineInfo->NumThreads = 8;
-  out_pEngineInfo->CoreMaxFrequency = SYMBOL_VERSION(COIPerfGetCycleFrequency,1)() / 1000000;
-  out_pEngineInfo->PhysicalMemory = 1024;
-  out_pEngineInfo->PhysicalMemoryFree = 1024;
-  out_pEngineInfo->SwapMemory = 1024;
-  out_pEngineInfo->SwapMemoryFree = 1024;
-  out_pEngineInfo->MiscFlags = COI_ENG_ECC_DISABLED;
-
-  return COI_SUCCESS;
-}
-
-} // extern "C"
-
diff --git a/liboffloadmic/runtime/emulator/coi_host.h b/liboffloadmic/runtime/emulator/coi_host.h
deleted file mode 100644 (file)
index 82dbc92..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef COI_HOST_H_INCLUDED
-#define COI_HOST_H_INCLUDED
-
-#include "coi_common.h"
-
-#define COIERROR(...)                    \
-{                                        \
-  fprintf (stderr, "COI ERROR - HOST: "); \
-  fprintf (stderr, __VA_ARGS__);         \
-  fprintf (stderr, "\n");                \
-  perror (NULL);                         \
-  return COI_ERROR;                      \
-}
-
-/* Like COIERROR, but return NULL instead of COIRESULT.  */
-#define COIERRORN(...)                   \
-{                                        \
-  fprintf (stderr, "COI ERROR - HOST: "); \
-  fprintf (stderr, __VA_ARGS__);         \
-  fprintf (stderr, "\n");                \
-  perror (NULL);                         \
-  return NULL;                           \
-}
-
-#ifdef DEBUG
-  #define COITRACE(...)                            \
-  {                                        \
-    fprintf (stderr, "COI TRACE - HOST: "); \
-    fprintf (stderr, __VA_ARGS__);         \
-    fprintf (stderr, "\n");                \
-  }
-#else
-  #define COITRACE(...) {}
-#endif
-
-#endif // COI_HOST_H_INCLUDED
diff --git a/liboffloadmic/runtime/emulator/coi_version_asm.h b/liboffloadmic/runtime/emulator/coi_version_asm.h
deleted file mode 100644 (file)
index e64ba7d..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-// Originally generated via:
-//   cd include;
-//   ctags -x --c-kinds=fp -R sink/ source/ common/ | grep -v COIX | awk '{print "__asm__(\".symver "$1"1,"$1"@@COI_1.0\");"}'
-//
-// These directives must have an associated linker script with VERSION stuff.
-// See coi_version_linker_script.map
-// Passed in as
-//    -Wl,--version-script coi_version_linker_script.map
-// when building Intel(R) Coprocessor Offload Infrastructure (Intel(R) COI)
-//
-// See http://sourceware.org/binutils/docs/ld/VERSION.html#VERSION for more info
-//
-// This is not strictly a .h file, so no need to #pragma once or anything.
-// You must include these asm directives in the same translation unit as the
-// one where the function body is.
-// Otherwise we'd have add this file to the list of files needed to build
-// libcoi*, instead of including it in each of the api/*/*cpp files.
-//
-__asm__(".symver COIBufferAddRef1,COIBufferAddRef@@COI_1.0");
-__asm__(".symver COIBufferCopy1,COIBufferCopy@@COI_1.0");
-__asm__(".symver COIBufferCreate1,COIBufferCreate@@COI_1.0");
-__asm__(".symver COIBufferCreateFromMemory1,COIBufferCreateFromMemory@@COI_1.0");
-__asm__(".symver COIBufferDestroy1,COIBufferDestroy@@COI_1.0");
-__asm__(".symver COIBufferGetSinkAddress1,COIBufferGetSinkAddress@@COI_1.0");
-__asm__(".symver COIBufferMap1,COIBufferMap@@COI_1.0");
-__asm__(".symver COIBufferRead1,COIBufferRead@@COI_1.0");
-__asm__(".symver COIBufferReleaseRef1,COIBufferReleaseRef@@COI_1.0");
-__asm__(".symver COIBufferSetState1,COIBufferSetState@@COI_1.0");
-__asm__(".symver COIBufferUnmap1,COIBufferUnmap@@COI_1.0");
-__asm__(".symver COIBufferWrite1,COIBufferWrite@@COI_1.0");
-__asm__(".symver COIEngineGetCount1,COIEngineGetCount@@COI_1.0");
-__asm__(".symver COIEngineGetHandle1,COIEngineGetHandle@@COI_1.0");
-__asm__(".symver COIEngineGetIndex1,COIEngineGetIndex@@COI_1.0");
-__asm__(".symver COIEngineGetInfo1,COIEngineGetInfo@@COI_1.0");
-__asm__(".symver COIEventRegisterCallback1,COIEventRegisterCallback@@COI_1.0");
-__asm__(".symver COIEventWait1,COIEventWait@@COI_1.0");
-__asm__(".symver COIPerfGetCycleFrequency1,COIPerfGetCycleFrequency@@COI_1.0");
-__asm__(".symver COIPipelineClearCPUMask1,COIPipelineClearCPUMask@@COI_1.0");
-__asm__(".symver COIPipelineCreate1,COIPipelineCreate@@COI_1.0");
-__asm__(".symver COIPipelineDestroy1,COIPipelineDestroy@@COI_1.0");
-__asm__(".symver COIPipelineRunFunction1,COIPipelineRunFunction@@COI_1.0");
-__asm__(".symver COIPipelineSetCPUMask1,COIPipelineSetCPUMask@@COI_1.0");
-__asm__(".symver COIPipelineStartExecutingRunFunctions1,COIPipelineStartExecutingRunFunctions@@COI_1.0");
-__asm__(".symver COIProcessCreateFromFile1,COIProcessCreateFromFile@@COI_1.0");
-__asm__(".symver COIProcessCreateFromMemory1,COIProcessCreateFromMemory@@COI_1.0");
-__asm__(".symver COIProcessDestroy1,COIProcessDestroy@@COI_1.0");
-__asm__(".symver COIProcessGetFunctionHandles1,COIProcessGetFunctionHandles@@COI_1.0");
-__asm__(".symver COIProcessLoadLibraryFromMemory2,COIProcessLoadLibraryFromMemory@COI_2.0");
-__asm__(".symver COIProcessRegisterLibraries1,COIProcessRegisterLibraries@@COI_1.0");
-__asm__(".symver COIProcessUnloadLibrary1,COIProcessUnloadLibrary@@COI_1.0");
-__asm__(".symver COIProcessWaitForShutdown1,COIProcessWaitForShutdown@@COI_1.0");
diff --git a/liboffloadmic/runtime/emulator/coi_version_linker_script.map b/liboffloadmic/runtime/emulator/coi_version_linker_script.map
deleted file mode 100644 (file)
index ea18066..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * Copyright 2010-2016 Intel Corporation.
- *
- * This library is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
- * by the Free Software Foundation, version 2.1.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301 USA.
- *
- * Disclaimer: The codes contained in these modules may be specific
- * to the Intel Software Development Platform codenamed Knights Ferry,
- * and the Intel product codenamed Knights Corner, and are not backward
- * compatible with other Intel products. Additionally, Intel will NOT
- * support the codes or instruction set in future products.
- *
- * Intel offers no warranty of any kind regarding the code. This code is
- * licensed on an "AS IS" basis and Intel is not obligated to provide
- * any support, assistance, installation, training, or other services
- * of any kind. Intel is also not obligated to provide any updates,
- * enhancements or extensions. Intel specifically disclaims any warranty
- * of merchantability, non-infringement, fitness for any particular
- * purpose, and any other warranty.
- *
- * Further, Intel disclaims all liability of any kind, including but
- * not limited to liability for infringement of any proprietary rights,
- * relating to the use of the code, even if Intel is notified of the
- * possibility of such liability. Except as expressly stated in an Intel
- * license agreement provided with this code and agreed upon with Intel,
- * no license, express or implied, by estoppel or otherwise, to any
- * intellectual property rights is granted herein.
- */
-
-/***
-* See http://sourceware.org/binutils/docs/ld/VERSION.html#VERSION for more info.
-* Use this in conjunction with coi_version_asm.h.
-* // Comments don't work in this file.
-***/
-
-COI_1.0
-{
-  global:
-    COIBufferAddRef;
-    COIBufferCopy;
-    COIBufferCreate;
-    COIBufferCreateFromMemory;
-    COIBufferDestroy;
-    COIBufferGetSinkAddress;
-    COIBufferMap;
-    COIBufferRead;
-    COIBufferReleaseRef;
-    COIBufferSetState;
-    COIBufferUnmap;
-    COIBufferWrite;
-    COIEngineGetCount;
-    COIEngineGetHandle;
-    COIEngineGetIndex;
-    COIEngineGetInfo;
-    COIEventWait;
-    COIEventRegisterCallback;
-    COIPerfGetCycleFrequency;
-    COIPipelineClearCPUMask;
-    COIPipelineCreate;
-    COIPipelineDestroy;
-    COIPipelineRunFunction;
-    COIPipelineSetCPUMask;
-    COIPipelineStartExecutingRunFunctions;
-    COIProcessCreateFromFile;
-    COIProcessCreateFromMemory;
-    COIProcessDestroy;
-    COIProcessGetFunctionHandles;
-    COIProcessLoadLibraryFromMemory;
-    COIProcessRegisterLibraries;
-    COIProcessUnloadLibrary;
-    COIProcessWaitForShutdown;
-  local:
-    *;
-};
-
-COI_2.0
-{
-
-} COI_1.0;
-
diff --git a/liboffloadmic/runtime/liboffload_error.c b/liboffloadmic/runtime/liboffload_error.c
deleted file mode 100644 (file)
index 5dffdb1..0000000
+++ /dev/null
@@ -1,561 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include <stdio.h>
-#include <stdarg.h>
-#ifndef va_copy
-#define va_copy(dst, src) ((dst) = (src))
-#endif
-
-#include "liboffload_msg.h"
-
-#include "liboffload_error_codes.h"
-
-/***********************************************/
-/* error-handling function, liboffload_error_support */
-/***********************************************/
-
-void __liboffload_error_support(error_types input_tag, ...)
-{
-    va_list args;
-    va_start(args, input_tag);
-
-    switch (input_tag) {
-        case c_device_is_not_available:
-            write_message(stderr, msg_c_device_is_not_available, args);
-            break;
-        case c_invalid_device_number:
-            write_message(stderr, msg_c_invalid_device_number, args);
-            break;
-        case c_send_func_ptr:
-            write_message(stderr, msg_c_send_func_ptr, args);
-            break;
-        case c_receive_func_ptr:
-            write_message(stderr, msg_c_receive_func_ptr, args);
-            break;
-        case c_malloc:
-            write_message(stderr, msg_c_malloc, args);
-            break;
-        case c_unknown_mic_device_type:
-            write_message(stderr, msg_c_unknown_mic_device_type, args);
-            break;
-        case c_offload_malloc:
-            write_message(stderr, msg_c_offload_malloc, args);
-            break;
-        case c_offload1:
-            write_message(stderr, msg_c_offload1, args);
-            break;
-        case c_unknown_var_type:
-            write_message(stderr, msg_c_unknown_var_type, args);
-            break;
-        case c_invalid_env_var_value:
-            write_message(stderr, msg_c_invalid_env_var_value, args);
-            break;
-        case c_invalid_env_var_int_value:
-            write_message(stderr, msg_c_invalid_env_var_int_value, args);
-            break;
-        case c_invalid_env_report_value:
-            write_message(stderr, msg_c_invalid_env_report_value, args);
-            break;
-        case c_offload_signaled1:
-            write_message(stderr, msg_c_offload_signaled1, args);
-            break;
-        case c_offload_signaled2:
-            write_message(stderr, msg_c_offload_signaled2, args);
-            break;
-        case c_myowrapper_checkresult:
-            write_message(stderr, msg_c_myowrapper_checkresult, args);
-            break;
-        case c_myotarget_checkresult:
-            write_message(stderr, msg_c_myotarget_checkresult, args);
-            break;
-        case c_offload_descriptor_offload:
-            write_message(stderr, msg_c_offload_descriptor_offload, args);
-            break;
-        case c_merge_var_descs1:
-            write_message(stderr, msg_c_merge_var_descs1, args);
-            break;
-        case c_merge_var_descs2:
-            write_message(stderr, msg_c_merge_var_descs2, args);
-            break;
-        case c_mic_parse_env_var_list1:
-            write_message(stderr, msg_c_mic_parse_env_var_list1, args);
-            break;
-        case c_mic_parse_env_var_list2:
-            write_message(stderr, msg_c_mic_parse_env_var_list2, args);
-            break;
-        case c_mic_process_exit_ret:
-            write_message(stderr, msg_c_mic_process_exit_ret, args);
-            break;
-        case c_mic_process_exit_sig:
-            write_message(stderr, msg_c_mic_process_exit_sig, args);
-            break;
-        case c_mic_process_exit:
-            write_message(stderr, msg_c_mic_process_exit, args);
-            break;
-        case c_mic_init3:
-            write_message(stderr, msg_c_mic_init3, args);
-            break;
-        case c_mic_init4:
-            write_message(stderr, msg_c_mic_init4, args);
-            break;
-        case c_mic_init5:
-            write_message(stderr, msg_c_mic_init5, args);
-            break;
-        case c_mic_init6:
-            write_message(stderr, msg_c_mic_init6, args);
-            break;
-        case c_mic_init7:
-            write_message(stderr, msg_c_mic_init7, args);
-            break;
-        case c_mic_init8:
-            write_message(stderr, msg_c_mic_init8, args);
-            break;
-        case c_mic_init9:
-            write_message(stderr, msg_c_mic_init9, args);
-            break;
-        case c_mic_init10:
-            write_message(stderr, msg_c_mic_init10, args);
-            break;
-        case c_mic_init11:
-            write_message(stderr, msg_c_mic_init11, args);
-            break;
-        case c_no_static_var_data:
-            write_message(stderr, msg_c_no_static_var_data, args);
-            break;
-        case c_no_ptr_data:
-            write_message(stderr, msg_c_no_ptr_data, args);
-            break;
-        case c_get_engine_handle:
-            write_message(stderr, msg_c_get_engine_handle, args);
-            break;
-        case c_get_engine_index:
-            write_message(stderr, msg_c_get_engine_index, args);
-            break;
-        case c_process_create:
-            write_message(stderr, msg_c_process_create, args);
-            break;
-        case c_process_set_cache_size:
-            write_message(stderr, msg_c_process_set_cache_size, args);
-            break;
-        case c_process_wait_shutdown:
-            write_message(stderr, msg_c_process_wait_shutdown, args);
-            break;
-        case c_process_proxy_flush:
-            write_message(stderr, msg_c_process_proxy_flush, args);
-            break;
-        case c_process_get_func_handles:
-            write_message(stderr, msg_c_process_get_func_handles, args);
-            break;
-        case c_load_library:
-            write_message(stderr, msg_c_load_library, args);
-            break;
-        case c_coipipe_max_number:
-            write_message(stderr, msg_c_coi_pipeline_max_number, args);
-            break;
-        case c_pipeline_create:
-            write_message(stderr, msg_c_pipeline_create, args);
-            break;
-        case c_pipeline_run_func:
-            write_message(stderr, msg_c_pipeline_run_func, args);
-            break;
-        case c_pipeline_start_run_funcs:
-            write_message(stderr, msg_c_pipeline_start_run_funcs, args);
-            break;
-        case c_buf_create:
-            write_message(stderr, msg_c_buf_create, args);
-            break;
-        case c_buf_create_out_of_mem:
-            write_message(stderr, msg_c_buf_create_out_of_mem, args);
-            break;
-        case c_buf_create_from_mem:
-            write_message(stderr, msg_c_buf_create_from_mem, args);
-            break;
-        case c_buf_destroy:
-            write_message(stderr, msg_c_buf_destroy, args);
-            break;
-        case c_buf_map:
-            write_message(stderr, msg_c_buf_map, args);
-            break;
-        case c_buf_unmap:
-            write_message(stderr, msg_c_buf_unmap, args);
-            break;
-        case c_buf_read:
-            write_message(stderr, msg_c_buf_read, args);
-            break;
-        case c_buf_write:
-            write_message(stderr, msg_c_buf_write, args);
-            break;
-        case c_buf_copy:
-            write_message(stderr, msg_c_buf_copy, args);
-            break;
-        case c_buf_get_address:
-            write_message(stderr, msg_c_buf_get_address, args);
-            break;
-        case c_buf_add_ref:
-            write_message(stderr, msg_c_buf_add_ref, args);
-            break;
-        case c_buf_release_ref:
-            write_message(stderr, msg_c_buf_release_ref, args);
-            break;
-        case c_buf_set_state:
-            write_message(stderr, msg_c_buf_set_state, args);
-            break;
-        case c_event_wait:
-            write_message(stderr, msg_c_event_wait, args);
-            break;
-        case c_zero_or_neg_ptr_len:
-            write_message(stderr, msg_c_zero_or_neg_ptr_len, args);
-            break;
-        case c_zero_or_neg_transfer_size:
-            write_message(stderr, msg_c_zero_or_neg_transfer_size, args);
-            break;
-        case c_bad_ptr_mem_alloc:
-            write_message(stderr, msg_c_bad_ptr_mem_alloc, args);
-            break;
-        case c_bad_ptr_mem_range:
-            write_message(stderr, msg_c_bad_ptr_mem_range, args);
-            break;
-        case c_different_src_and_dstn_sizes:
-            write_message(stderr, msg_c_different_src_and_dstn_sizes, args);
-            break;
-        case c_ranges_dont_match:
-            write_message(stderr, msg_c_ranges_dont_match, args);
-            break;
-        case c_destination_is_over:
-            write_message(stderr, msg_c_destination_is_over, args);
-            break;
-        case c_slice_of_noncont_array:
-            write_message(stderr, msg_c_slice_of_noncont_array, args);
-            break;
-        case c_non_contiguous_dope_vector:
-            write_message(stderr, msg_c_non_contiguous_dope_vector, args);
-            break;
-        case c_pointer_array_mismatch:
-            write_message(stderr, msg_c_pointer_array_mismatch, args);
-            break;
-        case c_omp_invalid_device_num_env:
-            write_message(stderr, msg_c_omp_invalid_device_num_env, args);
-            break;
-        case c_omp_invalid_device_num:
-            write_message(stderr, msg_c_omp_invalid_device_num, args);
-            break;
-        case c_unknown_binary_type:
-            write_message(stderr, msg_c_unknown_binary_type, args);
-            break;
-        case c_multiple_target_exes:
-            write_message(stderr, msg_c_multiple_target_exes, args);
-            break;
-        case c_no_target_exe:
-            write_message(stderr, msg_c_no_target_exe, args);
-            break;
-        case c_report_unknown_timer_node:
-            write_message(stderr, msg_c_report_unknown_timer_node, args);
-            break;
-        case c_report_unknown_trace_node:
-            write_message(stderr, msg_c_report_unknown_trace_node, args);
-            break;
-        case c_incorrect_affinity:
-            write_message(stderr, msg_c_incorrect_affinity, args);
-            break;
-        case c_cannot_set_affinity:
-            write_message(stderr, msg_c_cannot_set_affinity, args);
-            break;
-        case c_mixed_versions:
-            write_message(stderr, msg_c_mixed_versions, args);
-            break;
-        case c_in_with_preallocated:
-            write_message(stderr, msg_c_in_with_preallocated, args);
-            break;
-        case c_report_no_host_exe:
-            write_message(stderr, msg_c_report_no_host_exe, args);
-            break;
-        case c_report_no_target_exe:
-            write_message(stderr, msg_c_report_no_target_exe, args);
-            break;
-        case c_report_path_buff_overflow:
-            write_message(stderr, msg_c_report_path_buff_overflow, args);
-            break;
-        case c_create_pipeline_for_stream:
-            write_message(stderr, msg_c_create_pipeline_for_stream, args);
-            break;
-        case c_offload_streams_are_absent:
-            write_message(stderr, msg_c_offload_streams_are_absent, args);
-            break;
-        case c_offload_no_stream:
-            write_message(stderr, msg_c_offload_no_stream, args);
-            break;
-         case c_offload_device_doesnt_match_to_stream:
-            write_message(stderr,
-                          msg_c_offload_device_doesnt_match_to_stream, args);
-            break;
-        case c_get_engine_info:
-            write_message(stderr, msg_c_get_engine_info, args);
-            break;
-        case c_clear_cpu_mask:
-            write_message(stderr, msg_c_clear_cpu_mask, args);
-            break;
-        case c_set_cpu_mask:
-            write_message(stderr, msg_c_set_cpu_mask, args);
-            break;
-        case c_unload_library:
-            write_message(stderr, msg_c_unload_library, args);
-            break;
-        case c_target_myo_library:
-            write_message(stderr, msg_c_target_myo_library, args);
-            break;
-        case c_myo_dl_sym:
-            write_message(stderr, msg_c_myo_dl_sym, args);
-            break;
-        case c_bad_myo_free:
-            write_message(stderr, msg_c_bad_myo_free, args);
-            break;
-    }
-    va_end(args);
-}
-
-char const * report_get_message_str(error_types input_tag)
-{
-    switch (input_tag) {
-        case c_report_title:
-            return (offload_get_message_str(msg_c_report_title));
-        case c_report_from_file:
-            return (offload_get_message_str(msg_c_report_from_file));
-        case c_report_offload:
-            return (offload_get_message_str(msg_c_report_offload));
-        case c_report_mic:
-            return (offload_get_message_str(msg_c_report_mic));
-        case c_report_file:
-            return (offload_get_message_str(msg_c_report_file));
-        case c_report_line:
-            return (offload_get_message_str(msg_c_report_line));
-        case c_report_host:
-            return (offload_get_message_str(msg_c_report_host));
-        case c_report_tag:
-            return (offload_get_message_str(msg_c_report_tag));
-        case c_report_cpu_time:
-            return (offload_get_message_str(msg_c_report_cpu_time));
-        case c_report_seconds:
-            return (offload_get_message_str(msg_c_report_seconds));
-        case c_report_cpu_to_mic_data:
-            return (offload_get_message_str(msg_c_report_cpu_to_mic_data));
-        case c_report_bytes:
-            return (offload_get_message_str(msg_c_report_bytes));
-        case c_report_mic_time:
-            return (offload_get_message_str(msg_c_report_mic_time));
-        case c_report_mic_to_cpu_data:
-            return (offload_get_message_str(msg_c_report_mic_to_cpu_data));
-        case c_report_compute:
-            return (offload_get_message_str(msg_c_report_compute));
-        case c_report_copyin_data:
-            return (offload_get_message_str(msg_c_report_copyin_data));
-        case c_report_copyout_data:
-            return (offload_get_message_str(msg_c_report_copyout_data));
-        case c_report_create_buf_host:
-            return (offload_get_message_str(c_report_create_buf_host));
-        case c_report_create_buf_mic:
-            return (offload_get_message_str(msg_c_report_create_buf_mic));
-        case c_report_destroy:
-            return (offload_get_message_str(msg_c_report_destroy));
-        case c_report_gather_copyin_data:
-            return (offload_get_message_str(msg_c_report_gather_copyin_data));
-        case c_report_gather_copyout_data:
-            return (offload_get_message_str(msg_c_report_gather_copyout_data));
-        case c_report_state_signal:
-            return (offload_get_message_str(msg_c_report_state_signal));
-        case c_report_signal:
-            return (offload_get_message_str(msg_c_report_signal));
-        case c_report_wait:
-            return (offload_get_message_str(msg_c_report_wait));
-        case c_report_init:
-            return (offload_get_message_str(msg_c_report_init));
-        case c_report_init_func:
-            return (offload_get_message_str(msg_c_report_init_func));
-        case c_report_logical_card:
-            return (offload_get_message_str(msg_c_report_logical_card));
-        case c_report_mic_myo_fptr:
-            return (offload_get_message_str(msg_c_report_mic_myo_fptr));
-        case c_report_mic_myo_shared:
-            return (offload_get_message_str(msg_c_report_mic_myo_shared));
-        case c_report_myoacquire:
-            return (offload_get_message_str(msg_c_report_myoacquire));
-        case c_report_myofini:
-            return (offload_get_message_str(msg_c_report_myofini));
-        case c_report_myoinit:
-            return (offload_get_message_str(msg_c_report_myoinit));
-        case c_report_myoregister:
-            return (offload_get_message_str(msg_c_report_myoregister));
-        case c_report_myorelease:
-            return (offload_get_message_str(msg_c_report_myorelease));
-        case c_report_myosharedalignedfree:
-            return (
-                offload_get_message_str(msg_c_report_myosharedalignedfree));
-        case c_report_myosharedalignedmalloc:
-            return (
-                offload_get_message_str(msg_c_report_myosharedalignedmalloc));
-        case c_report_myosharedfree:
-            return (offload_get_message_str(msg_c_report_myosharedfree));
-        case c_report_myosharedmalloc:
-            return (offload_get_message_str(msg_c_report_myosharedmalloc));
-        case c_report_physical_card:
-            return (offload_get_message_str(msg_c_report_physical_card));
-        case c_report_receive_pointer_data:
-            return (
-                offload_get_message_str(msg_c_report_receive_pointer_data));
-        case c_report_received_pointer_data:
-            return (
-                offload_get_message_str(msg_c_report_received_pointer_data));
-        case c_report_register:
-            return (offload_get_message_str(msg_c_report_register));
-        case c_report_scatter_copyin_data:
-            return (offload_get_message_str(msg_c_report_scatter_copyin_data));
-        case c_report_scatter_copyout_data:
-            return (
-                offload_get_message_str(msg_c_report_scatter_copyout_data));
-        case c_report_send_pointer_data:
-            return (offload_get_message_str(msg_c_report_send_pointer_data));
-        case c_report_sent_pointer_data:
-            return (offload_get_message_str(msg_c_report_sent_pointer_data));
-        case c_report_start:
-            return (offload_get_message_str(msg_c_report_start));
-        case c_report_start_target_func:
-            return (offload_get_message_str(msg_c_report_start_target_func));
-        case c_report_state:
-            return (offload_get_message_str(msg_c_report_state));
-        case c_report_unregister:
-            return (offload_get_message_str(msg_c_report_unregister));
-        case c_report_var:
-            return (offload_get_message_str(msg_c_report_var));
-        case c_report_stream:
-            return (offload_get_message_str(msg_c_report_stream));
-        case c_report_state_stream:
-            return (offload_get_message_str(msg_c_report_state_stream));
-
-        default:
-            LIBOFFLOAD_ERROR(c_report_unknown_trace_node);
-            abort();
-    }
-    return 0;
-}
-
-char const * report_get_host_stage_str(int i)
-{
-    switch (i) {
-        case c_offload_host_total_offload:
-            return (
-               offload_get_message_str(msg_c_report_host_total_offload_time));
-        case c_offload_host_initialize:
-            return (offload_get_message_str(msg_c_report_host_initialize));
-        case c_offload_host_target_acquire:
-            return (
-                offload_get_message_str(msg_c_report_host_target_acquire));
-        case c_offload_host_wait_deps:
-            return (offload_get_message_str(msg_c_report_host_wait_deps));
-        case c_offload_host_setup_buffers:
-            return (offload_get_message_str(msg_c_report_host_setup_buffers));
-        case c_offload_host_alloc_buffers:
-            return (offload_get_message_str(msg_c_report_host_alloc_buffers));
-        case c_offload_host_setup_misc_data:
-            return (
-                offload_get_message_str(msg_c_report_host_setup_misc_data));
-        case c_offload_host_alloc_data_buffer:
-            return (
-                offload_get_message_str(msg_c_report_host_alloc_data_buffer));
-        case c_offload_host_send_pointers:
-            return (offload_get_message_str(msg_c_report_host_send_pointers));
-        case c_offload_host_gather_inputs:
-            return (offload_get_message_str(msg_c_report_host_gather_inputs));
-        case c_offload_host_map_in_data_buffer:
-            return (
-                offload_get_message_str(msg_c_report_host_map_in_data_buffer));
-        case c_offload_host_unmap_in_data_buffer:
-            return (offload_get_message_str(
-                msg_c_report_host_unmap_in_data_buffer));
-        case c_offload_host_start_compute:
-            return (offload_get_message_str(msg_c_report_host_start_compute));
-        case c_offload_host_wait_compute:
-            return (offload_get_message_str(msg_c_report_host_wait_compute));
-        case c_offload_host_start_buffers_reads:
-            return (offload_get_message_str(
-                msg_c_report_host_start_buffers_reads));
-        case c_offload_host_scatter_outputs:
-            return (
-                offload_get_message_str(msg_c_report_host_scatter_outputs));
-        case c_offload_host_map_out_data_buffer:
-            return (offload_get_message_str(
-                msg_c_report_host_map_out_data_buffer));
-        case c_offload_host_unmap_out_data_buffer:
-            return (offload_get_message_str(
-                msg_c_report_host_unmap_out_data_buffer));
-        case c_offload_host_wait_buffers_reads:
-            return (
-                offload_get_message_str(msg_c_report_host_wait_buffers_reads));
-        case c_offload_host_destroy_buffers:
-            return (
-                offload_get_message_str(msg_c_report_host_destroy_buffers));
-        default:
-            LIBOFFLOAD_ERROR(c_report_unknown_timer_node);
-            abort();
-    }
-    return 0;
-}
-
-char const * report_get_target_stage_str(int i)
-{
-    switch (i) {
-        case c_offload_target_total_time:
-            return (offload_get_message_str(msg_c_report_target_total_time));
-        case c_offload_target_descriptor_setup:
-            return (
-                offload_get_message_str(msg_c_report_target_descriptor_setup));
-        case c_offload_target_func_lookup:
-            return (offload_get_message_str(msg_c_report_target_func_lookup));
-        case c_offload_target_func_time:
-            return (offload_get_message_str(msg_c_report_target_func_time));
-        case c_offload_target_scatter_inputs:
-            return (
-                offload_get_message_str(msg_c_report_target_scatter_inputs));
-        case c_offload_target_add_buffer_refs:
-            return (
-                offload_get_message_str(msg_c_report_target_add_buffer_refs));
-        case c_offload_target_compute:
-            return (offload_get_message_str(msg_c_report_target_compute));
-        case c_offload_target_gather_outputs:
-            return (offload_get_message_str
-                (msg_c_report_target_gather_outputs));
-        case c_offload_target_release_buffer_refs:
-            return (offload_get_message_str(
-                msg_c_report_target_release_buffer_refs));
-        default:
-            LIBOFFLOAD_ERROR(c_report_unknown_timer_node);
-            abort();
-    }
-    return 0;
-}
diff --git a/liboffloadmic/runtime/liboffload_error_codes.h b/liboffloadmic/runtime/liboffload_error_codes.h
deleted file mode 100644 (file)
index d7a71c3..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#if !defined(LIBOFFLOAD_ERROR_CODES_H)
-#define LIBOFFLOAD_ERROR_CODES_H
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stdio.h>
-
-typedef enum
-{
-    c_device_is_not_available = 0,
-    c_invalid_device_number,
-    c_offload1,
-    c_unknown_var_type,
-    c_send_func_ptr,
-    c_receive_func_ptr,
-    c_malloc,
-    c_unknown_mic_device_type,
-    c_offload_malloc,
-    c_invalid_env_var_value,
-    c_invalid_env_var_int_value,
-    c_invalid_env_report_value,
-    c_offload_signaled1,
-    c_offload_signaled2,
-    c_myotarget_checkresult,
-    c_myowrapper_checkresult,
-    c_offload_descriptor_offload,
-    c_merge_var_descs1,
-    c_merge_var_descs2,
-    c_mic_parse_env_var_list1,
-    c_mic_parse_env_var_list2,
-    c_mic_process_exit_ret,
-    c_mic_process_exit_sig,
-    c_mic_process_exit,
-    c_mic_init3,
-    c_mic_init4,
-    c_mic_init5,
-    c_mic_init6,
-    c_mic_init7,
-    c_mic_init8,
-    c_mic_init9,
-    c_mic_init10,
-    c_mic_init11,
-    c_no_static_var_data,
-    c_no_ptr_data,
-    c_get_engine_handle,
-    c_get_engine_index,
-    c_process_create,
-    c_process_set_cache_size,
-    c_process_get_func_handles,
-    c_process_wait_shutdown,
-    c_process_proxy_flush,
-    c_load_library,
-    c_pipeline_create,
-    c_pipeline_run_func,
-    c_pipeline_start_run_funcs,
-    c_buf_create,
-    c_buf_create_out_of_mem,
-    c_buf_create_from_mem,
-    c_buf_destroy,
-    c_buf_map,
-    c_buf_unmap,
-    c_buf_read,
-    c_buf_write,
-    c_buf_copy,
-    c_buf_get_address,
-    c_buf_add_ref,
-    c_buf_release_ref,
-    c_buf_set_state,
-    c_event_wait,
-    c_zero_or_neg_ptr_len,
-    c_zero_or_neg_transfer_size,
-    c_bad_ptr_mem_alloc,
-    c_bad_ptr_mem_range,
-    c_different_src_and_dstn_sizes,
-    c_ranges_dont_match,
-    c_destination_is_over,
-    c_slice_of_noncont_array,
-    c_non_contiguous_dope_vector,
-    c_pointer_array_mismatch,
-    c_omp_invalid_device_num_env,
-    c_omp_invalid_device_num,
-    c_unknown_binary_type,
-    c_multiple_target_exes,
-    c_no_target_exe,
-    c_incorrect_affinity,
-    c_cannot_set_affinity,
-    c_mixed_versions,
-    c_report_host,
-    c_report_target,
-    c_report_title,
-    c_report_from_file,
-    c_report_file,
-    c_report_line,
-    c_report_tag,
-    c_report_seconds,
-    c_report_bytes,
-    c_report_mic,
-    c_report_cpu_time,
-    c_report_cpu_to_mic_data,
-    c_report_mic_time,
-    c_report_mic_to_cpu_data,
-    c_report_unknown_timer_node,
-    c_report_unknown_trace_node,
-    c_report_offload,
-    c_report_w_tag,
-    c_report_state,
-    c_report_start,
-    c_report_init,
-    c_report_logical_card,
-    c_report_physical_card,
-    c_report_register,
-    c_report_init_func,
-    c_report_create_buf_host,
-    c_report_create_buf_mic,
-    c_report_send_pointer_data,
-    c_report_sent_pointer_data,
-    c_report_gather_copyin_data,
-    c_report_copyin_data,
-    c_report_state_signal,
-    c_report_signal,
-    c_report_wait,
-    c_report_compute,
-    c_report_receive_pointer_data,
-    c_report_received_pointer_data,
-    c_report_start_target_func,
-    c_report_var,
-    c_report_scatter_copyin_data,
-    c_report_gather_copyout_data,
-    c_report_scatter_copyout_data,
-    c_report_copyout_data,
-    c_report_unregister,
-    c_report_destroy,
-    c_report_myoinit,
-    c_report_myoregister,
-    c_report_myofini,
-    c_report_mic_myo_shared,
-    c_report_mic_myo_fptr,
-    c_report_myosharedmalloc,
-    c_report_myosharedfree,
-    c_report_myosharedalignedmalloc,
-    c_report_myosharedalignedfree,
-    c_report_myoacquire,
-    c_report_myorelease,
-    c_report_myosupportsfeature,
-    c_report_myosharedarenacreate,
-    c_report_myosharedalignedarenamalloc,
-    c_report_myosharedalignedarenafree,
-    c_report_myoarenaacquire,
-    c_report_myoarenarelease,
-    c_coipipe_max_number,
-    c_in_with_preallocated,
-    c_report_no_host_exe,
-    c_report_no_target_exe,
-    c_report_path_buff_overflow,
-    c_create_pipeline_for_stream,
-    c_offload_no_stream,
-    c_offload_device_doesnt_match_to_stream,
-    c_offload_streams_are_absent,
-    c_get_engine_info,
-    c_clear_cpu_mask,
-    c_set_cpu_mask,
-    c_report_state_stream,
-    c_report_stream,
-    c_unload_library,
-    c_target_myo_library,
-    c_myo_dl_sym,
-    c_bad_myo_free
-} error_types;
-
-enum OffloadHostPhase {
-    // Total time on host for entire offload
-    c_offload_host_total_offload = 0,
-
-    // Time to load target binary
-    c_offload_host_initialize,
-
-    // Time to acquire lrb availability dynamically
-    c_offload_host_target_acquire,
-
-    // Time to wait for dependencies
-    c_offload_host_wait_deps,
-
-    // Time to allocate pointer buffers, initiate writes for pointers
-    // and calculate size of copyin/copyout buffer
-    c_offload_host_setup_buffers,
-
-    // Time to allocate pointer buffers
-    c_offload_host_alloc_buffers,
-
-    // Time to initialize misc data
-    c_offload_host_setup_misc_data,
-
-    // Time to allocate copyin/copyout buffer
-    c_offload_host_alloc_data_buffer,
-
-    // Time to initiate writes from host pointers to buffers
-    c_offload_host_send_pointers,
-
-    // Time to Gather IN data of offload into buffer
-    c_offload_host_gather_inputs,
-
-    // Time to map buffer
-    c_offload_host_map_in_data_buffer,
-
-    // Time to unmap buffer
-    c_offload_host_unmap_in_data_buffer,
-
-    // Time to start remote function call that does computation on lrb
-    c_offload_host_start_compute,
-
-    // Time to wait for compute to finish
-    c_offload_host_wait_compute,
-
-    // Time to initiate reads from pointer buffers
-    c_offload_host_start_buffers_reads,
-
-    // Time to update host variabels with OUT data from buffer
-    c_offload_host_scatter_outputs,
-
-    // Time to map buffer
-    c_offload_host_map_out_data_buffer,
-
-    // Time to unmap buffer
-    c_offload_host_unmap_out_data_buffer,
-
-    // Time to wait reads from buffers to finish
-    c_offload_host_wait_buffers_reads,
-
-    // Time to destroy buffers that are no longer needed
-    c_offload_host_destroy_buffers,
-
-    // LAST TIME MONITOR
-    c_offload_host_max_phase
-};
-
-enum OffloadTargetPhase {
-    // Total time spent on the target
-    c_offload_target_total_time = 0,
-
-    // Time to initialize offload descriptor
-    c_offload_target_descriptor_setup,
-
-    // Time to find target entry point in lookup table
-    c_offload_target_func_lookup,
-
-    // Total time spend executing offload entry
-    c_offload_target_func_time,
-
-    // Time to initialize target variables with IN values from buffer
-    c_offload_target_scatter_inputs,
-
-    // Time to add buffer reference for pointer buffers
-    c_offload_target_add_buffer_refs,
-
-    // Total time on lrb for computation
-    c_offload_target_compute,
-
-    // On lrb, time to copy OUT into buffer
-    c_offload_target_gather_outputs,
-
-    // Time to release buffer references
-    c_offload_target_release_buffer_refs,
-
-    // LAST TIME MONITOR
-    c_offload_target_max_phase
-};
-
-#ifdef TARGET_WINNT
-    #define DLL_LOCAL
-#else
-    #define DLL_LOCAL  __attribute__((visibility("hidden")))
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-DLL_LOCAL void __liboffload_error_support(error_types input_tag, ...);
-DLL_LOCAL void __liboffload_report_support(error_types input_tag, ...);
-DLL_LOCAL char const *offload_get_message_str(int msgCode);
-DLL_LOCAL char const * report_get_message_str(error_types input_tag);
-DLL_LOCAL char const * report_get_host_stage_str(int i);
-DLL_LOCAL char const * report_get_target_stage_str(int i);
-#ifdef __cplusplus
-}
-#endif
-
-#define test_msg_cat(nm, msg) \
-    fprintf(stderr, "\t TEST for %s \n \t", nm); \
-    __liboffload_error_support(msg);
-
-#define test_msg_cat1(nm, msg, ...) \
-    fprintf(stderr, "\t TEST for %s \n \t", nm); \
-    __liboffload_error_support(msg, __VA_ARGS__);
-
-DLL_LOCAL void write_message(FILE * file, int msgCode, va_list args_p);
-
-#define LIBOFFLOAD_ERROR __liboffload_error_support
-
-#ifdef TARGET_WINNT
-#define LIBOFFLOAD_ABORT \
-         _set_abort_behavior(0, _WRITE_ABORT_MSG); \
-         abort()
-#else
-#define LIBOFFLOAD_ABORT \
-         abort()
-#endif
-
-#endif // !defined(LIBOFFLOAD_ERROR_CODES_H)
diff --git a/liboffloadmic/runtime/liboffload_msg.c b/liboffloadmic/runtime/liboffload_msg.c
deleted file mode 100644 (file)
index ffee72f..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-// ===========================================================================
-// Bring in the static string table and the enumerations for indexing into
-// it.
-// ===========================================================================
-
-#include "liboffload_msg.h"
-
-# define DYNART_STDERR_PUTS(__message_text__) fputs((__message_text__),stderr)
-
-// ===========================================================================
-// Now the code for accessing the message catalogs
-// ===========================================================================
-
-
-    void write_message(FILE * file, int msgCode, va_list args_p) {
-        va_list args;
-        char buf[1024];
-
-        va_copy(args, args_p);
-        buf[0] = '\n';
-        vsnprintf(buf + 1, sizeof(buf) - 2,
-            MESSAGE_TABLE_NAME[ msgCode ], args);
-        strcat(buf, "\n");
-        va_end(args);
-        fputs(buf, file);
-        fflush(file);
-    }
-
-    char const *offload_get_message_str(int msgCode) {
-        return MESSAGE_TABLE_NAME[ msgCode ];
-    }
diff --git a/liboffloadmic/runtime/liboffload_msg.h b/liboffloadmic/runtime/liboffload_msg.h
deleted file mode 100644 (file)
index 93eccd4..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-// file: liboffload_msg.h
-enum {
-       __dummy__ = 0,
-       msg_c_device_is_not_available,
-       msg_c_invalid_device_number,
-       msg_c_send_func_ptr,
-       msg_c_receive_func_ptr,
-       msg_c_malloc,
-       msg_c_unknown_mic_device_type,
-       msg_c_offload_malloc,
-       msg_c_offload1,
-       msg_c_unknown_var_type,
-       msg_c_invalid_env_var_value,
-       msg_c_invalid_env_var_int_value,
-       msg_c_invalid_env_report_value,
-       msg_c_offload_signaled1,
-       msg_c_offload_signaled2,
-       msg_c_myowrapper_checkresult,
-       msg_c_myotarget_checkresult,
-       msg_c_offload_descriptor_offload,
-       msg_c_merge_var_descs1,
-       msg_c_merge_var_descs2,
-       msg_c_mic_parse_env_var_list1,
-       msg_c_mic_parse_env_var_list2,
-       msg_c_mic_process_exit_ret,
-       msg_c_mic_process_exit_sig,
-       msg_c_mic_process_exit,
-       msg_c_mic_init3,
-       msg_c_mic_init4,
-       msg_c_mic_init5,
-       msg_c_mic_init6,
-       msg_c_mic_init7,
-       msg_c_mic_init8,
-       msg_c_mic_init9,
-       msg_c_mic_init10,
-       msg_c_mic_init11,
-       msg_c_no_static_var_data,
-       msg_c_no_ptr_data,
-       msg_c_get_engine_handle,
-       msg_c_get_engine_index,
-       msg_c_process_create,
-       msg_c_process_set_cache_size,
-       msg_c_process_get_func_handles,
-       msg_c_process_wait_shutdown,
-       msg_c_process_proxy_flush,
-       msg_c_load_library,
-       msg_c_pipeline_create,
-       msg_c_pipeline_run_func,
-       msg_c_pipeline_start_run_funcs,
-       msg_c_buf_create,
-       msg_c_buf_create_out_of_mem,
-       msg_c_buf_create_from_mem,
-       msg_c_buf_destroy,
-       msg_c_buf_map,
-       msg_c_buf_unmap,
-       msg_c_buf_read,
-       msg_c_buf_write,
-       msg_c_buf_copy,
-       msg_c_buf_get_address,
-       msg_c_buf_add_ref,
-       msg_c_buf_release_ref,
-       msg_c_buf_set_state,
-       msg_c_event_wait,
-       msg_c_zero_or_neg_ptr_len,
-       msg_c_zero_or_neg_transfer_size,
-       msg_c_bad_ptr_mem_alloc,
-       msg_c_bad_ptr_mem_range,
-       msg_c_different_src_and_dstn_sizes,
-       msg_c_non_contiguous_dope_vector,
-       msg_c_omp_invalid_device_num_env,
-       msg_c_omp_invalid_device_num,
-       msg_c_unknown_binary_type,
-       msg_c_multiple_target_exes,
-       msg_c_no_target_exe,
-       msg_c_report_unknown_timer_node,
-       msg_c_report_unknown_trace_node,
-       msg_c_incorrect_affinity,
-       msg_c_cannot_set_affinity,
-       msg_c_mixed_versions,
-       msg_c_report_host,
-       msg_c_report_mic,
-       msg_c_report_title,
-       msg_c_report_seconds,
-       msg_c_report_bytes,
-       msg_c_report_cpu_time,
-       msg_c_report_mic_time,
-       msg_c_report_tag,
-       msg_c_report_from_file,
-       msg_c_report_file,
-       msg_c_report_line,
-       msg_c_report_cpu_to_mic_data,
-       msg_c_report_mic_to_cpu_data,
-       msg_c_report_offload,
-       msg_c_report_w_tag,
-       msg_c_report_state,
-       msg_c_report_start,
-       msg_c_report_init,
-       msg_c_report_logical_card,
-       msg_c_report_physical_card,
-       msg_c_report_register,
-       msg_c_report_init_func,
-       msg_c_report_create_buf_host,
-       msg_c_report_create_buf_mic,
-       msg_c_report_send_pointer_data,
-       msg_c_report_sent_pointer_data,
-       msg_c_report_gather_copyin_data,
-       msg_c_report_copyin_data,
-       msg_c_report_state_signal,
-       msg_c_report_signal,
-       msg_c_report_wait,
-       msg_c_report_compute,
-       msg_c_report_receive_pointer_data,
-       msg_c_report_received_pointer_data,
-       msg_c_report_start_target_func,
-       msg_c_report_var,
-       msg_c_report_scatter_copyin_data,
-       msg_c_report_gather_copyout_data,
-       msg_c_report_scatter_copyout_data,
-       msg_c_report_copyout_data,
-       msg_c_report_unregister,
-       msg_c_report_destroy,
-       msg_c_report_myoinit,
-       msg_c_report_myoregister,
-       msg_c_report_myofini,
-       msg_c_report_mic_myo_shared,
-       msg_c_report_mic_myo_fptr,
-       msg_c_report_myosharedmalloc,
-       msg_c_report_myosharedfree,
-       msg_c_report_myosharedalignedmalloc,
-       msg_c_report_myosharedalignedfree,
-       msg_c_report_myoacquire,
-       msg_c_report_myorelease,
-       msg_c_report_myosupportsfeature,
-       msg_c_report_myosharedarenacreate,
-       msg_c_report_myosharedalignedarenamalloc,
-       msg_c_report_myosharedalignedarenafree,
-       msg_c_report_myoarenaacquire,
-       msg_c_report_myoarenarelease,
-       msg_c_report_host_total_offload_time,
-       msg_c_report_host_initialize,
-       msg_c_report_host_target_acquire,
-       msg_c_report_host_wait_deps,
-       msg_c_report_host_setup_buffers,
-       msg_c_report_host_alloc_buffers,
-       msg_c_report_host_setup_misc_data,
-       msg_c_report_host_alloc_data_buffer,
-       msg_c_report_host_send_pointers,
-       msg_c_report_host_gather_inputs,
-       msg_c_report_host_map_in_data_buffer,
-       msg_c_report_host_unmap_in_data_buffer,
-       msg_c_report_host_start_compute,
-       msg_c_report_host_wait_compute,
-       msg_c_report_host_start_buffers_reads,
-       msg_c_report_host_scatter_outputs,
-       msg_c_report_host_map_out_data_buffer,
-       msg_c_report_host_unmap_out_data_buffer,
-       msg_c_report_host_wait_buffers_reads,
-       msg_c_report_host_destroy_buffers,
-       msg_c_report_target_total_time,
-       msg_c_report_target_descriptor_setup,
-       msg_c_report_target_func_lookup,
-       msg_c_report_target_func_time,
-       msg_c_report_target_scatter_inputs,
-       msg_c_report_target_add_buffer_refs,
-       msg_c_report_target_compute,
-       msg_c_report_target_gather_outputs,
-       msg_c_report_target_release_buffer_refs,
-       msg_c_coi_pipeline_max_number,
-       msg_c_ranges_dont_match,
-       msg_c_destination_is_over,
-       msg_c_slice_of_noncont_array,
-       msg_c_pointer_array_mismatch,
-       msg_c_in_with_preallocated,
-       msg_c_report_no_host_exe,
-       msg_c_report_no_target_exe,
-       msg_c_report_path_buff_overflow,
-       msg_c_create_pipeline_for_stream,
-       msg_c_offload_no_stream,
-       msg_c_offload_device_doesnt_match_to_stream,
-       msg_c_offload_streams_are_absent,
-       msg_c_get_engine_info,
-       msg_c_clear_cpu_mask,
-       msg_c_set_cpu_mask,
-       msg_c_report_state_stream,
-       msg_c_report_stream,
-       msg_c_unload_library,
-       msg_c_target_myo_library,
-       msg_c_myo_dl_sym,
-       msg_c_bad_myo_free,
-       lastMsg = 187,
-       firstMsg = 1
-};
-
-
-#if !defined(MESSAGE_TABLE_NAME)
-#    define MESSAGE_TABLE_NAME __liboffload_message_table
-#endif
-
-static char const * MESSAGE_TABLE_NAME[] = {
-       /*   0 __dummy__                                   */ "Un-used message",
-       /*   1 msg_c_device_is_not_available               */ "offload error: cannot offload to MIC - device is not available",
-       /*   2 msg_c_invalid_device_number                 */ "offload error: expected a number greater than or equal to -1",
-       /*   3 msg_c_send_func_ptr                         */ "offload error: cannot find function name for address %p",
-       /*   4 msg_c_receive_func_ptr                      */ "offload error: cannot find address of function %s",
-       /*   5 msg_c_malloc                                */ "offload error: memory allocation failed",
-       /*   6 msg_c_unknown_mic_device_type               */ "offload error: unknown mic device type ",
-       /*   7 msg_c_offload_malloc                        */ "offload error: memory allocation failed (requested=%lld bytes, align %lld)",
-       /*   8 msg_c_offload1                              */ "offload error: device %d does not have a pending signal for wait(%p)",
-       /*   9 msg_c_unknown_var_type                      */ "offload error: unknown variable type %d",
-       /*  10 msg_c_invalid_env_var_value                 */ "offload warning: ignoring invalid value specified for %s",
-       /*  11 msg_c_invalid_env_var_int_value             */ "offload warning: specify an integer value for %s",
-       /*  12 msg_c_invalid_env_report_value              */ "offload warning: ignoring %s setting; use a value in range 1-3",
-       /*  13 msg_c_offload_signaled1                     */ "offload error: invalid device number %d specified in _Offload_signaled",
-       /*  14 msg_c_offload_signaled2                     */ "offload error: invalid signal %p specified for _Offload_signaled",
-       /*  15 msg_c_myowrapper_checkresult                */ "offload error: %s failed with error %d",
-       /*  16 msg_c_myotarget_checkresult                 */ "offload error: %s failed with error %d",
-       /*  17 msg_c_offload_descriptor_offload            */ "offload error: cannot find offload entry %s",
-       /*  18 msg_c_merge_var_descs1                      */ "offload error: unexpected number of variable descriptors",
-       /*  19 msg_c_merge_var_descs2                      */ "offload error: unexpected variable type",
-       /*  20 msg_c_mic_parse_env_var_list1               */ "offload_error: MIC environment variable must begin with an alpabetic character",
-       /*  21 msg_c_mic_parse_env_var_list2               */ "offload_error: MIC environment variable value must be specified with '='",
-       /*  22 msg_c_mic_process_exit_ret                  */ "offload error: process on the device %d unexpectedly exited with code %d",
-       /*  23 msg_c_mic_process_exit_sig                  */ "offload error: process on the device %d was terminated by signal %d (%s)",
-       /*  24 msg_c_mic_process_exit                      */ "offload error: process on the device %d was unexpectedly terminated",
-       /*  25 msg_c_mic_init3                             */ "offload warning: ignoring MIC_STACKSIZE setting; use a value >= 16K and a multiple of 4K",
-       /*  26 msg_c_mic_init4                             */ "offload error: thread key create failed with error %d",
-       /*  27 msg_c_mic_init5                             */ "offload error: specify OFFLOAD_DEVICES as comma-separated physical device numbers or 'none'",
-       /*  28 msg_c_mic_init6                             */ "offload error: OFFLOAD_DEVICES device number %d does not correspond to a physical device",
-       /*  29 msg_c_mic_init7                             */ "offload error: specify a number as a device in OFFLOAD_DEVICES",
-       /*  30 msg_c_mic_init8                             */ "offload error: specify a number as the start of a device range in OFFLOAD_DEVICES",
-       /*  31 msg_c_mic_init9                             */ "offload error: specify a number as the end of a device range in OFFLOAD_DEVICES",
-       /*  32 msg_c_mic_init10                            */ "offload error: specify a low to high device range in OFFLOAD_DEVICES",
-       /*  33 msg_c_mic_init11                            */ "offload error: specify comma-separated device or device ranges in OFFLOAD_DEVICES",
-       /*  34 msg_c_no_static_var_data                    */ "offload error: cannot find data associated with statically allocated variable %p",
-       /*  35 msg_c_no_ptr_data                           */ "offload error: cannot find data associated with pointer variable %p",
-       /*  36 msg_c_get_engine_handle                     */ "offload error: cannot get device %d handle (error code %d)",
-       /*  37 msg_c_get_engine_index                      */ "offload error: cannot get physical index for logical device %d (error code %d)",
-       /*  38 msg_c_process_create                        */ "offload error: cannot start process on the device %d (error code %d)",
-       /*  39 msg_c_process_set_cache_size                */ "offload error: cannot reserve buffer on the device %d (error code %d)",
-       /*  40 msg_c_process_get_func_handles              */ "offload error: cannot get function handles on the device %d (error code %d)",
-       /*  41 msg_c_process_wait_shutdown                 */ "offload error: wait for process shutdown failed on device %d (error code %d)",
-       /*  42 msg_c_process_proxy_flush                   */ "offload error: cannot flush process output on device %d (error code %d)",
-       /*  43 msg_c_load_library                          */ "offload error: cannot load library %s to the device %d (error code %d)",
-       /*  44 msg_c_pipeline_create                       */ "offload error: cannot create pipeline on the device %d (error code %d)",
-       /*  45 msg_c_pipeline_run_func                     */ "offload error: cannot execute function on the device %d (error code %d)",
-       /*  46 msg_c_pipeline_start_run_funcs              */ "offload error: cannot start executing pipeline function on the device %d (error code %d)",
-       /*  47 msg_c_buf_create                            */ "offload error: cannot create buffer on device %d (error code %d)",
-       /*  48 msg_c_buf_create_out_of_mem                 */ "offload error: cannot create buffer on device %d, out of memory",
-       /*  49 msg_c_buf_create_from_mem                   */ "offload error: cannot create buffer from memory on device %d (error code %d)",
-       /*  50 msg_c_buf_destroy                           */ "offload error: buffer destroy failed (error code %d)",
-       /*  51 msg_c_buf_map                               */ "offload error: buffer map failed (error code %d)",
-       /*  52 msg_c_buf_unmap                             */ "offload error: buffer unmap failed (error code %d)",
-       /*  53 msg_c_buf_read                              */ "offload error: buffer read failed (error code %d)",
-       /*  54 msg_c_buf_write                             */ "offload error: buffer write failed (error code %d)",
-       /*  55 msg_c_buf_copy                              */ "offload error: buffer copy failed (error code %d)",
-       /*  56 msg_c_buf_get_address                       */ "offload error: cannot get buffer address on device %d (error code %d)",
-       /*  57 msg_c_buf_add_ref                           */ "offload error: cannot reuse buffer memory on device %d (error code %d)",
-       /*  58 msg_c_buf_release_ref                       */ "offload error: cannot release buffer memory on device %d (error code %d)",
-       /*  59 msg_c_buf_set_state                         */ "offload error: buffer set state failed (error code %d)",
-       /*  60 msg_c_event_wait                            */ "offload error: wait for event to become signaled failed (error code %d)",
-       /*  61 msg_c_zero_or_neg_ptr_len                   */ "offload error: memory allocation of zero or negative length is not supported",
-       /*  62 msg_c_zero_or_neg_transfer_size             */ "offload error: data transfer of zero or negative size is not supported",
-       /*  63 msg_c_bad_ptr_mem_alloc                     */ "offload error: allocation (base=%p, size=%d) overlaps with existing allocation (base=%p, size=%d)",
-       /*  64 msg_c_bad_ptr_mem_range                     */ "offload error: data transfer (base=%p, size=%d) not subset of existing allocation (base=%p, size=%d)",
-       /*  65 msg_c_different_src_and_dstn_sizes          */ "offload error: size of the source %d differs from size of the destination %d",
-       /*  66 msg_c_non_contiguous_dope_vector            */ "offload error: offload data transfer supports only a single contiguous memory range per variable",
-       /*  67 msg_c_omp_invalid_device_num_env            */ "offload warning: ignoring %s setting; use a non-negative integer value",
-       /*  68 msg_c_omp_invalid_device_num                */ "offload error: device number should be a non-negative integer value",
-       /*  69 msg_c_unknown_binary_type                   */ "offload error: unexpected embedded target binary type, expected either an executable or shared library",
-       /*  70 msg_c_multiple_target_exes                  */ "offload error: more that one target executable found",
-       /*  71 msg_c_no_target_exe                         */ "offload error: target executable is not available",
-       /*  72 msg_c_report_unknown_timer_node             */ "offload error: unknown timer node",
-       /*  73 msg_c_report_unknown_trace_node             */ "offload error: unknown trace node",
-       /*  74 msg_c_incorrect_affinity                    */ "offload error: unknow affinity type %s, specify compact, scatter or balanced",
-       /*  75 msg_c_cannot_set_affinity                   */ "offload_error: unable to set affinity",
-       /*  76 msg_c_mixed_versions                        */ "offload_error: all application executables that contain offload must be built with the same compiler version",
-       /*  77 msg_c_report_host                           */ "HOST",
-       /*  78 msg_c_report_mic                            */ "MIC",
-       /*  79 msg_c_report_title                          */ "timer data       (sec)",
-       /*  80 msg_c_report_seconds                        */ "(seconds)",
-       /*  81 msg_c_report_bytes                          */ "(bytes)",
-       /*  82 msg_c_report_cpu_time                       */ "CPU Time",
-       /*  83 msg_c_report_mic_time                       */ "MIC Time",
-       /*  84 msg_c_report_tag                            */ "Tag",
-       /*  85 msg_c_report_from_file                      */ "Offload from file",
-       /*  86 msg_c_report_file                           */ "File",
-       /*  87 msg_c_report_line                           */ "Line",
-       /*  88 msg_c_report_cpu_to_mic_data                */ "CPU->MIC Data",
-       /*  89 msg_c_report_mic_to_cpu_data                */ "MIC->CPU Data",
-       /*  90 msg_c_report_offload                        */ "Offload",
-       /*  91 msg_c_report_w_tag                          */ "Tag %d",
-       /*  92 msg_c_report_state                          */ "State",
-       /*  93 msg_c_report_start                          */ "Start target",
-       /*  94 msg_c_report_init                           */ "Initialize",
-       /*  95 msg_c_report_logical_card                   */ "logical card",
-       /*  96 msg_c_report_physical_card                  */ "physical card",
-       /*  97 msg_c_report_register                       */ "Register static data tables",
-       /*  98 msg_c_report_init_func                      */ "Setup target entry",
-       /*  99 msg_c_report_create_buf_host                */ "Create host buffer",
-       /* 100 msg_c_report_create_buf_mic                 */ "Create target buffer",
-       /* 101 msg_c_report_send_pointer_data              */ "Send pointer data",
-       /* 102 msg_c_report_sent_pointer_data              */ "Host->target pointer data",
-       /* 103 msg_c_report_gather_copyin_data             */ "Gather copyin data",
-       /* 104 msg_c_report_copyin_data                    */ "Host->target copyin data",
-       /* 105 msg_c_report_state_signal                   */ "Signal",
-       /* 106 msg_c_report_signal                         */ "signal :",
-       /* 107 msg_c_report_wait                           */ "waits  :",
-       /* 108 msg_c_report_compute                        */ "Execute task on target",
-       /* 109 msg_c_report_receive_pointer_data           */ "Receive pointer data",
-       /* 110 msg_c_report_received_pointer_data          */ "Target->host pointer data",
-       /* 111 msg_c_report_start_target_func              */ "Start target entry",
-       /* 112 msg_c_report_var                            */ "Var",
-       /* 113 msg_c_report_scatter_copyin_data            */ "Scatter copyin data",
-       /* 114 msg_c_report_gather_copyout_data            */ "Gather copyout data",
-       /* 115 msg_c_report_scatter_copyout_data           */ "Scatter copyout data",
-       /* 116 msg_c_report_copyout_data                   */ "Target->host copyout data",
-       /* 117 msg_c_report_unregister                     */ "Unregister data tables",
-       /* 118 msg_c_report_destroy                        */ "Destroy",
-       /* 119 msg_c_report_myoinit                        */ "Initialize MYO",
-       /* 120 msg_c_report_myoregister                    */ "Register MYO tables",
-       /* 121 msg_c_report_myofini                        */ "Finalize MYO",
-       /* 122 msg_c_report_mic_myo_shared                 */ "MIC MYO shared table register",
-       /* 123 msg_c_report_mic_myo_fptr                   */ "MIC MYO fptr table register",
-       /* 124 msg_c_report_myosharedmalloc                */ "MYO shared malloc",
-       /* 125 msg_c_report_myosharedfree                  */ "MYO shared free",
-       /* 126 msg_c_report_myosharedalignedmalloc         */ "MYO shared aligned malloc",
-       /* 127 msg_c_report_myosharedalignedfree           */ "MYO shared aligned free",
-       /* 128 msg_c_report_myoacquire                     */ "MYO acquire",
-       /* 129 msg_c_report_myorelease                     */ "MYO release",
-       /* 130 msg_c_report_myosupportsfeature             */ "MYO supports feature",
-       /* 131 msg_c_report_myosharedarenacreate           */ "MYO shared arena create",
-       /* 132 msg_c_report_myosharedalignedarenamalloc    */ "MYO shared aligned arena malloc",
-       /* 133 msg_c_report_myosharedalignedarenafree      */ "MYO shared aligned arena free",
-       /* 134 msg_c_report_myoarenaacquire                */ "MYO arena acquire",
-       /* 135 msg_c_report_myoarenarelease                */ "MYO arena release",
-       /* 136 msg_c_report_host_total_offload_time        */ "host: total offload time",
-       /* 137 msg_c_report_host_initialize                */ "host: initialize target",
-       /* 138 msg_c_report_host_target_acquire            */ "host: acquire target",
-       /* 139 msg_c_report_host_wait_deps                 */ "host: wait dependencies",
-       /* 140 msg_c_report_host_setup_buffers             */ "host: setup buffers",
-       /* 141 msg_c_report_host_alloc_buffers             */ "host: allocate buffers",
-       /* 142 msg_c_report_host_setup_misc_data           */ "host: setup misc_data",
-       /* 143 msg_c_report_host_alloc_data_buffer         */ "host: allocate buffer",
-       /* 144 msg_c_report_host_send_pointers             */ "host: send pointers",
-       /* 145 msg_c_report_host_gather_inputs             */ "host: gather inputs",
-       /* 146 msg_c_report_host_map_in_data_buffer        */ "host: map IN data buffer",
-       /* 147 msg_c_report_host_unmap_in_data_buffer      */ "host: unmap IN data buffer",
-       /* 148 msg_c_report_host_start_compute             */ "host: initiate compute",
-       /* 149 msg_c_report_host_wait_compute              */ "host: wait compute",
-       /* 150 msg_c_report_host_start_buffers_reads       */ "host: initiate pointer reads",
-       /* 151 msg_c_report_host_scatter_outputs           */ "host: scatter outputs",
-       /* 152 msg_c_report_host_map_out_data_buffer       */ "host: map OUT data buffer",
-       /* 153 msg_c_report_host_unmap_out_data_buffer     */ "host: unmap OUT data buffer",
-       /* 154 msg_c_report_host_wait_buffers_reads        */ "host: wait pointer reads",
-       /* 155 msg_c_report_host_destroy_buffers           */ "host: destroy buffers",
-       /* 156 msg_c_report_target_total_time              */ "target: total time",
-       /* 157 msg_c_report_target_descriptor_setup        */ "target: setup offload descriptor",
-       /* 158 msg_c_report_target_func_lookup             */ "target: entry lookup",
-       /* 159 msg_c_report_target_func_time               */ "target: entry time",
-       /* 160 msg_c_report_target_scatter_inputs          */ "target: scatter inputs",
-       /* 161 msg_c_report_target_add_buffer_refs         */ "target: add buffer reference",
-       /* 162 msg_c_report_target_compute                 */ "target: compute",
-       /* 163 msg_c_report_target_gather_outputs          */ "target: gather outputs",
-       /* 164 msg_c_report_target_release_buffer_refs     */ "target: remove buffer reference",
-       /* 165 msg_c_coi_pipeline_max_number               */ "number of host threads doing offload exceeds maximum of %d",
-       /* 166 msg_c_ranges_dont_match                     */ "ranges of source and destination don't match together",
-       /* 167 msg_c_destination_is_over                   */ "insufficient destination memory to transfer source",
-       /* 168 msg_c_slice_of_noncont_array                */ "a non-contiguous slice may be taken of contiguous arrays only",
-       /* 169 msg_c_pointer_array_mismatch                */ "number of %s elements is less than described by the source",
-       /* 170 msg_c_in_with_preallocated                  */ "offload error: preallocated targetptr alloc_if(1) may not be used with an in clause",
-       /* 171 msg_c_report_no_host_exe                    */ "offload error: Cannot find host executable",
-       /* 172 msg_c_report_no_target_exe                  */ "offload error: Cannot find target executable (%s)",
-       /* 173 msg_c_report_path_buff_overflow             */ "offload error: Size of host executable path exceeded 4KB",
-       /* 174 msg_c_create_pipeline_for_stream            */ "offload error: number of cpus exceeds maximum of %d",
-       /* 175 msg_c_offload_no_stream                     */ "offload error: the stream isn't found on device %d",
-       /* 176 msg_c_offload_device_doesnt_match_to_stream */ "offload_error: the stream was created for device %d",
-       /* 177 msg_c_offload_streams_are_absent            */ "offload error: there was created no streams",
-       /* 178 msg_c_get_engine_info                       */ "offload error: cannot get device %d info (error code %d)",
-       /* 179 msg_c_clear_cpu_mask                        */ "offload error: cannot clear cpu mask (error code %d)",
-       /* 180 msg_c_set_cpu_mask                          */ "offload error: cannot set cpu mask (error code %d)",
-       /* 181 msg_c_report_state_stream                   */ "Stream",
-       /* 182 msg_c_report_stream                         */ "stream  :",
-       /* 183 msg_c_unload_library                        */ "offload error: cannot unload library from the device %d (error code %d)",
-       /* 184 msg_c_target_myo_library                    */ "offload error: cannot find MYO library on device %s",
-       /* 185 msg_c_myo_dl_sym                            */ "offload error: cannot find MYO func on device %s",
-       /* 186 msg_c_bad_myo_free                          */ "offload error: cannot free MYO shared memory %p",
-};
diff --git a/liboffloadmic/runtime/mic_lib.f90 b/liboffloadmic/runtime/mic_lib.f90
deleted file mode 100644 (file)
index 1874dd9..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-!
-!    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-!
-!    Redistribution and use in source and binary forms, with or without
-!    modification, are permitted provided that the following conditions
-!    are met:
-!
-!      * Redistributions of source code must retain the above copyright
-!        notice, this list of conditions and the following disclaimer.
-!      * Redistributions in binary form must reproduce the above copyright
-!        notice, this list of conditions and the following disclaimer in the
-!        documentation and/or other materials provided with the distribution.
-!      * Neither the name of Intel Corporation nor the names of its
-!        contributors may be used to endorse or promote products derived
-!        from this software without specific prior written permission.
-!
-!    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-!    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-!    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-!    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-!    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-!    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-!    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-!    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-!    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-!    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-!    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-!
-
-
-! **********************************************************************************
-! * This file is intended to support the Intel(r) Many Integrated Core Architecture.
-! **********************************************************************************
-! free form Fortran source - should be named .f90
-! lines are longer than 72 characters
-
-module mic_lib
-use, intrinsic :: iso_c_binding
-
-integer, parameter:: target_mic=2
-integer, parameter:: default_target_type=target_mic
-integer, parameter:: default_target_number=0
-
-enum, bind(C)
-    enumerator :: OFFLOAD_SUCCESS  = 0
-    enumerator :: OFFLOAD_DISABLED          ! offload is disabled
-    enumerator :: OFFLOAD_UNAVAILABLE       ! card is not available
-    enumerator :: OFFLOAD_OUT_OF_MEMORY     ! not enough memory on device
-    enumerator :: OFFLOAD_PROCESS_DIED      ! target process has died
-    enumerator :: OFFLOAD_ERROR             ! unspecified error
-end enum
-
-type, bind (C) :: offload_status
-    integer(kind=c_int)    ::  result          = OFFLOAD_DISABLED
-    integer(kind=c_int)    ::  device_number   = -1
-    integer(kind=c_size_t) ::  data_sent       = 0
-    integer(kind=c_size_t) ::  data_received   = 0
-end type offload_status
-
-interface
-function offload_number_of_devices ()                                  &
-           bind (C, name = "_Offload_number_of_devices")
-!dec$ attributes default :: offload_number_of_devices
-  import :: c_int
-  integer (kind=c_int)        :: offload_number_of_devices
-!dec$ attributes offload:mic :: offload_number_of_devices
-!dir$ attributes known_intrinsic ::  offload_number_of_devices
-end function offload_number_of_devices
-
-function offload_signaled(target_number, signal)                       &
-           bind (C, name = "_Offload_signaled")
-!dec$ attributes default :: offload_signaled
-  import :: c_int, c_int64_t
-  integer (kind=c_int) :: offload_signaled
-  integer (kind=c_int), value :: target_number
-  integer (kind=c_int64_t), value :: signal
-!dec$ attributes offload:mic :: offload_signaled
-end function offload_signaled
-
-subroutine offload_report(val)                                         &
-           bind (C, name = "_Offload_report")
-!dec$ attributes default :: offload_report
-  import :: c_int
-  integer (kind=c_int), value :: val
-!dec$ attributes offload:mic :: offload_report
-end subroutine offload_report
-
-function offload_get_device_number()                                   &
-           bind (C, name = "_Offload_get_device_number")
-!dec$ attributes default :: offload_get_device_number
-  import :: c_int
-  integer (kind=c_int)        :: offload_get_device_number
-!dec$ attributes offload:mic :: offload_get_device_number
-end function offload_get_device_number
-
-function offload_get_physical_device_number()                          &
-           bind (C, name = "_Offload_get_physical_device_number")
-!dec$ attributes default :: offload_get_physical_device_number
-  import :: c_int
-  integer (kind=c_int)        :: offload_get_physical_device_number
-!dec$ attributes offload:mic :: offload_get_physical_device_number
-end function offload_get_physical_device_number
-
-! OpenMP API wrappers
-
-subroutine omp_set_num_threads_target (target_type,                    &
-                                       target_number,                  &
-                                       num_threads)                    &
-           bind (C, name = "omp_set_num_threads_target")
-  import :: c_int
-  integer (kind=c_int), value :: target_type, target_number, num_threads
-end subroutine omp_set_num_threads_target
-
-function omp_get_max_threads_target (target_type,                      &
-                                     target_number)                    &
-         bind (C, name = "omp_get_max_threads_target")
-  import :: c_int
-  integer (kind=c_int)        :: omp_get_max_threads_target
-  integer (kind=c_int), value :: target_type, target_number
-end function omp_get_max_threads_target
-
-function omp_get_num_procs_target (target_type,                        &
-                                   target_number)                      &
-         bind (C, name = "omp_get_num_procs_target")
-  import :: c_int
-  integer (kind=c_int)        :: omp_get_num_procs_target
-  integer (kind=c_int), value :: target_type, target_number
-end function omp_get_num_procs_target
-
-subroutine omp_set_dynamic_target (target_type,                        &
-                                   target_number,                      &
-                                   num_threads)                        &
-           bind (C, name = "omp_set_dynamic_target")
-  import :: c_int
-  integer (kind=c_int), value :: target_type, target_number, num_threads
-end subroutine omp_set_dynamic_target
-
-function omp_get_dynamic_target (target_type,                          &
-                                 target_number)                        &
-         bind (C, name = "omp_get_dynamic_target")
-  import :: c_int
-  integer (kind=c_int)        :: omp_get_dynamic_target
-  integer (kind=c_int), value :: target_type, target_number
-end function omp_get_dynamic_target
-
-subroutine omp_set_nested_target (target_type,                         &
-                                  target_number,                       &
-                                  nested)                              &
-           bind (C, name = "omp_set_nested_target")
-  import :: c_int
-  integer (kind=c_int), value :: target_type, target_number, nested
-end subroutine omp_set_nested_target
-
-function omp_get_nested_target (target_type,                           &
-                                target_number)                         &
-         bind (C, name = "omp_get_nested_target")
-  import :: c_int
-  integer (kind=c_int)        :: omp_get_nested_target
-  integer (kind=c_int), value :: target_type, target_number
-end function omp_get_nested_target
-
-subroutine omp_set_schedule_target (target_type,                       &
-                                    target_number,                     &
-                                    kind,                              &
-                                    modifier)                          &
-           bind (C, name = "omp_set_schedule_target")
-  import :: c_int
-  integer (kind=c_int), value :: target_type, target_number, kind, modifier
-end subroutine omp_set_schedule_target
-
-subroutine omp_get_schedule_target (target_type,                       &
-                                    target_number,                     &
-                                    kind,                              &
-                                    modifier)                          &
-           bind (C, name = "omp_get_schedule_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: kind, modifier
-end subroutine omp_get_schedule_target
-
-! lock API functions
-
-subroutine omp_init_lock_target (target_type,                          &
-                                 target_number,                        &
-                                 lock)                                 &
-           bind (C, name = "omp_init_lock_target")
-  import :: c_int, c_intptr_t
-  !dir$ attributes known_intrinsic ::  omp_init_lock_target
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_init_lock_target
-
-subroutine omp_destroy_lock_target (target_type,                       &
-                                    target_number,                     &
-                                    lock)                              &
-           bind (C, name = "omp_destroy_lock_target")
-  import :: c_int, c_intptr_t
-  !dir$ attributes known_intrinsic ::  omp_destroy_lock_target
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_destroy_lock_target
-
-subroutine omp_set_lock_target (target_type,                           &
-                                target_number,                         &
-                                lock)                                  &
-           bind (C, name = "omp_set_lock_target")
-  import :: c_int, c_intptr_t
-  !dir$ attributes known_intrinsic ::  omp_set_lock_target
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_set_lock_target
-
-subroutine omp_unset_lock_target (target_type,                         &
-                                  target_number,                       &
-                                  lock)                                &
-           bind (C, name = "omp_unset_lock_target")
-  import :: c_int, c_intptr_t
-  !dir$ attributes known_intrinsic ::  omp_unset_lock_target
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_unset_lock_target
-
-function omp_test_lock_target (target_type,                            &
-                               target_number,                          &
-                               lock)                                   &
-           bind (C, name = "omp_test_lock_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int)        :: omp_test_lock_target
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end function omp_test_lock_target
-
-! nested lock API functions
-
-subroutine omp_init_nest_lock_target (target_type,                     &
-                                      target_number,                   &
-                                      lock)                            &
-           bind (C, name = "omp_init_nest_lock_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_init_nest_lock_target
-
-subroutine omp_destroy_nest_lock_target (target_type,                  &
-                                         target_number,                &
-                                         lock)                         &
-           bind (C, name = "omp_destroy_nest_lock_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_destroy_nest_lock_target
-
-subroutine omp_set_nest_lock_target (target_type,                      &
-                                     target_number,                    &
-                                     lock)                             &
-           bind (C, name = "omp_set_nest_lock_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_set_nest_lock_target
-
-subroutine omp_unset_nest_lock_target (target_type,                    &
-                                       target_number,                  &
-                                       lock)                           &
-           bind (C, name = "omp_unset_nest_lock_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end subroutine omp_unset_nest_lock_target
-
-function omp_test_nest_lock_target (target_type,                       &
-                                    target_number,                     &
-                                    lock)                              &
-           bind (C, name = "omp_test_nest_lock_target")
-  import :: c_int, c_intptr_t
-  integer (kind=c_int)        :: omp_test_nest_lock_target
-  integer (kind=c_int), value :: target_type, target_number
-  integer (kind=c_intptr_t), value :: lock
-end function omp_test_nest_lock_target
-
-end interface
-end module mic_lib
diff --git a/liboffloadmic/runtime/offload.h b/liboffloadmic/runtime/offload.h
deleted file mode 100644 (file)
index 4a329ba..0000000
+++ /dev/null
@@ -1,565 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*
- * Include file for Offload API.
- */
-
-#ifndef OFFLOAD_H_INCLUDED
-#define OFFLOAD_H_INCLUDED
-
-#ifdef __cplusplus
-#if defined(LINUX) || defined(FREEBSD)
-#include <bits/functexcept.h>
-#endif
-#endif
-
-#include <stddef.h>
-#include <omp.h>
-
-#ifdef TARGET_WINNT
-// <stdint.h> is incompatible on Windows.
-typedef unsigned long long int  uint64_t;
-typedef   signed long long int   int64_t;
-#else
-#include <stdint.h>
-#endif  // TARGET_WINNT
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define TARGET_ATTRIBUTE __declspec(target(mic))
-
-/*
- *  The target architecture.
- */
-typedef enum TARGET_TYPE {
-    TARGET_NONE,    /* Undefine target */
-    TARGET_HOST,    /* Host used as target */
-    TARGET_MIC      /* MIC target */
-} TARGET_TYPE;
-
-/*
- *  The default target type.
- */
-#define DEFAULT_TARGET_TYPE TARGET_MIC
-
-/*
- *  The default target number.
- */
-#define DEFAULT_TARGET_NUMBER 0
-
-/*
- *  Offload status.
- */
-typedef enum {
-    OFFLOAD_SUCCESS = 0,
-    OFFLOAD_DISABLED,               /* offload is disabled */
-    OFFLOAD_UNAVAILABLE,            /* card is not available */
-    OFFLOAD_OUT_OF_MEMORY,          /* not enough memory on device */
-    OFFLOAD_PROCESS_DIED,           /* target process has died */
-    OFFLOAD_ERROR                   /* unspecified error */
-} _Offload_result;
-
-typedef struct {
-    _Offload_result result;         /* result, see above */
-    int             device_number;  /* device number */
-    size_t          data_sent;      /* number of bytes sent to the target */
-    size_t          data_received;  /* number of bytes received by host */
-} _Offload_status;
-
-typedef int64_t _Offload_stream;
-
-#define OFFLOAD_STATUS_INIT(x) \
-    ((x).result = OFFLOAD_DISABLED)
-
-#define OFFLOAD_STATUS_INITIALIZER \
-    { OFFLOAD_DISABLED, -1, 0, 0 }
-
-/* Offload runtime interfaces */
-
-extern int _Offload_number_of_devices(void);
-extern int _Offload_get_device_number(void);
-extern int _Offload_get_physical_device_number(void);
-
-/* Offload stream runtime interfaces */
-
-extern _Offload_stream _Offload_stream_create(
-    int device,           // MIC device number
-    int number_of_cpus    // Cores allocated to the stream
-);
-
-extern int _Offload_stream_destroy(
-    int device,             // MIC device number
-    _Offload_stream stream  // stream handle
-);
-
-extern int _Offload_stream_delete(
-    _Offload_stream handle  // stream handle
-);
-
-extern int _Offload_stream_completed(
-    int device,             // MIC device number
-    _Offload_stream handle  // stream handle
-);
-
-extern int _Offload_device_streams_completed(
-    int device             // MIC device number
-);
-
-extern int _Offload_stream_is_empty(
-    _Offload_stream handle  // stream handle
-);
-
-/*
- * _Offload_shared_malloc/free are only supported when offload is enabled
- * else they are defined to malloc and free
-*/
-#ifdef __INTEL_OFFLOAD
-extern void* _Offload_shared_malloc(size_t size);
-extern void  _Offload_shared_free(void *ptr);
-extern void* _Offload_shared_aligned_malloc(size_t size, size_t align);
-extern void  _Offload_shared_aligned_free(void *ptr);
-#else
-#include <malloc.h>
-#define _Offload_shared_malloc(size)                 malloc(size)
-#define _Offload_shared_free(ptr)                    free(ptr);
-#if defined(_WIN32)
-#define _Offload_shared_aligned_malloc(size, align)  _aligned_malloc(size, align)
-#define _Offload_shared_aligned_free(ptr)            _aligned_free(ptr);
-#else
-#define _Offload_shared_aligned_malloc(size, align)  memalign(align, size)
-#define _Offload_shared_aligned_free(ptr)            free(ptr);
-#endif
-#endif
-
-
-extern int _Offload_signaled(int index, void *signal);
-extern void _Offload_report(int val);
-extern int _Offload_find_associated_mic_memory(
-   int           target,
-   const void*   cpu_addr,
-   void**        cpu_base_addr,
-   uint64_t*     buf_length,
-   void**        mic_addr,
-   uint64_t*     mic_buf_start_offset,
-   int*          is_static
-);
-
-/* OpenMP API */
-
-extern void omp_set_default_device(int num) __GOMP_NOTHROW;
-extern int  omp_get_default_device(void) __GOMP_NOTHROW;
-extern int  omp_get_num_devices(void) __GOMP_NOTHROW;
-
-// OpenMP 4.5 APIs
-
-/*! \fn omp_get_initial_device
-    \brief Return the device id of the initial device.
-    \return Returns the device id of the initial device.
-*/
-extern int omp_get_initial_device(
-    void
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_alloc
-    \brief Allocate memory in the device data environment.
-    \param size        Number of bytes to allocate.
-    \param device_num  The device number on which to allocate.
-    \return            Returns a pointer to the allocated memory.  
-*/
-extern void* omp_target_alloc(
-    size_t size, 
-    int    device_num
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_free
-    \brief Free memory in the device data environment.
-    \param device_ptr  Address of allocated device memory.
-    \param device_num  The device number on which to free.
-*/
-extern void omp_target_free(
-    void *device_ptr, 
-    int   device_num
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_is_present
-    \brief Test whether a host pointer has corresponding storage on a device.
-    \param device_ptr  Address of allocated device memory.
-    \param device_num  The device number on which to test..
-    \return            true if storage is found, false otherwise.
-*/
-extern int omp_target_is_present(
-    const void *ptr,
-    int device_num
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_memcpy
-    \brief Copy memory between host/device pointers.
-    \param dst         Address of destination memory.
-    \param src         Address of source memory.
-    \param length      Number of bytes to copy.
-    \param dst_offset  Destination offset in bytes.
-    \param src_offset  Source offset in bytes.
-    \param dst_device  Destination device number.
-    \param src_device  Source device number.
-    \return            0 on success, 1 otherwise.
-*/
-extern int omp_target_memcpy(
-    void   *dst, 
-    const void *src,
-    size_t  length, 
-    size_t  dst_offset, 
-    size_t  src_offset, 
-    int     dst_device,
-    int     src_device
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_memcpy_rect
-    \brief Copy a rectangular subsection from 
-    \brief one multi-dimensional array to another.
-    \param dst           Address of destination array.
-    \param src           Address of source array.
-    \param element_size  Number of bytes in each array element.
-    \param num_dims      Number of dimensions.
-    \param volume        Array of element counts to copy in each dimension.
-    \param dst_offsets   Destination offsets array.
-    \param src_offsets   Source offsets array.
-    \param dst_dims      Destination array dimensions array.
-    \param src_dims      Source array dimensions array.
-    \param dst_device    Destination device number.
-    \param src_device    Source device number.
-    \return              0 on success, 1 otherwise.
-*/
-extern int omp_target_memcpy_rect(
-    void         *dst,
-    const void   *src,
-    size_t        element_size,
-    int           num_dims,
-    const size_t *volume,
-    const size_t *dst_offsets,
-    const size_t *src_offsets,
-    const size_t *dst_dimensions,
-    const size_t *src_dimensions,
-    int           dst_device,
-    int           src_device
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_associate_ptr
-    \brief Map a device pointer to a host pointer.
-    \param host_ptr       The host pointer.
-    \param device_ptr     The device pointer.
-    \param size           Number of bytes to map.
-    \param device_offset  Offset on device of mapped memory.
-    \param device_num     Device number.
-    \return               0 on success, 1 otherwise.
-*/
-extern int omp_target_associate_ptr(
-    const void *host_ptr,
-    const void *device_ptr,
-    size_t  size,
-    size_t  device_offset,
-    int     device_num
-) __GOMP_NOTHROW;
-
-/*! \fn omp_target_disassociate_ptr
-    \brief Remove a host pointer to device pointer association.
-    \param ptr         The host pointer to disassociate.
-    \param device_num  Device number.
-    \return            0 on success, 1 otherwise.
-*/
-extern int omp_target_disassociate_ptr(
-    const void *host_ptr,
-    int     device_num
-) __GOMP_NOTHROW;
-
-// End of OpenMP 4.5 APIs
-
-/* OpenMP API wrappers */
-
-/* Set num_threads on target */
-extern void omp_set_num_threads_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-);
-
-/* Get max_threads from target */
-extern int omp_get_max_threads_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-/* Get num_procs from target */
-extern int omp_get_num_procs_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-/* Set dynamic on target */
-extern void omp_set_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-);
-
-/* Get dynamic from target */
-extern int omp_get_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-/* Set nested on target */
-extern void omp_set_nested_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int nested
-);
-
-/* Get nested from target */
-extern int omp_get_nested_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-extern void omp_set_num_threads_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-);
-
-extern int omp_get_max_threads_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-extern int omp_get_num_procs_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-extern void omp_set_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-);
-
-extern int omp_get_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-extern void omp_set_nested_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-);
-
-extern int omp_get_nested_target(
-    TARGET_TYPE target_type,
-    int target_number
-);
-
-extern void omp_set_schedule_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_sched_t kind,
-    int modifier
-);
-
-extern void omp_get_schedule_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_sched_t *kind,
-    int *modifier
-);
-
-/* lock API functions */
-
-typedef struct {
-    omp_lock_t lock;
-} omp_lock_target_t;
-
-extern void omp_init_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-);
-
-extern void omp_destroy_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-);
-
-extern void omp_set_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-);
-
-extern void omp_unset_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-);
-
-extern int omp_test_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-);
-
-/* nested lock API functions */
-
-typedef struct {
-    omp_nest_lock_t lock;
-} omp_nest_lock_target_t;
-
-extern void omp_init_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-);
-
-extern void omp_destroy_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-);
-
-extern void omp_set_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-);
-
-extern void omp_unset_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-);
-
-extern int omp_test_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-);
-
-#ifdef __cplusplus
-} /* extern "C" */
-
-/* Namespace for the shared_allocator. */
-namespace __offload {
-  /* This follows the specification for std::allocator. */
-  /* Forward declaration of the class template. */
-  template <typename T>
-  class shared_allocator;
-
-  /* Specialization for shared_allocator<void>. */
-  template <>
-  class shared_allocator<void> {
-  public:
-    typedef void       *pointer;
-    typedef const void *const_pointer;
-    typedef void        value_type;
-    template <class U> struct rebind { typedef shared_allocator<U> other; };
-  };
-
-  /* Definition of shared_allocator<T>. */
-  template <class T>
-  class shared_allocator {
-  public:
-    typedef size_t     size_type;
-    typedef ptrdiff_t  difference_type;
-    typedef T         *pointer;
-    typedef const T   *const_pointer;
-    typedef T         &reference;
-    typedef const T   &const_reference;
-    typedef T          value_type;
-    template <class U> struct rebind { typedef shared_allocator<U> other; };
-    shared_allocator() throw() { }
-    shared_allocator(const shared_allocator&) throw() { }
-    template <class U> shared_allocator(const shared_allocator<U>&) throw() { }
-    ~shared_allocator() throw() { }
-    pointer address(reference x) const { return &x; }
-    const_pointer address(const_reference x) const { return &x; }
-    pointer allocate(
-      size_type, shared_allocator<void>::const_pointer hint = 0);
-    void deallocate(pointer p, size_type n);
-    size_type max_size() const throw() {
-      return size_type(-1)/sizeof(T);
-    } /* max_size */
-    void construct(pointer p, const T& arg) {
-      ::new (p) T(arg);
-    } /* construct */
-    void destroy(pointer p) {
-      p->~T();
-    } /* destroy */
-  };
-
-  /* Definition for allocate. */
-  template <class T>
-  typename shared_allocator<T>::pointer
-  shared_allocator<T>::allocate(shared_allocator<T>::size_type s,
-                                shared_allocator<void>::const_pointer) {
-    /* Allocate from shared memory. */
-    void *ptr = _Offload_shared_malloc(s*sizeof(T));
-#if (defined(_WIN32) || defined(_WIN64))   /* Windows */
-        if (ptr == 0) throw std::bad_alloc();
-#else
-        if (ptr == 0) std::__throw_bad_alloc();
-#endif
-    return static_cast<pointer>(ptr);
-  } /* allocate */
-
-  template <class T>
-  void shared_allocator<T>::deallocate(pointer p,
-                                       shared_allocator<T>::size_type) {
-    /* Free the shared memory. */
-    _Offload_shared_free(p);
-  } /* deallocate */
-
-  template <typename _T1, typename _T2>
-  inline bool operator==(const shared_allocator<_T1> &,
-                         const shared_allocator<_T2> &) throw() {
-    return true;
-  }  /* operator== */
-
-  template <typename _T1, typename _T2>
-  inline bool operator!=(const shared_allocator<_T1> &,
-                         const shared_allocator<_T2> &) throw() {
-    return false;
-  }  /* operator!= */
-}  /* __offload */
-#endif /* __cplusplus */
-
-#endif /* OFFLOAD_H_INCLUDED */
diff --git a/liboffloadmic/runtime/offload_common.cpp b/liboffloadmic/runtime/offload_common.cpp
deleted file mode 100644 (file)
index af569ae..0000000
+++ /dev/null
@@ -1,190 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#if defined(LINUX) || defined(FREEBSD)
-#include <mm_malloc.h>
-#endif
-
-#include "offload_common.h"
-
-// The debug routines
-
-#if OFFLOAD_DEBUG > 0
-
-void __dump_bytes(
-    int trace_level,
-    const void *data,
-    int len
-)
-{
-    if (console_enabled > trace_level) {
-        const uint8_t *arr = (const uint8_t*) data;
-        char buffer[4096];
-        char *bufferp;
-        int count = 0;
-
-        bufferp = buffer;
-        while (len--) {
-            sprintf(bufferp, "%02x", *arr++);
-            bufferp += 2;
-            count++;
-            if ((count&3) == 0) {
-                sprintf(bufferp, " ");
-                bufferp++;
-            }
-            if ((count&63) == 0) {
-                OFFLOAD_DEBUG_TRACE(trace_level, "%s\n", buffer);
-                bufferp = buffer;
-                count = 0;
-            }
-        }
-        if (count) {
-            OFFLOAD_DEBUG_TRACE(trace_level, "%s\n", buffer);
-        }
-    }
-}
-#endif // OFFLOAD_DEBUG
-
-// The Marshaller and associated routines
-
-void Marshaller::send_data(
-    const void *data,
-    int64_t length
-)
-{
-    OFFLOAD_DEBUG_TRACE(2, "send_data(%p, %lld)\n",
-                        data, length);
-    memcpy(buffer_ptr, data, (size_t)length);
-    buffer_ptr += length;
-    tfr_size += length;
-}
-
-void Marshaller::receive_data(
-    void *data,
-    int64_t length
-)
-{
-    OFFLOAD_DEBUG_TRACE(2, "receive_data(%p, %lld)\n",
-                        data, length);
-    memcpy(data, buffer_ptr, (size_t)length);
-    buffer_ptr += length;
-    tfr_size += length;
-}
-
-// Send function pointer
-void Marshaller::send_func_ptr(
-    const void* data
-)
-{
-    const char* name;
-    size_t      length;
-
-    if (data != 0) {
-        name = __offload_funcs.find_name(data);
-        if (name == 0) {
-#if OFFLOAD_DEBUG > 0
-            if (console_enabled > 2) {
-                __offload_funcs.dump();
-            }
-#endif // OFFLOAD_DEBUG > 0
-
-            LIBOFFLOAD_ERROR(c_send_func_ptr, data);
-            exit(1);
-        }
-        length = strlen(name) + 1;
-    }
-    else {
-        name = "";
-        length = 1;
-    }
-
-    memcpy(buffer_ptr, name, length);
-    buffer_ptr += length;
-    tfr_size += length;
-}
-
-// Receive function pointer
-void Marshaller::receive_func_ptr(
-    const void** data
-)
-{
-    const char* name;
-    size_t      length;
-
-    name = (const char*) buffer_ptr;
-    if (name[0] != '\0') {
-        *data = __offload_funcs.find_addr(name);
-        if (*data == 0) {
-#if OFFLOAD_DEBUG > 0
-            if (console_enabled > 2) {
-                __offload_funcs.dump();
-            }
-#endif // OFFLOAD_DEBUG > 0
-
-            LIBOFFLOAD_ERROR(c_receive_func_ptr, name);
-            exit(1);
-        }
-        length = strlen(name) + 1;
-    }
-    else {
-        *data = 0;
-        length = 1;
-    }
-
-    buffer_ptr += length;
-    tfr_size += length;
-}
-
-// End of the Marshaller and associated routines
-
-extern void *OFFLOAD_MALLOC(
-    size_t size,
-    size_t align
-)
-{
-    void *ptr;
-    int   err;
-
-    OFFLOAD_DEBUG_TRACE(2, "%s(%lld, %lld)\n", __func__, size, align);
-
-    if (align < sizeof(void*)) {
-        align = sizeof(void*);
-    }
-
-    ptr = _mm_malloc(size, align);
-    if (ptr == NULL) {
-        LIBOFFLOAD_ERROR(c_offload_malloc, size, align);
-        exit(1);
-    }
-
-    OFFLOAD_DEBUG_TRACE(2, "%s returned %p\n", __func__, ptr);
-
-    return ptr;
-}
diff --git a/liboffloadmic/runtime/offload_common.h b/liboffloadmic/runtime/offload_common.h
deleted file mode 100644 (file)
index 445d47c..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*! \file
-    \brief The parts of the runtime library common to host and target
-*/
-
-#ifndef OFFLOAD_COMMON_H_INCLUDED
-#define OFFLOAD_COMMON_H_INCLUDED
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <memory.h>
-
-#include "offload.h"
-#include "offload_table.h"
-#include "offload_trace.h"
-#include "offload_timer.h"
-#include "offload_util.h"
-#include "cean_util.h"
-#include "dv_util.h"
-#include "liboffload_error_codes.h"
-
-#include <stdarg.h>
-
-// Use secure getenv if it's supported
-#ifdef HAVE_SECURE_GETENV
-  #define getenv(x)        secure_getenv(x)
-#elif HAVE___SECURE_GETENV
-  #define getenv(x)        __secure_getenv(x)
-#endif
-
-// Offload Library versioning
-DLL_LOCAL extern int offload_version;
-DLL_LOCAL extern int offload_version_count;
-
-// The debug routines
-
-// Host console and file logging
-DLL_LOCAL extern int console_enabled;
-DLL_LOCAL extern int offload_report_level;
-
-
-DLL_LOCAL extern const char *prefix;
-DLL_LOCAL extern int offload_number;
-#if !HOST_LIBRARY
-DLL_LOCAL extern int mic_index;
-#define OFFLOAD_DO_TRACE (offload_report_level == 3)
-#else
-#define OFFLOAD_DO_TRACE (offload_report_enabled && (offload_report_level == 3))
-#endif
-
-#if HOST_LIBRARY
-DLL_LOCAL void Offload_Report_Prolog(OffloadHostTimerData* timer_data);
-DLL_LOCAL void Offload_Report_Epilog(OffloadHostTimerData* timer_data);
-DLL_LOCAL void offload_report_free_data(OffloadHostTimerData * timer_data);
-DLL_LOCAL void Offload_Timer_Print(void);
-
-#ifndef TARGET_WINNT
-#define OFFLOAD_DEBUG_INCR_OFLD_NUM() \
-        __sync_add_and_fetch(&offload_number, 1)
-#else
-#define OFFLOAD_DEBUG_INCR_OFLD_NUM() \
-        _InterlockedIncrement(reinterpret_cast<long*>(&offload_number))
-#endif
-
-#define OFFLOAD_DEBUG_PRINT_TAG_PREFIX() \
-        printf("%s:  ", prefix);
-
-#define OFFLOAD_DEBUG_PRINT_PREFIX() \
-        printf("%s:  ", prefix);
-#else
-#define OFFLOAD_DEBUG_PRINT_PREFIX() \
-        printf("%s%d:  ", prefix, mic_index);
-#endif // HOST_LIBRARY
-
-#define OFFLOAD_TRACE(trace_level, ...)  \
-    if (console_enabled >= trace_level) { \
-        OFFLOAD_DEBUG_PRINT_PREFIX(); \
-        printf(__VA_ARGS__); \
-        fflush(NULL); \
-    }
-
-#if OFFLOAD_DEBUG > 0
-
-#define OFFLOAD_DEBUG_TRACE(level, ...) \
-    OFFLOAD_TRACE(level, __VA_ARGS__)
-
-#define OFFLOAD_REPORT(level, offload_number, stage, ...) \
-    if (OFFLOAD_DO_TRACE) { \
-        offload_stage_print(stage, offload_number, __VA_ARGS__); \
-        fflush(NULL); \
-    }
-
-#define OFFLOAD_DEBUG_TRACE_1(level, offload_number, stage, ...) \
-    if (OFFLOAD_DO_TRACE) { \
-        offload_stage_print(stage, offload_number, __VA_ARGS__); \
-        fflush(NULL); \
-    } \
-    if (!OFFLOAD_DO_TRACE) { \
-        OFFLOAD_TRACE(level, __VA_ARGS__) \
-    }
-
-#define OFFLOAD_DEBUG_DUMP_BYTES(level, a, b) \
-    __dump_bytes(level, a, b)
-
-DLL_LOCAL extern void __dump_bytes(
-    int level,
-    const void *data,
-    int len
-);
-
-#else
-
-#define OFFLOAD_DEBUG_LOG(level, ...)
-#define OFFLOAD_DEBUG_DUMP_BYTES(level, a, b)
-
-#endif
-
-// Runtime interface
-
-#define OFFLOAD_PREFIX(a) __offload_##a
-
-#define OFFLOAD_MALLOC            OFFLOAD_PREFIX(malloc)
-#define OFFLOAD_FREE(a)           _mm_free(a)
-
-// Forward functions
-
-extern void *OFFLOAD_MALLOC(size_t size, size_t align);
-
-// The Marshaller
-
-// Flags describing an offload
-
-//! Flags describing an offload
-union OffloadFlags{
-    uint32_t flags;
-    struct {
-        uint32_t fortran_traceback : 1; //!< Fortran traceback requested
-        uint32_t omp_async         : 1; //!< OpenMP asynchronous offload
-    } bits;
-};
-
-//! \enum Indicator for the type of entry on an offload item list.
-enum OffloadItemType {
-    c_data =   1,       //!< Plain data
-    c_data_ptr,         //!< Pointer data
-    c_func_ptr,         //!< Function pointer
-    c_void_ptr,         //!< void*
-    c_string_ptr,       //!< C string
-    c_dv,               //!< Dope vector variable
-    c_dv_data,          //!< Dope-vector data
-    c_dv_data_slice,    //!< Dope-vector data's slice
-    c_dv_ptr,           //!< Dope-vector variable pointer
-    c_dv_ptr_data,      //!< Dope-vector pointer data
-    c_dv_ptr_data_slice,//!< Dope-vector pointer data's slice
-    c_cean_var,         //!< CEAN variable
-    c_cean_var_ptr,     //!< Pointer to CEAN variable
-    c_data_ptr_array,   //!< Pointer to data pointer array
-    c_extended_type,    //!< Is used to extend OffloadItemType
-                        //!< Actual OffloadItemType is in the
-                        //!< structure VarDescExtendedType
-    c_func_ptr_array,   //!< Pointer to function pointer array
-    c_void_ptr_array,   //!< Pointer to void* pointer array
-    c_string_ptr_array, //!< Pointer to char* pointer array
-    c_data_ptr_ptr,     //!< Pointer to pointer to data (struct member)
-    c_func_ptr_ptr,     //!< Pointer to pointer to function (struct member)
-    c_void_ptr_ptr,     //!< Pointer to pointer to void* (struct member)
-    c_string_ptr_ptr,   //!< Pointer to pointer to string (struct member)
-    c_cean_var_ptr_ptr  //!< Pointer to pointer to cean var (struct member)
-};
-
-#define TYPE_IS_PTR_TO_PTR(t) ((t) == c_string_ptr_ptr || \
-                            (t) == c_data_ptr_ptr || \
-                            (t) == c_func_ptr_ptr || \
-                            (t) == c_void_ptr_ptr || \
-                            (t) == c_cean_var_ptr_ptr)
-
-#define VAR_TYPE_IS_PTR(t) ((t) == c_string_ptr || \
-                            (t) == c_data_ptr || \
-                            (t) == c_cean_var_ptr || \
-                            (t) == c_dv_ptr || \
-                            TYPE_IS_PTR_TO_PTR(t))
-
-#define VAR_TYPE_IS_SCALAR(t) ((t) == c_data || \
-                               (t) == c_void_ptr || \
-                               (t) == c_cean_var || \
-                               (t) == c_dv)
-
-#define VAR_TYPE_IS_DV_DATA(t) ((t) == c_dv_data || \
-                                (t) == c_dv_ptr_data)
-
-#define VAR_TYPE_IS_DV_DATA_SLICE(t) ((t) == c_dv_data_slice || \
-                                      (t) == c_dv_ptr_data_slice)
-
-//! \enum Specify direction to copy offloaded variable.
-enum OffloadParameterType {
-    c_parameter_unknown = -1, //!< Unknown clause
-    c_parameter_nocopy,       //!< Variable listed in "nocopy" clause
-    c_parameter_in,           //!< Variable listed in "in" clause
-    c_parameter_out,          //!< Variable listed in "out" clause
-    c_parameter_inout         //!< Variable listed in "inout" clause
-};
-
-
-//! Flags describing an offloaded variable
-union varDescFlags {
-    struct {
-        //! source variable has persistent storage
-        uint32_t is_static : 1;
-        //! destination variable has persistent storage
-        uint32_t is_static_dstn : 1;
-        //! has length for c_dv && c_dv_ptr
-        uint32_t has_length : 1;
-        //! persisted local scalar is in stack buffer
-        uint32_t is_stack_buf : 1;
-        //! "targetptr" modifier used
-        uint32_t targetptr : 1;
-        //! "preallocated" modifier used
-        uint32_t preallocated : 1;
-        //! pointer to a pointer array
-        uint32_t is_pointer : 1;
-
-        //! buffer address is sent in data
-        uint32_t sink_addr : 1;
-        //! alloc displacement is sent in data
-        uint32_t alloc_disp : 1;
-        //! source data is noncontiguous
-        uint32_t is_noncont_src : 1;
-        //! destination data is noncontiguous
-        uint32_t is_noncont_dst : 1;
-
-        //! "OpenMP always" modifier used
-        uint32_t always_copy : 1;
-        //! "OpenMP delete" modifier used
-        uint32_t always_delete : 1;
-        //! structured data is noncontiguous
-        uint32_t is_non_cont_struct : 1;
-        //! CPU memory pinning/unpinning operation
-        uint32_t pin : 1;
-        //! Pointer to device memory
-        uint32_t is_device_ptr : 1;    
-        //! Hostpointer with associated device pointer
-        uint32_t use_device_ptr : 1;
-    };
-    uint32_t bits;
-};
-
-//! An Offload Variable descriptor
-struct VarDesc {
-    //! OffloadItemTypes of source and destination
-    union {
-        struct {
-            uint8_t dst : 4; //!< OffloadItemType of destination
-            uint8_t src : 4; //!< OffloadItemType of source
-        };
-        uint8_t bits;
-    } type;
-
-    //! OffloadParameterType that describes direction of data transfer
-    union {
-        struct {
-            uint8_t in  : 1; //!< Set if IN or INOUT
-            uint8_t out : 1; //!< Set if OUT or INOUT
-        };
-        uint8_t bits;
-    } direction;
-
-    uint8_t alloc_if;        //!< alloc_if modifier value
-    uint8_t free_if;         //!< free_if modifier value
-    uint32_t align;          //!< MIC alignment requested for pointer data
-    //! Not used by compiler; set to 0
-    /*! Used by runtime as offset to data from start of MIC buffer */
-    uint32_t mic_offset;
-    //! Flags describing this variable
-    varDescFlags flags;
-    //! Not used by compiler; set to 0
-    /*! Used by runtime as offset to base from data stored in a buffer */
-    int64_t offset;
-    //! Element byte-size of data to be transferred
-    /*! For dope-vector, the size of the dope-vector      */
-    int64_t size;
-    union {
-        //! Set to 0 for array expressions and dope-vectors
-        /*! Set to 1 for scalars                          */
-        /*! Set to value of length modifier for pointers  */
-        int64_t count;
-        //! Displacement not used by compiler
-        int64_t disp;
-    };
-
-    //! This field not used by OpenMP 4.0
-    /*! The alloc section expression in #pragma offload   */
-    union {
-       void *alloc;
-       int64_t ptr_arr_offset;
-    };
-
-    //! This field not used by OpenMP 4.0
-    /*! The into section expression in #pragma offload    */
-    /*! For c_data_ptr_array this is the into ptr array   */
-    void *into;
-
-    //! For an ordinary variable, address of the variable
-    /*! For c_cean_var (C/C++ array expression),
-        pointer to arr_desc, which is an array descriptor. */
-    /*! For c_data_ptr_array (array of data pointers),
-        pointer to ptr_array_descriptor,
-        which is a descriptor for pointer array transfers. */
-    void *ptr;
-};
-
-//! Auxiliary struct used when -g is enabled that holds variable names
-struct VarDesc2 {
-    const char *sname; //!< Source name
-    const char *dname; //!< Destination name (when "into" is used)
-};
-
-/*! When the OffloadItemType is c_data_ptr_array
-    the ptr field of the main descriptor points to this struct.          */
-/*! The type in VarDesc1 merely says c_cean_data_ptr, but the pointer
-    type can be c_data_ptr, c_func_ptr, c_void_ptr, or c_string_ptr.
-    Therefore the actual pointer type is in the flags field of VarDesc3. */
-/*! If flag_align_is_array/flag_alloc_if_is_array/flag_free_if_is_array
-    is 0 then alignment/alloc_if/free_if are specified in VarDesc1.      */
-/*! If flag_align_is_array/flag_alloc_if_is_array/flag_free_if_is_array
-    is 1 then align_array/alloc_if_array/free_if_array specify
-    the set of alignment/alloc_if/free_if values.                        */
-/*! For the other fields, if neither the scalar nor the array flag
-    is set, then that modifier was not specified. If the bits are set
-    they specify which modifier was set and whether it was a
-    scalar or an array expression.                                       */
-struct VarDesc3
-{
-    void *ptr_array;        //!< Pointer to arr_desc of array of pointers
-    void *align_array;      //!< Scalar value or pointer to arr_desc
-    void *alloc_if_array;   //!< Scalar value or pointer to arr_desc
-    void *free_if_array;    //!< Scalar value or pointer to arr_desc
-    void *extent_start;     //!< Scalar value or pointer to arr_desc
-    void *extent_elements;  //!< Scalar value or pointer to arr_desc
-    void *into_start;       //!< Scalar value or pointer to arr_desc
-    void *into_elements;    //!< Scalar value or pointer to arr_desc
-    void *alloc_start;      //!< Scalar value or pointer to arr_desc
-    void *alloc_elements;   //!< Scalar value or pointer to arr_desc
-    /*! Flags that describe the pointer type and whether each field
-        is a scalar value or an array expression.        */
-    /*! First 6 bits are pointer array element type:
-        c_data_ptr, c_func_ptr, c_void_ptr, c_string_ptr */
-    /*! Then single bits specify:                        */
-    /*!     align_array is an array                      */
-    /*!     alloc_if_array is an array                   */
-    /*!     free_if_array is an array                    */
-    /*!     extent_start is a scalar expression          */
-    /*!     extent_start is an array expression          */
-    /*!     extent_elements is a scalar expression       */
-    /*!     extent_elements is an array expression       */
-    /*!     into_start is a scalar expression            */
-    /*!     into_start is an array expression            */
-    /*!     into_elements is a scalar expression         */
-    /*!     into_elements is an array expression         */
-    /*!     alloc_start is a scalar expression           */
-    /*!     alloc_start is an array expression           */
-    /*!     alloc_elements is a scalar expression        */
-    /*!     alloc_elements is an array expression        */
-    uint32_t array_fields;
-};
-const int flag_align_is_array = 6;
-const int flag_alloc_if_is_array = 7;
-const int flag_free_if_is_array = 8;
-const int flag_extent_start_is_scalar = 9;
-const int flag_extent_start_is_array = 10;
-const int flag_extent_elements_is_scalar = 11;
-const int flag_extent_elements_is_array = 12;
-const int flag_into_start_is_scalar = 13;
-const int flag_into_start_is_array = 14;
-const int flag_into_elements_is_scalar = 15;
-const int flag_into_elements_is_array = 16;
-const int flag_alloc_start_is_scalar = 17;
-const int flag_alloc_start_is_array = 18;
-const int flag_alloc_elements_is_scalar = 19;
-const int flag_alloc_elements_is_array = 20;
-
-//! Extended Variable Descriptor.  Since VarDesc uses 16 bits for
-//! OffloadItemType, we have exceeded that limit,  So any Type 
-//! greater than 15 will have Type set in VarDesc as c_extended_type
-//! and this structure will be used to represent those Types.
-typedef struct VarDescExtendedType {
-
-    // Represents overflow of OffloadItemType
-    uint32_t extended_type; 
-
-    //! For extended_type 
-    //! address of the variable
-    //! Future Types can point to other descriptors
-    void *ptr;   
-} VarDescExtendedType;
-
-// The Marshaller
-class Marshaller
-{
-private:
-    // Start address of buffer
-    char *buffer_start;
-
-    // Current pointer within buffer
-    char *buffer_ptr;
-
-    // Physical size of data sent (including flags)
-    long long buffer_size;
-
-    // User data sent/received
-    long long tfr_size;
-
-public:
-    // Constructor
-    Marshaller() :
-        buffer_start(0), buffer_ptr(0),
-        buffer_size(0), tfr_size(0)
-    {
-    }
-
-    // Return count of user data sent/received
-    long long get_tfr_size() const
-    {
-        return tfr_size;
-    }
-
-    // Return pointer to buffer
-    char *get_buffer_start() const
-    {
-        return buffer_start;
-    }
-
-    // Return current size of data in buffer
-    long long get_buffer_size() const
-    {
-        return buffer_size;
-    }
-
-    // Set buffer pointer
-    void init_buffer(
-        char *d,
-        long long s
-    )
-    {
-        buffer_start = buffer_ptr = d;
-        buffer_size = s;
-    }
-
-    // Send data
-    void send_data(
-        const void *data,
-        int64_t length
-    );
-
-    // Receive data
-    void receive_data(
-        void *data,
-        int64_t length
-    );
-
-    // Send function pointer
-    void send_func_ptr(
-        const void* data
-    );
-
-    // Receive function pointer
-    void receive_func_ptr(
-        const void** data
-    );
-};
-
-// End of the Marshaller
-
-// The offloaded function descriptor.
-// Sent from host to target to specify which function to run.
-// Also, sets console and file tracing levels.
-struct FunctionDescriptor
-{
-    // Input data size.
-    long long in_datalen;
-
-    // Output data size.
-    long long out_datalen;
-
-    // Whether trace is requested on console.
-    // A value of 1 produces only function name and data sent/received.
-    // Values > 1 produce copious trace information.
-    uint8_t console_enabled;
-
-    // Flag controlling timing on the target side.
-    // Values > 0 enable timing on sink.
-    uint8_t timer_enabled;
-
-    int offload_report_level;
-    int offload_number;
-
-    // number of variable descriptors
-    int vars_num;
-
-    // inout data offset if data is passed as misc/return data
-    // otherwise it should be zero.
-    int data_offset;
-
-    // The name of the offloaded function
-    char data[];
-};
-
-// typedef OFFLOAD.
-// Pointer to OffloadDescriptor.
-typedef struct OffloadDescriptor *OFFLOAD;
-
-// Use for setting affinity of a stream
-enum affinity_type {
-    affinity_compact,
-    affinity_scatter
-};
-struct affinity_spec {
-    uint64_t sink_mask[16];
-    int affinity_type;
-    int num_cores;
-    int num_threads;
-};
-
-#endif // OFFLOAD_COMMON_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_engine.cpp b/liboffloadmic/runtime/offload_engine.cpp
deleted file mode 100644 (file)
index b2de56c..0000000
+++ /dev/null
@@ -1,1128 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_engine.h"
-#include <signal.h>
-#include <errno.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include <algorithm>
-#include <vector>
-
-#include "offload_host.h"
-#include "offload_table.h"
-#include "offload_iterator.h"
-
-#if defined(HOST_WINNT)
-#define PATH_SEPARATOR ";"
-#else
-#define PATH_SEPARATOR ":"
-#endif
-
-// Static members of Stream class must be described somewhere.
-// This members describe the list of all streams defined in programm
-// via call to _Offload_stream_create.
-uint64_t  Stream::m_streams_count = 0;
-StreamMap Stream::all_streams;
-mutex_t   Stream::m_stream_lock;
-char*     mic_library_path = 0;
-
-const char* Engine::m_func_names[Engine::c_funcs_total] =
-{
-    "server_compute",
-#ifdef MYO_SUPPORT
-    "server_myoinit",
-    "server_myofini",
-#endif // MYO_SUPPORT
-    "server_init",
-    "server_var_table_size",
-    "server_var_table_copy",
-    "server_set_stream_affinity"
-};
-
-// Symbolic representation of system signals. Fix for CQ233593
-const char* Engine::c_signal_names[Engine::c_signal_max] =
-{
-    "Unknown SIGNAL",
-    "SIGHUP",    /*  1, Hangup (POSIX).  */
-    "SIGINT",    /*  2, Interrupt (ANSI).  */
-    "SIGQUIT",   /*  3, Quit (POSIX).  */
-    "SIGILL",    /*  4, Illegal instruction (ANSI).  */
-    "SIGTRAP",   /*  5, Trace trap (POSIX).  */
-    "SIGABRT",   /*  6, Abort (ANSI).  */
-    "SIGBUS",    /*  7, BUS error (4.2 BSD).  */
-    "SIGFPE",    /*  8, Floating-point exception (ANSI).  */
-    "SIGKILL",   /*  9, Kill, unblockable (POSIX).  */
-    "SIGUSR1",   /* 10, User-defined signal 1 (POSIX).  */
-    "SIGSEGV",   /* 11, Segmentation violation (ANSI).  */
-    "SIGUSR2",   /* 12, User-defined signal 2 (POSIX).  */
-    "SIGPIPE",   /* 13, Broken pipe (POSIX).  */
-    "SIGALRM",   /* 14, Alarm clock (POSIX).  */
-    "SIGTERM",   /* 15, Termination (ANSI).  */
-    "SIGSTKFLT", /* 16, Stack fault.  */
-    "SIGCHLD",   /* 17, Child status has changed (POSIX).  */
-    "SIGCONT",   /* 18, Continue (POSIX).  */
-    "SIGSTOP",   /* 19, Stop, unblockable (POSIX).  */
-    "SIGTSTP",   /* 20, Keyboard stop (POSIX).  */
-    "SIGTTIN",   /* 21, Background read from tty (POSIX).  */
-    "SIGTTOU",   /* 22, Background write to tty (POSIX).  */
-    "SIGURG",    /* 23, Urgent condition on socket (4.2 BSD).  */
-    "SIGXCPU",   /* 24, CPU limit exceeded (4.2 BSD).  */
-    "SIGXFSZ",   /* 25, File size limit exceeded (4.2 BSD).  */
-    "SIGVTALRM", /* 26, Virtual alarm clock (4.2 BSD).  */
-    "SIGPROF",   /* 27, Profiling alarm clock (4.2 BSD).  */
-    "SIGWINCH",  /* 28, Window size change (4.3 BSD, Sun).  */
-    "SIGIO",     /* 29, I/O now possible (4.2 BSD).  */
-    "SIGPWR",    /* 30, Power failure restart (System V).  */
-    "SIGSYS"     /* 31, Bad system call.  */
-};
-
-void Engine::init(void)
-{
-    if (!m_ready) {
-        mutex_locker_t locker(m_lock);
-
-        if (!m_ready) {
-            // start process if not done yet
-            if (m_process == 0) {
-                init_process();
-            }
-
-            // load penging images
-            load_libraries();
-
-            // and (re)build pointer table
-            init_ptr_data();
-
-            // it is ready now
-            m_ready = true;
-           
-            //  Inform the debugger 
-            if (__dbg_is_attached) {
-                __dbg_target_so_loaded();
-            }
-        }
-    }
-}
-
-void Engine::print_stream_cpu_list(const char * str)
-{
-    int count = 0;
-    char buffer[1024];
-    CpuEl* cpu_el = m_cpu_head;
-       
-    OFFLOAD_DEBUG_TRACE(3,
-                  "%s : cpu list as Index(Count) for the streams is :\n", str);
-    buffer[0] = 0;
-    for (int i = 0; i < m_num_threads; i++) {
-         cpu_el = m_cpus + i;
-         if (m_assigned_cpus == 0 || (*m_assigned_cpus)[i]) {
-             count++;
-             sprintf(buffer + strlen(buffer), "%d(%d) ", CPU_INDEX(cpu_el), cpu_el->count);
-             if (count % 20 == 0) {
-                 OFFLOAD_DEBUG_TRACE(3, "%s\n", buffer);
-                 buffer[0] = 0;           
-             } 
-         }
-    }
-    if (count % 20 != 0) {
-        OFFLOAD_DEBUG_TRACE(3, "%s\n", buffer);
-    }
-}
-
-void Engine::init_process(void)
-{
-    COIENGINE engine;
-    COIRESULT res;
-    const char **environ;
-    char buf[4096];  // For exe path name
-    char* mic_device_main = 0;
-
-    // create environment for the target process
-    environ = (const char**) mic_env_vars.create_environ_for_card(m_index);
-    if (environ != 0) {
-        for (const char **p = environ; *p != 0; p++) {
-            OFFLOAD_DEBUG_TRACE(3, "Env Var for card %d: %s\n", m_index, *p);
-        }
-    }
-
-    // Create execution context in the specified device
-    OFFLOAD_DEBUG_TRACE(2, "Getting device %d (engine %d) handle\n", m_index,
-                        m_physical_index);
-    res = COI::EngineGetHandle(COI_ISA_MIC, m_physical_index, &engine);
-    check_result(res, c_get_engine_handle, m_index, res);
-
-    // Get engine info on threads and cores.
-    // The values of core number and thread number will be used later at stream
-    // creation by call to _Offload_stream_create(device,number_of_cpus).
-
-    COI_ENGINE_INFO engine_info;
-
-    res = COI::EngineGetInfo(engine, sizeof(COI_ENGINE_INFO), &engine_info);
-    check_result(res, c_get_engine_info, m_index, res);
-    if (mic_library_path == 0 ) {
-       if (engine_info.ISA == COI_DEVICE_KNC) {
-          mic_library_path = knc_library_path;
-       }
-       else if (engine_info.ISA == COI_DEVICE_KNL) {
-          mic_library_path = knl_library_path;
-       }
-       else {
-          LIBOFFLOAD_ERROR(c_unknown_mic_device_type);
-       }
-    }
-
-    // m_cpus is the list of all available threads.
-    // At the begining all threads made available through OFFLOAD_DEVICES
-    // or all threads existed at the engine if OFFLOAD_DEVICES isn't set.
-    // m_cpu_head points to the head of the m_cpus list.
-    // m_cpus is ordered by number of streams using the thread.
-    // m_cpu_head points to the least used thread.
-    // After creating and destroying a stream the m_cpus list must be fixed
-    // to be ordered.
-
-    m_cpus = (CpuEl*)malloc(engine_info.NumThreads * sizeof(CpuEl));
-    if (m_cpus == NULL)
-        LIBOFFLOAD_ERROR(c_malloc);
-    memset(m_cpus, 0, engine_info.NumThreads * sizeof(CpuEl));
-    CpuEl* prev_cpu = NULL;
-
-    for (int i = 0; i < engine_info.NumThreads; i++) {
-         if (m_assigned_cpus == 0 || (*m_assigned_cpus)[i]) {
-             if (prev_cpu) {
-                 prev_cpu->next = m_cpus + i;
-             }
-             else {
-                 m_cpu_head = m_cpus + i;
-             }
-             m_cpus[i].prev = prev_cpu;
-             m_cpus[i].count = 0;
-             prev_cpu = m_cpus + i;
-         }
-    }
-
-    // The following values will be used at pipeline creation for streams
-    m_num_cores = engine_info.NumCores;
-    m_num_threads = engine_info.NumThreads;
-
-    print_stream_cpu_list("init_process");
-
-    // Check if OFFLOAD_DMA_CHANNEL_COUNT is set to 2
-    // Only the value 2 is supported in 16.0
-    if (mic_dma_channel_count == 2) {
-        if (COI::ProcessConfigureDMA) {
-            // Set DMA channels using COI API
-            COI::ProcessConfigureDMA(2, COI::DMA_MODE_READ_WRITE);
-        }
-        else {
-            // Set environment variable COI_DMA_CHANNEL_COUNT
-            // use putenv instead of setenv as Windows has no setenv.
-            // Note: putenv requires its argument can't be freed or modified.
-            // So no free after call to putenv or elsewhere.
-            char * env_var = strdup("COI_DMA_CHANNEL_COUNT=2");
-            if (env_var == NULL)
-                LIBOFFLOAD_ERROR(c_malloc);
-            putenv(env_var);
-        }
-    }
-
-    // Target executable is not available then use compiler provided offload_main
-    if (__target_exe == 0) {
-       // find target executable to be used if main application is not an
-       // offload build application.
-       const char *base_name = "offload_main";
-       if (mic_library_path != 0) {
-          char *buf = strdup(mic_library_path);
-          if (buf == NULL)
-              LIBOFFLOAD_ERROR(c_malloc);
-          char *try_name = (char*) alloca(strlen(mic_library_path) +
-                                          strlen(base_name) + 2);
-          char *dir, *ptr;
-
-          for (dir = strtok_r(buf, PATH_SEPARATOR, &ptr); dir != 0;
-               dir = strtok_r(0, PATH_SEPARATOR, &ptr)) {
-              // compose a full path
-              sprintf(try_name, "%s/%s", dir, base_name);
-
-              // check if such file exists
-              struct stat st;
-              if (stat(try_name, &st) == 0 && S_ISREG(st.st_mode)) {
-                  mic_device_main = strdup(try_name);
-                  if (mic_device_main == NULL)
-                      LIBOFFLOAD_ERROR(c_malloc);
-                  break;
-              }
-          }
-          free(buf);
-       }
-       if (mic_device_main == 0) {
-          LIBOFFLOAD_ERROR(c_report_no_target_exe, "offload_main");
-          exit(1);
-       }
-
-       OFFLOAD_DEBUG_TRACE(2,
-           "Loading target executable %s\n",mic_device_main);
-
-       res = COI::ProcessCreateFromFile(
-           engine,                 // in_Engine
-           mic_device_main,        // in_pBinaryName
-           0,                      // in_Argc
-           0,                      // in_ppArgv
-           environ == 0,           // in_DupEnv
-           environ,                // in_ppAdditionalEnv
-           mic_proxy_io,           // in_ProxyActive
-           mic_proxy_fs_root,      // in_ProxyfsRoot
-           mic_buffer_size,        // in_BufferSpace
-           mic_library_path,       // in_LibrarySearchPath
-           &m_process              // out_pProcess
-       );
-    }
-    else {
-    // Target executable should be available by the time when we
-    // attempt to initialize the device
-
-       //  Need the full path of the FAT exe for VTUNE
-       {
-#ifndef TARGET_WINNT
-          ssize_t len = readlink("/proc/self/exe", buf,1000);
-#else
-          int len = GetModuleFileName(NULL, buf,1000);
-#endif // TARGET_WINNT
-          if  (len == -1) {
-             LIBOFFLOAD_ERROR(c_report_no_host_exe);
-             exit(1);
-          }
-          else if (len > 999) {
-             LIBOFFLOAD_ERROR(c_report_path_buff_overflow);
-             exit(1);
-          }
-          buf[len] = '\0';
-       }
-
-       OFFLOAD_DEBUG_TRACE(2,
-           "Loading target executable \"%s\" from %p, size %lld, host file %s\n",
-           __target_exe->name, __target_exe->data, __target_exe->size,
-           buf);
-
-       res = COI::ProcessCreateFromMemory(
-           engine,                 // in_Engine
-           __target_exe->name,     // in_pBinaryName
-           __target_exe->data,     // in_pBinaryBuffer
-           __target_exe->size,     // in_BinaryBufferLength,
-           0,                      // in_Argc
-           0,                      // in_ppArgv
-           environ == 0,           // in_DupEnv
-           environ,                // in_ppAdditionalEnv
-           mic_proxy_io,           // in_ProxyActive
-           mic_proxy_fs_root,      // in_ProxyfsRoot
-           mic_buffer_size,        // in_BufferSpace
-           mic_library_path,       // in_LibrarySearchPath
-           buf,                    // in_FileOfOrigin
-           -1,                     // in_FileOfOriginOffset use -1 to indicate to
-                                   // COI that is is a FAT binary
-           &m_process              // out_pProcess
-       );
-    }
-    check_result(res, c_process_create, m_index, res);
-
-    if ((mic_4k_buffer_size != 0) || (mic_2m_buffer_size !=0)) {
-       // available only in MPSS 4.2 and greater
-       if (COI::ProcessSetCacheSize != 0 ) { 
-          int flags;
-          //  Need compiler to use MPSS 3.2 or greater to get these
-          // definition so currently hardcoding it
-          //  COI_CACHE_ACTION_GROW_NOW && COI_CACHE_MODE_ONDEMAND_SYNC;
-          flags = 0x00020002; 
-          res = COI::ProcessSetCacheSize(
-               m_process,             // in_Process
-               mic_2m_buffer_size,    // in_HugePagePoolSize
-               flags,                 // inHugeFlags
-               mic_4k_buffer_size,    // in_SmallPagePoolSize
-               flags,                 // inSmallFlags
-               0,                     // in_NumDependencies
-               0,                     // in_pDependencies
-               0                      // out_PCompletion
-          );
-          OFFLOAD_DEBUG_TRACE(2,
-              "Reserve target buffers 4K pages = %d  2M pages = %d\n",
-                  mic_4k_buffer_size, mic_2m_buffer_size);
-           check_result(res, c_process_set_cache_size, m_index, res);
-       }
-       else {
-             OFFLOAD_DEBUG_TRACE(2,
-                 "Reserve target buffers not supported in current MPSS\n");
-       }
-    }
-
-    // get function handles
-    res = COI::ProcessGetFunctionHandles(m_process, c_funcs_total,
-                                         m_func_names, m_funcs);
-    check_result(res, c_process_get_func_handles, m_index, res);
-
-    // initialize device side
-    pid_t pid = init_device();
-
-    // For IDB
-    if (__dbg_is_attached) {
-        // TODO: we have in-memory executable now.
-        // Check with IDB team what should we provide them now?
-        if (__target_exe == 0) {
-            strcpy(__dbg_target_exe_name, "offload_main");
-        }
-        else {
-            if (strlen(__target_exe->name) < MAX_TARGET_NAME) {
-                strcpy(__dbg_target_exe_name, __target_exe->name);
-            }
-        }
-        __dbg_target_so_pid = pid;
-        __dbg_target_id = m_physical_index;
-       // The call to __dbg_target_so_loaded() is moved
-       // to Engine:init so all the libraries are loaded before
-       // informing debugger so debugger can access them.
-       // __dbg_target_so_loaded();
-    }
-}
-
-void Engine::fini_process(bool verbose)
-{
-    if (m_process != 0) {
-        uint32_t sig;
-        int8_t ret;
-
-        // destroy target process
-        OFFLOAD_DEBUG_TRACE(2, "Destroying process on the device %d\n",
-                            m_index);
-
-        COIRESULT res = COI::ProcessDestroy(m_process, -1, 0, &ret, &sig);
-        m_process = 0;
-
-        if (res == COI_SUCCESS) {
-            OFFLOAD_DEBUG_TRACE(3, "Device process: signal %d, exit code %d\n",
-                                sig, ret);
-            if (verbose) {
-                if (sig != 0) {
-                    LIBOFFLOAD_ERROR(
-                        c_mic_process_exit_sig, m_index, sig,
-                        c_signal_names[sig >= c_signal_max ? 0 : sig]);
-                }
-                else {
-                    LIBOFFLOAD_ERROR(c_mic_process_exit_ret, m_index, ret);
-                }
-            }
-
-            // for idb
-            if (__dbg_is_attached) {
-                __dbg_target_so_unloaded();
-            }
-        }
-        else {
-            if (verbose) {
-                LIBOFFLOAD_ERROR(c_mic_process_exit, m_index);
-            }
-        }
-    }
-}
-
-void Engine::load_libraries()
-{
-    // load libraries collected so far
-    for (TargetImageList::iterator it = m_images.begin();
-         it != m_images.end(); it++) {
-        OFFLOAD_DEBUG_TRACE(2,
-            "Loading library \"%s\" from %p, size %llu, host file %s\n",
-                                    it->name, it->data, it->size, it->origin);
-
-        // load library to the device
-        COILIBRARY lib;
-        COIRESULT res;
-        res = COI::ProcessLoadLibraryFromMemory(m_process,
-                                                it->data,
-                                                it->size,
-                                                it->name,
-                                                mic_library_path,
-                                                it->origin,
-                                                (it->origin) ? -1 : 0,
-                                                COI_LOADLIBRARY_V1_FLAGS,
-                                                &lib);
-        m_dyn_libs.push_front(DynLib(it->name, it->data, lib));
-
-        if (res != COI_SUCCESS && res != COI_ALREADY_EXISTS) {
-            check_result(res, c_load_library, it->origin, m_index, res);
-        }
-    }
-    m_images.clear();
-}
-
-void Engine::unload_library(const void *data, const char *name)
-{
-    if (m_process == 0) {
-       return;
-    }
-    for (DynLibList::iterator it = m_dyn_libs.begin();
-         it != m_dyn_libs.end(); it++) {
-         if (it->data == data) {
-            COIRESULT res;
-            OFFLOAD_DEBUG_TRACE(2,
-               "Unloading library \"%s\"\n",name);
-            res = COI::ProcessUnloadLibrary(m_process,it->lib);
-            m_dyn_libs.erase(it);
-            if (res != COI_SUCCESS) {
-                check_result(res, c_unload_library, m_index, res);
-            }
-            return;
-         }
-    }
-}
-
-static bool target_entry_cmp(
-    const VarList::BufEntry &l,
-    const VarList::BufEntry &r
-)
-{
-    const char *l_name = reinterpret_cast<const char*>(l.name);
-    const char *r_name = reinterpret_cast<const char*>(r.name);
-    return strcmp(l_name, r_name) < 0;
-}
-
-static bool host_entry_cmp(
-    const VarTable::Entry *l,
-    const VarTable::Entry *r
-)
-{
-    return strcmp(l->name, r->name) < 0;
-}
-
-void Engine::init_ptr_data(void)
-{
-    COIRESULT res;
-    COIEVENT event;
-
-    // Prepare table of host entries
-    std::vector<const VarTable::Entry*> host_table(
-                                         Iterator(__offload_vars.get_head()),
-                                         Iterator());
-
-    // no need to do anything further is host table is empty
-    if (host_table.size() <= 0) {
-        return;
-    }
-
-    // Get var table entries from the target.
-    // First we need to get size for the buffer to copy data
-    struct {
-        int64_t nelems;
-        int64_t length;
-    } params;
-
-    res = COI::PipelineRunFunction(get_pipeline(),
-                                   m_funcs[c_func_var_table_size],
-                                   0, 0, 0,
-                                   0, 0,
-                                   0, 0,
-                                   &params, sizeof(params),
-                                   &event);
-    check_result(res, c_pipeline_run_func, m_index, res);
-
-    res = COI::EventWait(1, &event, -1, 1, 0, 0);
-    check_result(res, c_event_wait, res);
-
-    if (params.length == 0) {
-        return;
-    }
-
-    // create buffer for target entries and copy data to host
-    COIBUFFER buffer;
-    res = COI::BufferCreate(params.length, COI_BUFFER_NORMAL, 0, 0, 1,
-                            &m_process, &buffer);
-    check_result(res, c_buf_create, m_index, res);
-
-    COI_ACCESS_FLAGS flags = COI_SINK_WRITE;
-    res = COI::PipelineRunFunction(get_pipeline(),
-                                   m_funcs[c_func_var_table_copy],
-                                   1, &buffer, &flags,
-                                   0, 0,
-                                   &params.nelems, sizeof(params.nelems),
-                                   0, 0,
-                                   &event);
-    check_result(res, c_pipeline_run_func, m_index, res);
-
-    res = COI::EventWait(1, &event, -1, 1, 0, 0);
-    check_result(res, c_event_wait, res);
-
-    // patch names in target data
-    VarList::BufEntry *target_table;
-    COIMAPINSTANCE map_inst;
-    res = COI::BufferMap(buffer, 0, params.length, COI_MAP_READ_ONLY, 0, 0,
-                         0, &map_inst,
-                         reinterpret_cast<void**>(&target_table));
-    check_result(res, c_buf_map, res);
-
-    VarList::table_patch_names(target_table, params.nelems);
-
-    // and sort entries
-    std::sort(target_table, target_table + params.nelems, target_entry_cmp);
-    std::sort(host_table.begin(), host_table.end(), host_entry_cmp);
-
-    // merge host and target entries and enter matching vars map
-    std::vector<const VarTable::Entry*>::const_iterator hi =
-        host_table.begin();
-    std::vector<const VarTable::Entry*>::const_iterator he =
-        host_table.end();
-    const VarList::BufEntry *ti = target_table;
-    const VarList::BufEntry *te = target_table + params.nelems;
-
-    while (hi != he && ti != te) {
-        int res = strcmp((*hi)->name, reinterpret_cast<const char*>(ti->name));
-        if (res == 0) {
-            bool is_new;
-            // add matching entry to var map
-            PtrData *ptr = insert_ptr_data((*hi)->addr, (*hi)->size, is_new);
-
-            // store address for new entries
-            if (is_new) {
-                ptr->mic_addr = ti->addr;
-                ptr->is_static = true;
-                ptr->var_alloc_type = (*hi)->var_alloc_type;
-            }
-            ptr->alloc_ptr_data_lock.unlock();
-            hi++;
-            ti++;
-        }
-        else if (res < 0) {
-            hi++;
-        }
-        else {
-            ti++;
-        }
-    }
-
-    // cleanup
-    res = COI::BufferUnmap(map_inst, 0, 0, 0);
-    check_result(res, c_buf_unmap, res);
-
-    res = COI::BufferDestroy(buffer);
-    check_result(res, c_buf_destroy, res);
-}
-
-COIRESULT Engine::compute(
-    _Offload_stream stream,
-    const std::list<COIBUFFER> &buffers,
-    const void*         data,
-    uint16_t            data_size,
-    void*               ret,
-    uint16_t            ret_size,
-    uint32_t            num_deps,
-    const COIEVENT*     deps,
-    COIEVENT*           event
-) /* const */
-{
-    COIBUFFER *bufs;
-    COI_ACCESS_FLAGS *flags;
-    COIRESULT res;
-
-    // convert buffers list to array
-    int num_bufs = buffers.size();
-    if (num_bufs > 0) {
-        bufs = (COIBUFFER*) alloca(num_bufs * sizeof(COIBUFFER));
-        flags = (COI_ACCESS_FLAGS*) alloca(num_bufs *
-                                           sizeof(COI_ACCESS_FLAGS));
-
-        int i = 0;
-        for (std::list<COIBUFFER>::const_iterator it = buffers.begin();
-             it != buffers.end(); it++) {
-            bufs[i] = *it;
-
-            // TODO: this should be fixed
-            flags[i++] = COI_SINK_WRITE;
-        }
-    }
-    else {
-        bufs = 0;
-        flags = 0;
-    }
-    COIPIPELINE pipeline = (stream == no_stream) ?
-                           get_pipeline() :
-                           get_pipeline(stream);
-    // start computation
-    res = COI::PipelineRunFunction(pipeline,
-                                   m_funcs[c_func_compute],
-                                   num_bufs, bufs, flags,
-                                   num_deps, deps,
-                                   data, data_size,
-                                   ret, ret_size,
-                                   event);
-    return res;
-}
-
-pid_t Engine::init_device(void)
-{
-    struct init_data {
-        int  device_index;
-        int  devices_total;
-        int  console_level;
-        int  offload_report_level;
-    } data;
-    COIRESULT res;
-    COIEVENT event;
-    pid_t pid;
-
-    OFFLOAD_DEBUG_TRACE_1(2, 0, c_offload_init,
-                          "Initializing device with logical index %d "
-                          "and physical index %d\n",
-                           m_index, m_physical_index);
-
-    // setup misc data
-    data.device_index = m_index;
-    data.devices_total = mic_engines_total;
-    data.console_level = console_enabled;
-    data.offload_report_level = offload_report_level;
-
-    res = COI::PipelineRunFunction(get_pipeline(),
-                                   m_funcs[c_func_init],
-                                   0, 0, 0, 0, 0,
-                                   &data, sizeof(data),
-                                   &pid, sizeof(pid),
-                                   &event);
-    check_result(res, c_pipeline_run_func, m_index, res);
-
-    res = COI::EventWait(1, &event, -1, 1, 0, 0);
-    check_result(res, c_event_wait, res);
-
-    OFFLOAD_DEBUG_TRACE(2, "Device process pid is %d\n", pid);
-
-    return pid;
-}
-
-// data associated with each thread
-struct Thread {
-    Thread(long* addr_coipipe_counter) {
-        m_addr_coipipe_counter = addr_coipipe_counter;
-        memset(m_pipelines, 0, sizeof(m_pipelines));
-    }
-
-    ~Thread() {
-#ifndef TARGET_WINNT
-        __sync_sub_and_fetch(m_addr_coipipe_counter, 1);
-#else // TARGET_WINNT
-        _InterlockedDecrement(m_addr_coipipe_counter);
-#endif // TARGET_WINNT
-        for (int i = 0; i < mic_engines_total; i++) {
-            if (m_pipelines[i] != 0) {
-                COI::PipelineDestroy(m_pipelines[i]);
-            }
-        }
-    }
-
-    COIPIPELINE get_pipeline(int index) const {
-        return m_pipelines[index];
-    }
-
-    void set_pipeline(int index, COIPIPELINE pipeline) {
-        m_pipelines[index] = pipeline;
-    }
-
-    AutoSet& get_auto_vars() {
-        return m_auto_vars;
-    }
-
-private:
-    long*       m_addr_coipipe_counter;
-    AutoSet     m_auto_vars;
-    COIPIPELINE m_pipelines[MIC_ENGINES_MAX];
-};
-
-COIPIPELINE Engine::get_pipeline(void)
-{
-    Thread* thread = (Thread*) thread_getspecific(mic_thread_key);
-    if (thread == 0) {
-        thread = new Thread(&m_proc_number);
-        thread_setspecific(mic_thread_key, thread);
-    }
-
-    COIPIPELINE pipeline = thread->get_pipeline(m_index);
-    if (pipeline == 0) {
-        COIRESULT res;
-        int proc_num;
-
-#ifndef TARGET_WINNT
-        proc_num = __sync_fetch_and_add(&m_proc_number, 1);
-#else // TARGET_WINNT
-        proc_num = _InterlockedIncrement(&m_proc_number);
-#endif // TARGET_WINNT
-
-        if (proc_num > COI_PIPELINE_MAX_PIPELINES) {
-            LIBOFFLOAD_ERROR(c_coipipe_max_number, COI_PIPELINE_MAX_PIPELINES);
-            LIBOFFLOAD_ABORT;
-        }
-
-        // Create pipeline for this thread
-        if (m_assigned_cpus == 0) {
-            // If m_assigned_cpus is NULL, it implies all threads
-            // Create the pipeline with no CPU mask
-            res = COI::PipelineCreate(m_process, 0, mic_stack_size, &pipeline);
-        } else {
-            // Create COI CPU mask
-            COI_CPU_MASK  in_Mask;
-            res = COI::PipelineClearCPUMask(in_Mask);
-            check_result(res, c_clear_cpu_mask, m_index, res);
-
-            int threads_per_core = m_num_threads / m_num_cores;
-
-            // Available threads are defined by examining of m_assigned_cpus bitset.
-            // We skip thread 0.
-            for (int i = 1; i < m_num_threads; i++) {
-                // For available thread i m_assigned_cpus[i] is equal to 1
-                if ((*m_assigned_cpus)[i]) {
-                    COI_CPU_MASK_SET(i, in_Mask);
-                }
-            }
-            OFFLOAD_DEBUG_TRACE(2, "COIPipelineCreate Mask for this CPU thread\n"
-                               "%016lx %016lx %016lx %016lx\n%016lx %016lx %016lx %016lx\n"
-                               "%016lx %016lx %016lx %016lx\n%016lx %016lx %016lx %016lx\n",
-                               in_Mask[0], in_Mask[1], in_Mask[2], in_Mask[3],
-                               in_Mask[4], in_Mask[5], in_Mask[6], in_Mask[7],
-                               in_Mask[8], in_Mask[9], in_Mask[10], in_Mask[11],
-                               in_Mask[12], in_Mask[13], in_Mask[14], in_Mask[15]);
-
-            // Create the pipeline with allowable CPUs
-            res = COI::PipelineCreate(m_process, in_Mask, mic_stack_size, &pipeline);
-        }
-        check_result(res, c_pipeline_create, m_index, res);
-        thread->set_pipeline(m_index, pipeline);
-    }
-    return pipeline;
-}
-
-Stream* Stream::find_stream(uint64_t handle, bool remove)
-{
-    Stream *stream = 0;
-
-    m_stream_lock.lock();
-    {
-        StreamMap::iterator it = all_streams.find(handle);
-        if (it != all_streams.end()) {
-            stream = it->second;
-            if (remove) {
-                all_streams.erase(it);
-            }
-        }
-    }
-    m_stream_lock.unlock();
-    return stream;
-}
-
-void Engine::move_cpu_el_after(CpuEl* cpu_what, CpuEl* cpu_after)
-{
-    if (cpu_what == cpu_after) {
-        return;
-    }
-    CpuEl* cpu_prev = cpu_what->prev;
-
-    // remove cpu_what
-    if (!cpu_prev) {
-        m_cpu_head = cpu_what->next;
-    }
-    else {
-        cpu_prev->next = cpu_what->next;
-    }
-    if (cpu_what->next) {
-        cpu_what->next->prev = cpu_prev;
-    }
-
-    // insert cpu_what after cpu_after
-    cpu_what->prev = cpu_after;
-    cpu_what->next = cpu_after->next;
-    if (cpu_after->next) {
-        cpu_after->next->prev = cpu_what;
-    }
-    cpu_after->next = cpu_what;
-}
-
-COIPIPELINE Engine::get_pipeline(_Offload_stream handle)
-{
-    Stream * stream = Stream::find_stream(handle, false);
-
-    if (!stream) {
-        LIBOFFLOAD_ERROR(c_offload_no_stream, m_index);
-        LIBOFFLOAD_ABORT;
-    }
-
-    COIPIPELINE pipeline = stream->get_pipeline();
-
-    if (pipeline == 0) {
-        COIRESULT     res;
-        int           proc_num;
-        COI_CPU_MASK  in_Mask ;
-
-#ifndef TARGET_WINNT
-        proc_num = __sync_fetch_and_add(&m_proc_number, 1);
-#else // TARGET_WINNT
-        proc_num = _InterlockedIncrement(&m_proc_number);
-#endif // TARGET_WINNT
-
-        if (proc_num > COI_PIPELINE_MAX_PIPELINES) {
-            LIBOFFLOAD_ERROR(c_coipipe_max_number, COI_PIPELINE_MAX_PIPELINES);
-            LIBOFFLOAD_ABORT;
-        }
-
-        m_stream_lock.lock();
-
-        // start process if not done yet
-        if (m_process == 0) {
-            init_process();
-        }
-
-        // create CPUmask
-        res = COI::PipelineClearCPUMask(in_Mask);
-        check_result(res, c_clear_cpu_mask, m_index, res);
-
-        int stream_cpu_num = stream->get_cpu_number();
-
-        stream->m_stream_cpus.reset();
-
-        int threads_per_core = m_num_threads / m_num_cores;
-
-
-        // Available threads is taken from m_cpus list.
-        // m_cpu_head points to the head of m_cpus.
-        // the elements of m_cpus is ordered by the number of usage in streams.
-
-        CpuEl *cpu_el = m_cpu_head;
-        CpuEl *cpu_used_el, *cpu_used_prev, *cpu_prev;
-
-        for (int i = 0; i < stream_cpu_num; i++) {
-            COI_CPU_MASK_SET(CPU_INDEX(cpu_el), in_Mask);
-            stream->m_stream_cpus.set(CPU_INDEX(cpu_el));
-            //If the number of availabale threads is less than stream_cpu_num,
-            // the stream_cpu_num is restricted to this number.
-            if (!cpu_el->next) {
-                break;
-            }
-            if (i + 1 < stream_cpu_num) {
-                cpu_el = cpu_el->next;
-            }
-        }
-
-        // assertion : cpu_el points to the last used thread
-        cpu_used_el = cpu_el;
-        while (cpu_used_el) {
-            cpu_used_el->count++;
-            cpu_el = cpu_prev = cpu_used_el;
-            cpu_used_prev = cpu_used_el->prev;
-            if (!cpu_el->next) {
-                cpu_used_el = cpu_used_prev;
-                continue;
-            }
-            
-            while (cpu_el) {
-                if (cpu_used_el->count < cpu_el->count) {
-                    break;
-                }
-                // Equal used threads are ordered by thread number to
-                // assign to a stream as contiguous threads as possible.
-                else if (cpu_used_el->count == cpu_el->count &&
-                         CPU_INDEX(cpu_used_el) <  CPU_INDEX(cpu_el)) {
-                     break;               
-                }
-                cpu_prev = cpu_el;
-                cpu_el = cpu_el->next;
-            }
-            if (cpu_used_el != cpu_prev) {
-                move_cpu_el_after(cpu_used_el, cpu_prev);
-            }
-            cpu_used_el = cpu_used_prev;
-        }
-        print_stream_cpu_list("get_pipeline");
-
-        // create pipeline for this thread
-        OFFLOAD_DEBUG_TRACE(2, "COIPipelineCreate Mask for this Stream\n"
-                               "%016lx %016lx %016lx %016lx\n%016lx %016lx %016lx %016lx\n"
-                               "%016lx %016lx %016lx %016lx\n%016lx %016lx %016lx %016lx\n",
-                               in_Mask[0], in_Mask[1], in_Mask[2], in_Mask[3],
-                               in_Mask[4], in_Mask[5], in_Mask[6], in_Mask[7],
-                               in_Mask[8], in_Mask[9], in_Mask[10], in_Mask[11],
-                               in_Mask[12], in_Mask[13], in_Mask[14], in_Mask[15]);
-        res = COI::PipelineCreate(m_process, in_Mask,
-                                  mic_stack_size, &pipeline);
-        check_result(res, c_pipeline_create, m_index, res);
-
-        // Set stream's affinities
-        {
-            struct affinity_spec affinity_spec;
-            char* affinity_type;
-            int i;
-
-            // "compact" by default
-            affinity_spec.affinity_type = affinity_compact;
-
-            // Check if user has specified type of affinity
-            if ((affinity_type = getenv("OFFLOAD_STREAM_AFFINITY")) !=
-                                        NULL)
-            {
-                char affinity_str[16];
-                int affinity_str_len;
-
-                OFFLOAD_DEBUG_TRACE(2,
-                    "User has specified OFFLOAD_STREAM_AFFINITY=%s\n",
-                    affinity_type);
-
-                // Set type of affinity requested
-                affinity_str_len = strlen(affinity_type);
-                for (i=0; i<affinity_str_len && i<15; i++)
-                {
-                    affinity_str[i] = tolower(affinity_type[i]);
-                }
-                affinity_str[i] = '\0';
-                if (strcmp(affinity_str, "compact") == 0) {
-                    affinity_spec.affinity_type = affinity_compact;
-                    OFFLOAD_DEBUG_TRACE(2, "Setting affinity=compact\n");
-                } else if (strcmp(affinity_str, "scatter") == 0) {
-                    affinity_spec.affinity_type = affinity_scatter;
-                    OFFLOAD_DEBUG_TRACE(2, "Setting affinity=scatter\n");
-                } else {
-                    LIBOFFLOAD_ERROR(c_incorrect_affinity, affinity_str);
-                    affinity_spec.affinity_type = affinity_compact;
-                    OFFLOAD_DEBUG_TRACE(2, "Setting affinity=compact\n");
-                }
-            }
-            // Make flat copy of sink mask because COI's mask is opaque
-            for (i=0; i<16; i++) {
-                affinity_spec.sink_mask[i] = in_Mask[i];
-            }
-            // Set number of cores and threads
-            affinity_spec.num_cores = m_num_cores;
-            affinity_spec.num_threads = m_num_threads;
-
-            COIEVENT event;
-            res = COI::PipelineRunFunction(pipeline,
-                                   m_funcs[c_func_set_stream_affinity],
-                                   0, 0, 0,
-                                   0, 0,
-                                   &affinity_spec, sizeof(affinity_spec),
-                                   0, 0,
-                                   &event);
-            check_result(res, c_pipeline_run_func, m_index, res);
-    
-            res = COI::EventWait(1, &event, -1, 1, 0, 0);
-            check_result(res, c_event_wait, res);
-        }
-
-        m_stream_lock.unlock();
-        stream->set_pipeline(pipeline);
-    }
-    return pipeline;
-}
-
-void Engine::stream_destroy(_Offload_stream handle)
-{
-    // get stream
-    Stream * stream =  Stream::find_stream(handle, true);
-
-    if (stream) {
-        // return cpus for future use
-        for (int i = 0; i < m_num_threads; i++) {
-            if (stream->m_stream_cpus.test(i)) {
-                CpuEl *cpu_el = m_cpus + i;
-                CpuEl *cpu_first_el = cpu_el;
-                // decrease count of thread "i" and move its CpuEl to the
-                // proper place into the ordered list
-                cpu_el->count--;
-                while (cpu_el->prev) {
-                    if (cpu_first_el->count > cpu_el->prev->count) {
-                        break;
-                    }
-                    else if (cpu_first_el->count == cpu_el->prev->count &&
-                             CPU_INDEX(cpu_first_el) > CPU_INDEX(cpu_el->prev)) {
-                        break;
-                    }
-                    cpu_el = cpu_el->prev;
-                }
-                cpu_el = cpu_el->prev;
-                // If cpu_el for thread "i" must be moved in the list
-                if (cpu_first_el != cpu_el) {
-                    // Thread "i" is used the least times. It must be set as
-                    // the m_cpu_head.
-                    if (!cpu_el) {
-                        if (!cpu_first_el->prev) {
-                            continue;
-                        }
-                        // remove cpu_el.
-                        cpu_first_el->prev->next = cpu_first_el->next;
-                        if (cpu_first_el->next) {
-                            cpu_first_el->next->prev = cpu_first_el->prev;
-                        }
-                        // make cpu_first_el as new m_cpu_head
-                        cpu_first_el->prev = NULL;
-                        cpu_first_el->next = m_cpu_head;
-                        m_cpu_head->prev = cpu_first_el;
-                        m_cpu_head = cpu_first_el;
-                    }
-                    else {
-                        move_cpu_el_after(cpu_first_el, cpu_el);
-                    }
-                }
-            }
-        }
-        print_stream_cpu_list("stream_destroy");        
-        delete stream;
-    }
-    else {
-        LIBOFFLOAD_ERROR(c_offload_no_stream, m_index);
-        LIBOFFLOAD_ABORT;
-    }
-}
-
-uint64_t Engine::get_thread_id(void)
-{
-    Thread* thread = (Thread*) thread_getspecific(mic_thread_key);
-    if (thread == 0) {
-        thread = new Thread(&m_proc_number);
-        thread_setspecific(mic_thread_key, thread);
-    }
-
-    return reinterpret_cast<uint64_t>(thread);
-}
-
-AutoSet& Engine::get_auto_vars(void)
-{
-    Thread* thread = (Thread*) thread_getspecific(mic_thread_key);
-    if (thread == 0) {
-        thread = new Thread(&m_proc_number);
-        thread_setspecific(mic_thread_key, thread);
-    }
-
-    return thread->get_auto_vars();
-}
-
-void Engine::destroy_thread_data(void *data)
-{
-    delete static_cast<Thread*>(data);
-}
diff --git a/liboffloadmic/runtime/offload_engine.h b/liboffloadmic/runtime/offload_engine.h
deleted file mode 100644 (file)
index b4cdad5..0000000
+++ /dev/null
@@ -1,724 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef OFFLOAD_ENGINE_H_INCLUDED
-#define OFFLOAD_ENGINE_H_INCLUDED
-
-#include <limits.h>
-#include <bitset>
-#include <list>
-#include <set>
-#include <map>
-#include "offload_common.h"
-#include "coi/coi_client.h"
-
-#define SIGNAL_HAS_COMPLETED ((OffloadDescriptor *)-1)
-const int64_t no_stream = -1;
-
-// Address range
-class MemRange {
-public:
-    MemRange() : m_start(0), m_length(0) {}
-    MemRange(const void *addr, uint64_t len) : m_start(addr), m_length(len) {}
-
-    const void* start() const {
-        return m_start;
-    }
-
-    const void* end() const {
-        return static_cast<const char*>(m_start) + m_length;
-    }
-
-    uint64_t length() const {
-        return m_length;
-    }
-
-    // returns true if given range overlaps with another one
-    bool overlaps(const MemRange &o) const {
-        // Two address ranges A[start, end) and B[start,end) overlap
-        // if A.start < B.end and A.end > B.start.
-        return start() < o.end() && end() > o.start();
-    }
-
-    // returns true if given range contains the other range
-    bool contains(const MemRange &o) const {
-        return start() <= o.start() && o.end() <= end();
-    }
-
-private:
-    const void* m_start;
-    uint64_t    m_length;
-};
-
-// Data associated with a pointer variable
-class PtrData {
-public:
-    PtrData(const void *addr, uint64_t len) :
-        cpu_addr(addr, len), cpu_buf(0),
-        mic_addr(0), alloc_disp(0), mic_buf(0), mic_offset(0),
-        ref_count(0), is_static(false), is_omp_associate(false)
-    {}
-
-    //
-    // Copy constructor
-    //
-    PtrData(const PtrData& ptr):
-        cpu_addr(ptr.cpu_addr), cpu_buf(ptr.cpu_buf),
-        mic_addr(ptr.mic_addr), alloc_disp(ptr.alloc_disp),
-        mic_buf(ptr.mic_buf), mic_offset(ptr.mic_offset),
-        ref_count(ptr.ref_count), is_static(ptr.is_static),
-        is_omp_associate(ptr.is_omp_associate),
-        var_alloc_type(0)
-    {}
-
-    bool operator<(const PtrData &o) const {
-        // Variables are sorted by the CPU start address.
-        // Overlapping memory ranges are considered equal.
-        return (cpu_addr.start() < o.cpu_addr.start()) &&
-               !cpu_addr.overlaps(o.cpu_addr);
-    }
-
-    long add_reference() {
-        if (is_omp_associate || (is_static && !var_alloc_type)) {
-            return LONG_MAX;
-        }
-#ifndef TARGET_WINNT
-        return __sync_fetch_and_add(&ref_count, 1);
-#else // TARGET_WINNT
-        return _InterlockedIncrement(&ref_count) - 1;
-#endif // TARGET_WINNT
-    }
-
-    long remove_reference() {
-        if (is_omp_associate || (is_static && !var_alloc_type)) {
-            return LONG_MAX;
-        }
-#ifndef TARGET_WINNT
-        return __sync_sub_and_fetch(&ref_count, 1);
-#else // TARGET_WINNT
-        return _InterlockedDecrement(&ref_count);
-#endif // TARGET_WINNT
-    }
-
-    long get_reference() const {
-        if (is_omp_associate || (is_static && !var_alloc_type)) {
-            return LONG_MAX;
-        }
-        return ref_count;
-    }
-
-public:
-    // CPU address range
-    const MemRange  cpu_addr;
-
-    // CPU and MIC buffers
-    COIBUFFER       cpu_buf;
-    COIBUFFER       mic_buf;
-
-    // placeholder for buffer address on mic
-    uint64_t        mic_addr;
-
-    uint64_t        alloc_disp;
-
-    // additional offset to pointer data on MIC for improving bandwidth for
-    // data which is not 4K aligned
-    uint32_t        mic_offset;
-
-    // if true buffers are created from static memory
-    bool            is_static;
-
-    // true if MIC buffer created by omp_target_associate
-    bool            is_omp_associate;
-
-    bool            var_alloc_type;
-    mutex_t         alloc_ptr_data_lock;
-
-private:
-    // reference count for the entry
-    long            ref_count;
-};
-
-typedef std::list<PtrData*> PtrDataList;
-
-class PtrDataTable {
-public:
-    typedef std::set<PtrData> PtrSet;
-
-    PtrData* find_ptr_data(const void *ptr) {
-        m_ptr_lock.lock();
-        PtrSet::iterator res = list.find(PtrData(ptr, 0));
-
-        m_ptr_lock.unlock();
-        if (res == list.end()) {
-            return 0;
-        }
-        return const_cast<PtrData*>(res.operator->());
-    }
-
-    PtrData* insert_ptr_data(const void *ptr, uint64_t len, bool &is_new) {
-        m_ptr_lock.lock();
-        std::pair<PtrSet::iterator, bool> res =
-            list.insert(PtrData(ptr, len));
-
-        PtrData* ptr_data = const_cast<PtrData*>(res.first.operator->());
-        m_ptr_lock.unlock();
-
-        is_new = res.second;
-        if (is_new) {
-            // It's necessary to lock as soon as possible.
-            // unlock must be done at call site of insert_ptr_data at
-            // branch for is_new
-            ptr_data->alloc_ptr_data_lock.lock();
-        }
-        return ptr_data;
-    }
-
-    void remove_ptr_data(const void *ptr) {
-        m_ptr_lock.lock();
-        list.erase(PtrData(ptr, 0));
-        m_ptr_lock.unlock();
-    }
-private:
-
-    PtrSet list;
-    mutex_t     m_ptr_lock;
-};
-
-// Data associated with automatic variable
-class AutoData {
-public:
-    AutoData(const void *addr, uint64_t len) :
-        cpu_addr(addr, len), ref_count(0)
-    {}
-
-    bool operator<(const AutoData &o) const {
-        // Variables are sorted by the CPU start address.
-        // Overlapping memory ranges are considered equal.
-        return (cpu_addr.start() < o.cpu_addr.start()) &&
-               !cpu_addr.overlaps(o.cpu_addr);
-    }
-
-    long add_reference() {
-#ifndef TARGET_WINNT
-        return __sync_fetch_and_add(&ref_count, 1);
-#else // TARGET_WINNT
-        return _InterlockedIncrement(&ref_count) - 1;
-#endif // TARGET_WINNT
-    }
-
-    long remove_reference() {
-#ifndef TARGET_WINNT
-        return __sync_sub_and_fetch(&ref_count, 1);
-#else // TARGET_WINNT
-        return _InterlockedDecrement(&ref_count);
-#endif // TARGET_WINNT
-    }
-    
-    long nullify_reference() {
-#ifndef TARGET_WINNT
-        return __sync_lock_test_and_set(&ref_count, 0);
-#else // TARGET_WINNT
-        return _InterlockedExchange(&ref_count,0);
-#endif // TARGET_WINNT
-    }
-    
-    long get_reference() const {
-        return ref_count;
-    }
-
-public:
-    // CPU address range
-    const MemRange cpu_addr;
-
-private:
-    // reference count for the entry
-    long ref_count;
-};
-
-// Set of autimatic variables
-typedef std::set<AutoData> AutoSet;
-
-// Target image data
-struct TargetImage
-{
-    TargetImage(const char *_name, const void *_data, uint64_t _size,
-                const char *_origin, uint64_t _offset) :
-        name(_name), data(_data), size(_size),
-        origin(_origin), offset(_offset)
-    {}
-
-    // library name
-    const char* name;
-
-    // contents and size
-    const void* data;
-    uint64_t    size;
-
-    // file of origin and offset within that file
-    const char* origin;
-    uint64_t    offset;
-};
-
-typedef std::list<TargetImage> TargetImageList;
-
-// dynamic library and Image associated with lib
-struct DynLib
-{
-    DynLib(const char *_name, const void *_data,
-           COILIBRARY _lib) :
-        name(_name), data(_data), lib(_lib)
-    {}
-    // library name
-    const char* name;
-
-    // contents
-    const void* data;
-    COILIBRARY lib;
-};
-typedef std::list<DynLib> DynLibList;
-
-// Data associated with persistent auto objects
-struct PersistData
-{
-    PersistData(const void *addr, uint64_t routine_num,
-                uint64_t size, uint64_t thread) :
-        stack_cpu_addr(addr), routine_id(routine_num), thread_id(thread)
-    {
-        stack_ptr_data = new PtrData(0, size);
-    }
-    // 1-st key value - beginning of the stack at CPU
-    const void *   stack_cpu_addr;
-    // 2-nd key value - identifier of routine invocation at CPU
-    uint64_t   routine_id;
-    // 3-rd key value - thread identifier
-    uint64_t   thread_id;
-
-    // corresponded PtrData; only stack_ptr_data->mic_buf is used
-    PtrData * stack_ptr_data;
-    // used to get offset of the variable in stack buffer
-    char * cpu_stack_addr;
-};
-
-typedef std::list<PersistData> PersistDataList;
-
-// Data associated with stream
-struct Stream
-{
-    Stream(int device, int num_of_cpus) :
-       m_number_of_cpus(num_of_cpus), m_pipeline(0), m_last_offload(0),
-       m_device(device)
-    {}
-    ~Stream() {
-        if (m_pipeline) {
-             COI::PipelineDestroy(m_pipeline);
-        }
-    }
-
-    COIPIPELINE get_pipeline(void) {
-        return(m_pipeline);
-    }
-
-    int get_device(void) {
-        return(m_device);
-    }
-
-    int get_cpu_number(void) {
-        return(m_number_of_cpus);
-    }
-
-    void set_pipeline(COIPIPELINE pipeline) {
-        m_pipeline = pipeline;
-    }
-
-    OffloadDescriptor* get_last_offload(void) {
-        return(m_last_offload);
-    }
-
-    void set_last_offload(OffloadDescriptor*   last_offload) {
-        m_last_offload = last_offload;
-    }
-
-    static Stream* find_stream(uint64_t handle, bool remove);
-
-    static _Offload_stream  add_stream(int device, int number_of_cpus) {
-        _Offload_stream result;
-        m_stream_lock.lock();
-        result = ++m_streams_count;
-        all_streams[m_streams_count] = new Stream(device, number_of_cpus);
-        m_stream_lock.unlock();
-        return(result);
-    }
-
-    static uint64_t get_streams_count() {
-        return m_streams_count;
-    }
-
-    typedef std::map<uint64_t, Stream*> StreamMap;
-
-    static uint64_t  m_streams_count;
-    static StreamMap all_streams;
-    static mutex_t   m_stream_lock;
-
-    int m_device;
-
-    // number of cpus
-    int m_number_of_cpus;
-
-    // The pipeline associated with the stream
-    COIPIPELINE         m_pipeline;
-
-    // The last offload occured via the stream
-    OffloadDescriptor*  m_last_offload;
-
-    // Cpus used by the stream
-    std::bitset<COI_MAX_HW_THREADS> m_stream_cpus;
-};
-
-typedef std::map<uint64_t, Stream*> StreamMap;
-typedef std::bitset<COI_MAX_HW_THREADS> micLcpuMask;
-
-// ordered by count double linked list of cpus used by streams
-typedef struct CpuEl{
-    uint64_t      count; // number of streams using the cpu
-    struct CpuEl* prev;  // cpu with the same or lesser count
-    struct CpuEl* next;  // cpu with the same or greater count
-} CpuEl;
-
-// class representing a single engine
-struct Engine {
-    friend void __offload_init_library_once(void);
-    friend void __offload_fini_library(void);
-
-#define CPU_INDEX(x) (x - m_cpus)
-#define check_result(res, tag, ...) \
-    { \
-        if (res == COI_PROCESS_DIED) { \
-            fini_process(true); \
-            exit(1); \
-        } \
-        if (res != COI_SUCCESS) { \
-            __liboffload_error_support(tag, __VA_ARGS__); \
-            exit(1); \
-        } \
-    }
-
-    int get_logical_index() const {
-        return m_index;
-    }
-
-    int get_physical_index() const {
-        return m_physical_index;
-    }
-
-    const COIPROCESS& get_process() const {
-        return m_process;
-    }
-
-    bool get_ready() {
-        return m_ready;
-    }
-
-    uint64_t get_thread_id(void);
-
-    // initialize device
-    void init(void);
-
-    // unload library
-    void unload_library(const void *data, const char *name);
-
-    // add new library
-    void add_lib(const TargetImage &lib)
-    {
-        m_lock.lock();
-        m_ready = false;
-        m_images.push_back(lib);
-        m_lock.unlock();
-    }
-
-    COIRESULT compute(
-        _Offload_stream     stream,
-        const std::list<COIBUFFER> &buffers,
-        const void*         data,
-        uint16_t            data_size,
-        void*               ret,
-        uint16_t            ret_size,
-        uint32_t            num_deps,
-        const COIEVENT*     deps,
-        COIEVENT*           event
-    );
-
-#ifdef MYO_SUPPORT
-    // temporary workaround for blocking behavior for myoiLibInit/Fini calls
-    void init_myo(COIEVENT *event) {
-        COIRESULT res;
-        res = COI::PipelineRunFunction(get_pipeline(),
-                                       m_funcs[c_func_myo_init],
-                                       0, 0, 0, 0, 0, 0, 0, 0, 0,
-                                       event);
-        check_result(res, c_pipeline_run_func, m_index, res);
-    }
-
-    void fini_myo(COIEVENT *event) {
-        COIRESULT res;
-        res = COI::PipelineRunFunction(get_pipeline(),
-                                       m_funcs[c_func_myo_fini],
-                                       0, 0, 0, 0, 0, 0, 0, 0, 0,
-                                       event);
-        check_result(res, c_pipeline_run_func, m_index, res);
-    }
-#endif // MYO_SUPPORT
-
-    //
-    // Memory association table
-    //
-    PtrData* find_ptr_data(const void *ptr) {
-        return m_ptr_set.find_ptr_data(ptr);
-    }
-
-    PtrData* find_targetptr_data(const void *ptr) {
-        return m_targetptr_set.find_ptr_data(ptr);
-    }
-
-    PtrData* insert_ptr_data(const void *ptr, uint64_t len, bool &is_new) {
-        return m_ptr_set.insert_ptr_data(ptr, len, is_new);
-    }
-
-    PtrData* insert_targetptr_data(const void *ptr, uint64_t len,
-                                   bool &is_new) {
-        return m_targetptr_set.insert_ptr_data(ptr, len, is_new);
-    }
-
-    void remove_ptr_data(const void *ptr) {
-        m_ptr_set.remove_ptr_data(ptr);
-    }
-
-    void remove_targetptr_data(const void *ptr) {
-        m_targetptr_set.remove_ptr_data(ptr);
-    }
-
-    //
-    // Automatic variables
-    //
-    AutoData* find_auto_data(const void *ptr) {
-        AutoSet &auto_vars = get_auto_vars();
-        AutoSet::iterator res = auto_vars.find(AutoData(ptr, 0));
-        if (res == auto_vars.end()) {
-            return 0;
-        }
-        return const_cast<AutoData*>(res.operator->());
-    }
-
-    AutoData* insert_auto_data(const void *ptr, uint64_t len) {
-        AutoSet &auto_vars = get_auto_vars();
-        std::pair<AutoSet::iterator, bool> res =
-            auto_vars.insert(AutoData(ptr, len));
-        return const_cast<AutoData*>(res.first.operator->());
-    }
-
-    void remove_auto_data(const void *ptr) {
-        get_auto_vars().erase(AutoData(ptr, 0));
-    }
-
-    //
-    // Signals
-    //
-    void add_signal(const void *signal, OffloadDescriptor *desc) {
-        m_signal_lock.lock();
-        m_signal_map[signal] = desc;
-        m_signal_lock.unlock();
-    }
-
-    OffloadDescriptor* find_signal(const void *signal, bool remove) {
-        OffloadDescriptor *desc = 0;
-
-        m_signal_lock.lock();
-        {
-            SignalMap::iterator it = m_signal_map.find(signal);
-            if (it != m_signal_map.end()) {
-                desc = it->second;
-                if (remove) {
-                    it->second = SIGNAL_HAS_COMPLETED;
-                }
-            }
-        }
-        m_signal_lock.unlock();
-
-        return desc;
-    }
-
-    void complete_signaled_ofld(const void *signal) {
-
-        m_signal_lock.lock();
-        {
-            SignalMap::iterator it = m_signal_map.find(signal);
-            if (it != m_signal_map.end()) {
-                it->second = SIGNAL_HAS_COMPLETED;
-            }
-        }
-        m_signal_lock.unlock();
-    }
-
-    void stream_destroy(_Offload_stream handle);
-
-    void move_cpu_el_after(CpuEl* cpu_what, CpuEl* cpu_after);
-    void print_stream_cpu_list(const char *);
-
-    COIPIPELINE get_pipeline(_Offload_stream stream);
-
-    StreamMap get_stream_map() {
-        return m_stream_map;
-    }
-
-    // stop device process
-    void fini_process(bool verbose);
-
-    // list of stacks active at the engine
-    PersistDataList m_persist_list;
-
-private:
-    Engine() : m_index(-1), m_physical_index(-1), m_process(0), m_ready(false),
-               m_proc_number(0), m_assigned_cpus(0), m_cpus(0), m_cpu_head(0)
-    {}
-
-    ~Engine() {
-        m_ready = false;
-        for (StreamMap::iterator it = m_stream_map.begin();
-             it != m_stream_map.end(); it++) {
-            Stream * stream = it->second;
-            delete stream;
-        }
-        if (m_process != 0) {
-            fini_process(false);
-        }
-        if (m_assigned_cpus) {
-            delete m_assigned_cpus;
-        }
-    }
-
-    // set indexes
-    void set_indexes(int logical_index, int physical_index) {
-        m_index = logical_index;
-        m_physical_index = physical_index;
-    }
-
-    // set CPU mask
-    void set_cpu_mask(micLcpuMask *cpu_mask)
-    {
-        m_assigned_cpus = cpu_mask;
-    }
-
-    // start process on device
-    void init_process();
-
-    void load_libraries(void);
-    void init_ptr_data(void);
-
-    // performs library intialization on the device side
-    pid_t init_device(void);
-
-private:
-    // get pipeline associated with a calling thread
-    COIPIPELINE get_pipeline(void);
-
-    // get automatic vars set associated with the calling thread
-    AutoSet& get_auto_vars(void);
-
-    // destructor for thread data
-    static void destroy_thread_data(void *data);
-
-private:
-    typedef std::set<PtrData> PtrSet;
-    typedef std::map<const void*, OffloadDescriptor*> SignalMap;
-
-    // device indexes
-    int         m_index;
-    int         m_physical_index;
-
-    // cpu mask
-    micLcpuMask *m_assigned_cpus;
-
-    // number of COI pipes created for the engine
-    long        m_proc_number;
-
-    // process handle
-    COIPROCESS  m_process;
-
-    // If false, device either has not been initialized or new libraries
-    // have been added.
-    bool        m_ready;
-    mutex_t     m_lock;
-
-    // List of libraries to be loaded
-    TargetImageList m_images;
-
-    // var tables
-    PtrDataTable m_ptr_set;
-    PtrDataTable m_targetptr_set;
-
-    // signals
-    SignalMap m_signal_map;
-    mutex_t   m_signal_lock;
-
-    // streams
-    StreamMap   m_stream_map;
-    mutex_t     m_stream_lock;
-    int         m_num_cores;
-    int         m_num_threads;
-    CpuEl*      m_cpus;
-    CpuEl*      m_cpu_head;
-
-    // List of dynamic libraries to be registred
-    DynLibList m_dyn_libs;
-
-    // constants for accessing device function handles
-    enum {
-        c_func_compute = 0,
-#ifdef MYO_SUPPORT
-        c_func_myo_init,
-        c_func_myo_fini,
-#endif // MYO_SUPPORT
-        c_func_init,
-        c_func_var_table_size,
-        c_func_var_table_copy,
-        c_func_set_stream_affinity,
-        c_funcs_total
-    };
-    static const char* m_func_names[c_funcs_total];
-
-    // device function handles
-    COIFUNCTION m_funcs[c_funcs_total];
-
-    // int -> name mapping for device signals
-    static const int   c_signal_max = 32;
-    static const char* c_signal_names[c_signal_max];
-};
-
-#endif // OFFLOAD_ENGINE_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_env.cpp b/liboffloadmic/runtime/offload_env.cpp
deleted file mode 100644 (file)
index d1f52f1..0000000
+++ /dev/null
@@ -1,384 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_env.h"
-#include <string.h>
-#include <ctype.h>
-#include "offload_util.h"
-#include "liboffload_error_codes.h"
-
-// for environment variables valid on all cards
-const int MicEnvVar::any_card = -1;
-
-MicEnvVar::~MicEnvVar()
-{
-    for (std::list<MicEnvVar::CardEnvVars*>::const_iterator
-         it = card_spec_list.begin();
-         it != card_spec_list.end(); it++) {
-        CardEnvVars *card_data = *it;
-        delete card_data;
-    }
-}
-
-MicEnvVar::VarValue::~VarValue()
-{
-    free(env_var_value);
-}
-
-MicEnvVar::CardEnvVars::~CardEnvVars()
-{
-    for (std::list<MicEnvVar::VarValue*>::const_iterator it = env_vars.begin();
-        it != env_vars.end(); it++) {
-            VarValue *var_value = *it;
-            delete var_value;
-    }
-}
-
-// Searching for card in "card_spec_list" list with the same "number"
-
-MicEnvVar::CardEnvVars* MicEnvVar::get_card(int number)
-{
-    if (number == any_card) {
-        return &common_vars;
-    }
-    for (std::list<MicEnvVar::CardEnvVars*>::const_iterator
-         it = card_spec_list.begin();
-         it != card_spec_list.end(); it++) {
-        CardEnvVars *card_data = *it;
-        if (card_data->card_number == number) {
-            return card_data;
-        }
-    }
-    return NULL;
-}
-
-// Searching for environment variable in "env_var" list with the same name
-
-MicEnvVar::VarValue* MicEnvVar::CardEnvVars::find_var(
-    char* env_var_name,
-    int env_var_name_length
-)
-{
-    for (std::list<MicEnvVar::VarValue*>::const_iterator it = env_vars.begin();
-        it != env_vars.end(); it++) {
-            VarValue *var_value = *it;
-            if (var_value->length == env_var_name_length &&
-                !strncmp(var_value->env_var, env_var_name,
-                         env_var_name_length)) {
-                return var_value;
-            }
-    }
-    return NULL;
-}
-
-void MicEnvVar::analyze_env_var(char *env_var_string)
-{
-    char          *env_var_name;
-    char          *env_var_def;
-    int           card_number;
-    int           env_var_name_length;
-    MicEnvVarKind env_var_kind;
-
-    env_var_kind = get_env_var_kind(env_var_string,
-                                    &card_number,
-                                    &env_var_name,
-                                    &env_var_name_length,
-                                    &env_var_def);
-    switch (env_var_kind) {
-        case c_mic_var:
-        case c_mic_card_var:
-            add_env_var(card_number,
-                        env_var_name,
-                        env_var_name_length,
-                        env_var_def);
-            break;
-        case c_mic_card_env:
-            mic_parse_env_var_list(card_number, env_var_def);
-            break;
-        case c_no_mic:
-        default:
-            break;
-    }
-}
-
-void MicEnvVar::add_env_var(
-    int card_number,
-    char *env_var_name,
-    int env_var_name_length,
-    char *env_var_def
-)
-{
-    VarValue *var;
-    CardEnvVars *card;
-
-    // The case corresponds to common env var definition of kind
-    // <mic-prefix>_<var>
-    if (card_number == any_card) {
-        card = &common_vars;
-    }
-    else {
-        card = get_card(card_number);
-        if (!card) {
-            // definition for new card occurred
-            card = new CardEnvVars(card_number);
-            card_spec_list.push_back(card);
-        }
-
-    }
-    var = card->find_var(env_var_name, env_var_name_length);
-    if (!var) {
-        // put new env var definition in "env_var" list
-        var = new VarValue(env_var_name, env_var_name_length, env_var_def);
-        card->env_vars.push_back(var);
-    }
-}
-
-// The routine analyses string pointed by "env_var_string" argument
-// according to the following syntax:
-//
-// Specification of prefix for MIC environment variables
-// MIC_ENV_PREFIX=<mic-prefix>
-//
-// Setting single MIC environment variable
-// <mic-prefix>_<var>=<value>
-// <mic-prefix>_<card-number>_<var>=<value>
-
-// Setting multiple MIC environment variables
-// <mic-prefix>_<card-number>_ENV=<env-vars>
-
-MicEnvVarKind MicEnvVar::get_env_var_kind(
-    char *env_var_string,
-    int *card_number,
-    char **env_var_name,
-    int *env_var_name_length,
-    char **env_var_def
-)
-{
-    int len = strlen(prefix);
-    char *c = env_var_string;
-    int num = 0;
-    bool card_is_set = false;
-
-    if (strncmp(c, prefix, len) != 0 || c[len] != '_') {
-            return c_no_mic;
-    }
-    c += len + 1;
-
-    *card_number = any_card;
-    if (isdigit(*c)) {
-        while (isdigit (*c)) {
-            num = (*c++ - '0') + (num * 10);
-        }
-    if (*c != '_') {
-        return c_no_mic;
-    }
-    c++;
-        *card_number = num;
-        card_is_set = true;
-    }
-    if (!isalpha(*c)) {
-        return c_no_mic;
-    }
-    *env_var_name = *env_var_def = c;
-    if (strncmp(c, "ENV=", 4) == 0) {
-        if (!card_is_set) {
-            *env_var_name_length = 3;
-            *env_var_name = *env_var_def = c;
-            *env_var_def = strdup(*env_var_def);
-            if (*env_var_def == NULL)
-                LIBOFFLOAD_ERROR(c_malloc);
-            return  c_mic_var;
-        }
-        *env_var_def = c + strlen("ENV=");
-        *env_var_def = strdup(*env_var_def);
-        if (*env_var_def == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        return c_mic_card_env;
-    }
-    if (isalpha(*c)) {
-        *env_var_name_length = 0;
-        while (isalnum(*c) || *c == '_') {
-            c++;
-            (*env_var_name_length)++;
-        }
-    }
-    if (*c != '=') {
-        return c_no_mic;
-    }
-    *env_var_def = strdup(*env_var_def);
-    if (*env_var_def == NULL)
-        LIBOFFLOAD_ERROR(c_malloc);
-    return card_is_set? c_mic_card_var : c_mic_var;
-}
-
-// analysing <env-vars> in form:
-// <mic-prefix>_<card-number>_ENV=<env-vars>
-// where:
-//
-// <env-vars>:
-//                <env-var>
-//                <env-vars> | <env-var>
-//
-// <env-var>:
-//                variable=value
-//                variable="value"
-//                variable=
-
-void MicEnvVar::mic_parse_env_var_list(
-    int card_number, char *env_vars_def_list)
-{
-    char *c = env_vars_def_list;
-    char *env_var_name;
-    int  env_var_name_length;
-    char *env_var_def;
-    bool var_is_quoted;
-
-    if (*c == '"') {
-        c++;
-    }
-    while (*c != 0) {
-        var_is_quoted = false;
-        env_var_name = c;
-        env_var_name_length = 0;
-        if (isalpha(*c)) {
-            while (isalnum(*c) || *c == '_') {
-                c++;
-                env_var_name_length++;
-            }
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_mic_parse_env_var_list1);
-            return;
-        }
-        if (*c != '=') {
-            LIBOFFLOAD_ERROR(c_mic_parse_env_var_list2);
-            return;
-        }
-        c++;
-
-        if (*c == '"') {
-            var_is_quoted = true;
-            c++;
-        }
-        // Environment variable values that contain | will need to be escaped.
-        while (*c != 0 && *c != '|' &&
-               (!var_is_quoted || *c != '"'))
-        {
-            // skip escaped symbol
-            if (*c == '\\') {
-                c++;
-            }
-            c++;
-        }
-        if (var_is_quoted) {
-            c++; // for "
-            while (*c != 0 && *c != '|') {
-                c++;
-            }
-        }
-
-        int sz = c - env_var_name;
-        env_var_def = (char*)malloc(sz);
-        if (env_var_def == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-        memcpy(env_var_def, env_var_name, sz);
-        env_var_def[sz] = 0;
-
-        if (*c == '|') {
-            c++;
-            while (*c != 0 && *c == ' ') {
-                c++;
-            }
-        }
-        add_env_var(card_number,
-                    env_var_name,
-                    env_var_name_length,
-                    env_var_def);
-    }
-}
-
-// Collect all definitions for the card with number "card_num".
-// The returned result is vector of string pointers defining one
-// environment variable. The vector is terminated by NULL pointer.
-// In the beginning of the vector there are env vars defined as
-// <mic-prefix>_<card-number>_<var>=<value>
-// or
-// <mic-prefix>_<card-number>_ENV=<env-vars>
-// where <card-number> is equal to "card_num"
-// They are followed by definitions valid for any card
-// and absent in previous definitions.
-
-char** MicEnvVar::create_environ_for_card(int card_num)
-{
-    VarValue *var_value;
-    VarValue *var_value_find;
-    CardEnvVars *card_data = get_card(card_num);
-    CardEnvVars *card_data_common;
-    std::list<char*> new_env;
-    char **rez;
-
-    if (!prefix) {
-        return NULL;
-    }
-    // There is no personel env var definitions for the card with
-    // number "card_num"
-    if (!card_data) {
-        return create_environ_for_card(any_card);
-    }
-
-    for (std::list<MicEnvVar::VarValue*>::const_iterator
-         it = card_data->env_vars.begin();
-         it != card_data->env_vars.end(); it++) {
-        var_value = *it;
-        new_env.push_back(var_value->env_var_value);
-    }
-
-    if (card_num != any_card) {
-        card_data_common = get_card(any_card);
-        for (std::list<MicEnvVar::VarValue*>::const_iterator
-             it = card_data_common->env_vars.begin();
-             it != card_data_common->env_vars.end(); it++) {
-            var_value = *it;
-            var_value_find = card_data->find_var(var_value->env_var,
-                                                 var_value->length);
-            if (!var_value_find) {
-                new_env.push_back(var_value->env_var_value);
-            }
-        }
-    }
-
-    int new_env_size = new_env.size();
-    rez = (char**) malloc((new_env_size + 1) * sizeof(char*));
-    if (rez == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    std::copy(new_env.begin(), new_env.end(), rez);
-    rez[new_env_size] = 0;
-    return rez;
-}
diff --git a/liboffloadmic/runtime/offload_env.h b/liboffloadmic/runtime/offload_env.h
deleted file mode 100644 (file)
index 166b5d9..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef OFFLOAD_ENV_H_INCLUDED
-#define OFFLOAD_ENV_H_INCLUDED
-
-#include <list>
-#include "offload_util.h"
-
-// data structure and routines to parse MIC user environment and pass to MIC
-
-enum MicEnvVarKind
-{
-    c_no_mic,         // not MIC env var
-    c_mic_var,        // for <mic-prefix>_<var>
-    c_mic_card_var,   // for <mic-prefix>_<card-number>_<var>
-    c_mic_card_env    // for <mic-prefix>_<card-number>_ENV
-};
-
-struct DLL_LOCAL MicEnvVar {
-public:
-    MicEnvVar() : prefix(0) {}
-    ~MicEnvVar();
-
-    void analyze_env_var(char *env_var_string);
-    char** create_environ_for_card(int card_num);
-    MicEnvVarKind get_env_var_kind(
-        char *env_var_string,
-        int *card_number,
-        char **env_var_name,
-        int *env_var_name_length,
-        char **env_var_def
-    );
-    void add_env_var(
-        int card_number,
-        char *env_var_name,
-        int env_var_name_length,
-        char *env_var_def
-    );
-
-    void set_prefix(const char *pref) {
-        prefix = (pref && *pref != '\0') ? pref : 0;
-    }
-
-    struct VarValue {
-    public:
-        char* env_var;
-        int   length;
-        char* env_var_value;
-
-        VarValue(char* var, int ln, char* value)
-        {
-            env_var = var;
-            length = ln;
-            env_var_value = value;
-        }
-        ~VarValue();
-    };
-
-    struct CardEnvVars {
-    public:
-
-        int card_number;
-        std::list<struct VarValue*> env_vars;
-
-        CardEnvVars() { card_number = any_card; }
-        CardEnvVars(int num) { card_number = num; }
-        ~CardEnvVars();
-
-        void add_new_env_var(int number, char *env_var, int length,
-                             char *env_var_value);
-        VarValue* find_var(char* env_var_name, int env_var_name_length);
-    };
-    static const int any_card;
-
-private:
-    void         mic_parse_env_var_list(int card_number, char *env_var_def);
-    CardEnvVars* get_card(int number);
-
-    const char *prefix;
-    std::list<struct CardEnvVars *> card_spec_list;
-    CardEnvVars common_vars;
-};
-
-#endif // OFFLOAD_ENV_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_host.cpp b/liboffloadmic/runtime/offload_host.cpp
deleted file mode 100644 (file)
index cab08c4..0000000
+++ /dev/null
@@ -1,7255 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// Forward declaration as the following 2 functions are declared as friend
-// in offload_engine.h.
-// CLANG does not like static to been after friend declaration.
-static void __offload_init_library_once(void);
-static void __offload_fini_library(void);
-
-#include "offload_host.h"
-#ifdef MYO_SUPPORT
-#include "offload_myo_host.h"
-#endif
-
-#include <malloc.h>
-#ifndef TARGET_WINNT
-#include <alloca.h>
-#include <elf.h>
-#endif // TARGET_WINNT
-#include <errno.h>
-#include <fcntl.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include <algorithm>
-#include <bitset>
-#include <iostream>
-
-#if defined(HOST_WINNT)
-#define PATH_SEPARATOR ";"
-#else
-#define PATH_SEPARATOR ":"
-#endif
-
-#define GET_OFFLOAD_NUMBER(timer_data) \
-    timer_data? timer_data->offload_number : 0
-
-static void (*task_completion_callback)(void *);
-
-extern "C" {
-#ifdef TARGET_WINNT
-// Windows does not support imports from libraries without actually
-// including them as dependence.  We don't want to include in the
-// dependence since is it used only for Fortran when traceback is enabled.
-// Chose to implement it with GetProcAddress.
-#define FORTRAN_TRACE_BACK  win_for__continue_traceback
-int win_for__continue_traceback( _Offload_result coi_offload_result )
-{
-    HINSTANCE hDLL;
-    int (* TraceBackRoutine)(_Offload_result value);
-
-    hDLL = LoadLibrary("libifcoremd.dll");
-    if (hDLL != 0) {
-        TraceBackRoutine = (int (*)(_Offload_result)) GetProcAddress(hDLL,
-                                                 "for__continue_traceback");
-        if (TraceBackRoutine != 0) {
-            return TraceBackRoutine(coi_offload_result);
-        }
-        else {
-            OFFLOAD_TRACE(3,
-            "Cannot find for__continue_traceback routine in libifcorert.dll\n");
-            exit(1);
-        }
-    }
-    else {
-        OFFLOAD_TRACE(3, "Cannot load libifcorert.dll\n");
-        exit(1);
-    }
-    return 0;
-}
-
-#else // TARGET_WINNT
-
-#define FORTRAN_TRACE_BACK for__continue_traceback
-
-// for__continue_traceback is provided as a dummy to resolve link time symbols
-// for C/C++ programs.  For Fortran the actual fortran library function in
-// libifcore.so is used.
-#pragma weak for__continue_traceback
-int for__continue_traceback( _Offload_result coi_offload_result )
-{
-     OFFLOAD_TRACE(3,
-          "liboffload function for_continue_traceback should not be called.\n");
-     exit(1);
-}
-#endif //TARGET_WINNT
-}  // extern "C"
-
-#ifdef TARGET_WINNT
-// Small subset of ELF declarations for Windows which is needed to compile
-// this file. ELF header is used to understand what binary type is contained
-// in the target image - shared library or executable.
-
-typedef uint16_t Elf64_Half;
-typedef uint32_t Elf64_Word;
-typedef uint64_t Elf64_Addr;
-typedef uint64_t Elf64_Off;
-
-#define EI_NIDENT   16
-
-#define ET_EXEC     2
-#define ET_DYN      3
-
-typedef struct
-{
-    unsigned char e_ident[EI_NIDENT];
-    Elf64_Half    e_type;
-    Elf64_Half    e_machine;
-    Elf64_Word    e_version;
-    Elf64_Addr    e_entry;
-    Elf64_Off     e_phoff;
-    Elf64_Off     e_shoff;
-    Elf64_Word    e_flags;
-    Elf64_Half    e_ehsize;
-    Elf64_Half    e_phentsize;
-    Elf64_Half    e_phnum;
-    Elf64_Half    e_shentsize;
-    Elf64_Half    e_shnum;
-    Elf64_Half    e_shstrndx;
-} Elf64_Ehdr;
-#endif // TARGET_WINNT
-
-// Host console and file logging
-const char *prefix;
-int console_enabled = 0;
-int offload_number = 0;
-
-static const char *htrace_envname = "H_TRACE";
-static const char *offload_report_envname = "OFFLOAD_REPORT";
-static const char *timer_envname = "H_TIME";
-
-// DMA channel count used by COI and set via
-// OFFLOAD_DMA_CHANNEL_COUNT environment variable
-uint32_t mic_dma_channel_count;
-
-// Trace information
-static const char* vardesc_direction_as_string[] = {
-    "NOCOPY",
-    "IN",
-    "OUT",
-    "INOUT"
-};
-static const char* vardesc_type_as_string[] = {
-    "unknown",
-    "data",
-    "data_ptr",
-    "func_ptr",
-    "void_ptr",
-    "string_ptr",
-    "dv",
-    "dv_data",
-    "dv_data_slice",
-    "dv_ptr",
-    "dv_ptr_data",
-    "dv_ptr_data_slice",
-    "cean_var",
-    "cean_var_ptr",
-    "c_data_ptr_array",
-    "c_extended_type",
-    "c_func_ptr_array",
-    "c_void_ptr_array",
-    "c_string_ptr_array",
-    "c_data_ptr_ptr",
-    "c_func_ptr_ptr",
-    "c_void_ptr_ptr",
-    "c_string_ptr_ptr",
-    "c_cean_var_ptr_ptr",
-};
-
-Engine*         mic_engines = 0;
-uint32_t        mic_engines_total = 0;
-pthread_key_t   mic_thread_key;
-MicEnvVar       mic_env_vars;
-uint64_t        cpu_frequency = 0;
-
-// MIC_STACKSIZE
-uint32_t mic_stack_size = 12 * 1024 * 1024;
-
-// MIC_BUFFERSIZE
-uint64_t mic_buffer_size = 0;
-
-// Preallocated 4K page memory size for buffers on MIC
-uint64_t mic_4k_buffer_size = 0;
-
-// Preallocated 2M page memory size for buffers on MIC
-uint64_t mic_2m_buffer_size = 0;
-
-
-// LD_LIBRARY_PATH for KNC
-char* knc_library_path = 0;
-
-// LD_LIBRARY_PATH for KNL
-char* knl_library_path = 0;
-
-
-// MIC_PROXY_IO
-bool mic_proxy_io = true;
-
-// MIC_PROXY_FS_ROOT
-char* mic_proxy_fs_root = 0;
-
-// Threshold for creating buffers with large pages. Buffer is created
-// with large pages hint if its size exceeds the threshold value.
-// By default large pages are disabled right now (by setting default
-// value for threshold to MAX) due to HSD 4114629.
-uint64_t __offload_use_2mb_buffers = 0xffffffffffffffffULL;
-static const char *mic_use_2mb_buffers_envname  =
-    "MIC_USE_2MB_BUFFERS";
-
-static uint64_t __offload_use_async_buffer_write = 2 * 1024 * 1024;
-static const char *mic_use_async_buffer_write_envname  =
-    "MIC_USE_ASYNC_BUFFER_WRITE";
-
-static uint64_t __offload_use_async_buffer_read = 2 * 1024 * 1024;
-static const char *mic_use_async_buffer_read_envname  =
-    "MIC_USE_ASYNC_BUFFER_READ";
-
-// device initialization type
-OffloadInitType __offload_init_type = c_init_on_offload_all;
-static const char *offload_init_envname = "OFFLOAD_INIT";
-
-// active wait
-static bool __offload_active_wait = true;
-static const char *offload_active_wait_envname = "OFFLOAD_ACTIVE_WAIT";
-
-// wait even for asynchronous offload
-// true for now still the performance issue with COI is not fixed
-static bool __offload_always_wait = true;
-static const char *offload_always_wait_envname = "OFFLOAD_ALWAYS_WAIT";
-
-// OMP_DEFAULT_DEVICE
-int __omp_device_num = 0;
-static const char *omp_device_num_envname = "OMP_DEFAULT_DEVICE";
-
-//OFFLOAD_PARALLEL_COPY
-static bool __offload_parallel_copy = false;
-static const char *parallel_copy_envname = "OFFLOAD_PARALLEL_COPY";
-
-//Use COI interface for noncontiguous transfer if it exists.
-static bool __offload_use_coi_noncontiguous_transfer = false;
-static const char *use_coi_noncontiguous_transfer_envname =
-                       "MIC_USE_COI_MULTI_D";
-
-// The list of pending target libraries
-static bool            __target_libs;
-static TargetImageList __target_libs_list;
-static mutex_t         __target_libs_lock;
-static mutex_t         stack_alloc_lock;
-static mutex_t         lock_complete;
-
-// Set of OffloadDescriptors of asynchronous offloads that are not destroyed
-std::map<void *, bool> offload_descr_map;
-
-// Target executable
-TargetImage*           __target_exe;
-// is true if last loaded image is dll
-bool __current_image_is_dll = false;
-// is true if myo library is loaded when dll is loaded
-bool __myo_init_in_so = false;
-
-// Print readable offload flags
-static void trace_offload_flags(
-    OffloadHostTimerData* timer_data,
-    OffloadFlags offload_flags
-)
-{
-    // Sized big enough for all flag names
-    char fbuffer[256];
-    bool first = true;
-    if (!OFFLOAD_DO_TRACE && (console_enabled >= 1)) {
-        sprintf(fbuffer, "   OffloadFlags=(");
-        if (offload_flags.bits.fortran_traceback) {
-            sprintf(fbuffer+strlen(fbuffer), "fortran_traceback");
-            first = false;
-        }
-        if (offload_flags.bits.omp_async) {
-            sprintf(fbuffer+strlen(fbuffer), first ? "omp_async" : ",omp_async");
-            first = false;
-        }
-        OFFLOAD_DEBUG_TRACE_1(1,
-            GET_OFFLOAD_NUMBER(timer_data), c_offload_init_func,
-            "%s)\n", fbuffer);
-    }
-}
-
-// Print readable varDesc flags
-static void trace_varDesc_flags(
-    OffloadHostTimerData* timer_data,
-    varDescFlags offload_flags
-)
-{
-    // Sized big enough for all flag names
-    char fbuffer[256];
-    bool first = true;
-    if (!OFFLOAD_DO_TRACE && (console_enabled >= 1)) {
-        sprintf(fbuffer, "              varDescFlags=(");
-        if (offload_flags.is_static) {
-            sprintf(fbuffer+strlen(fbuffer), "is_static");
-            first = false;
-        }
-        if (offload_flags.is_static_dstn) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_static_dstn" : ",is_static_dstn");
-            first = false;
-        }
-        if (offload_flags.has_length) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "has_length" : ",has_length");
-            first = false;
-        }
-        if (offload_flags.is_stack_buf) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_stack_buf" : ",is_stack_buf");
-            first = false;
-        }
-        if (offload_flags.targetptr) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "targetptr" : ",targetptr");
-            first = false;
-        }
-        if (offload_flags.preallocated) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "preallocated" : ",preallocated");
-            first = false;
-        }
-        if (offload_flags.is_pointer) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_pointer" : ",is_pointer");
-            first = false;
-        }
-        if (offload_flags.sink_addr) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "sink_addr" : ",sink_addr");
-            first = false;
-        }
-        if (offload_flags.alloc_disp) {
-            sprintf(fbuffer+strlen(fbuffer),
-               first ? "alloc_disp" : ",alloc_disp");
-            first = false;
-        }
-        if (offload_flags.is_noncont_src) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_noncont_src" : ",is_noncont_src");
-            first = false;
-        }
-        if (offload_flags.is_noncont_dst) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_noncont_dst" : ",is_noncont_dst");
-            first = false;
-        }
-        if (offload_flags.always_copy) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "always_copy" : ",always_copy");
-            first = false;
-        }
-        if (offload_flags.always_delete) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "always_delete" : ",always_delete");
-            first = false;
-        }
-        if (offload_flags.is_non_cont_struct) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_non_cont_struct" : ",is_non_cont_struct");
-            first = false;
-        }
-        if (offload_flags.pin) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "pin" : ",pin");
-            first = false;
-        }
-        if (offload_flags.is_device_ptr) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "is_device_ptr" : ",is_device_ptr");
-            first = false;
-        }
-        if (offload_flags.use_device_ptr) {
-            sprintf(fbuffer+strlen(fbuffer),
-                first ? "use_device_ptr" : ",use_device_ptr");
-        }
-        OFFLOAD_DEBUG_TRACE_1(1,
-            GET_OFFLOAD_NUMBER(timer_data), c_offload_init_func,
-            "%s)\n", fbuffer);
-    }
-}
-
-static char * offload_get_src_base(void * ptr, uint8_t type)
-{
-    char *base;
-    if (VAR_TYPE_IS_PTR(type)) {
-        base = *static_cast<char**>(ptr);
-    }
-    else if (VAR_TYPE_IS_SCALAR(type)) {
-        base = static_cast<char*>(ptr);
-    }
-    else if (VAR_TYPE_IS_DV_DATA_SLICE(type) || VAR_TYPE_IS_DV_DATA(type)) {
-        ArrDesc *dvp;
-        if (VAR_TYPE_IS_DV_DATA_SLICE(type)) {
-            const Arr_Desc *ap = static_cast<const Arr_Desc*>(ptr);
-            dvp = (type == c_dv_data_slice) ?
-                  reinterpret_cast<ArrDesc*>(ap->base) :
-                  *reinterpret_cast<ArrDesc**>(ap->base);
-        }
-        else {
-            dvp = (type == c_dv_data) ?
-                  static_cast<ArrDesc*>(ptr) :
-                  *static_cast<ArrDesc**>(ptr);
-        }
-        base = reinterpret_cast<char*>(dvp->Base);
-    }
-    else {
-        base = NULL;
-    }
-    return base;
-}
-
-void OffloadDescriptor::report_coi_error(error_types msg, COIRESULT res)
-{
-    // special case for the 'process died' error
-    if (res == COI_PROCESS_DIED) {
-        m_device.fini_process(true);
-    }
-    else {
-        switch (msg) {
-            case c_buf_create:
-                if (res == COI_OUT_OF_MEMORY) {
-                    msg = c_buf_create_out_of_mem;
-                }
-                /* fallthru */
-
-            case c_buf_create_from_mem:
-            case c_buf_get_address:
-            case c_pipeline_create:
-            case c_pipeline_run_func:
-                LIBOFFLOAD_ERROR(msg, m_device.get_logical_index(), res);
-                break;
-
-            case c_buf_read:
-            case c_buf_write:
-            case c_buf_copy:
-            case c_buf_map:
-            case c_buf_unmap:
-            case c_buf_destroy:
-            case c_buf_set_state:
-                LIBOFFLOAD_ERROR(msg, res);
-                break;
-
-            default:
-                break;
-        }
-    }
-
-    exit(1);
-}
-
-_Offload_result OffloadDescriptor::translate_coi_error(COIRESULT res) const
-{
-    switch (res) {
-        case COI_SUCCESS:
-            return OFFLOAD_SUCCESS;
-
-        case COI_PROCESS_DIED:
-            return OFFLOAD_PROCESS_DIED;
-
-        case COI_OUT_OF_MEMORY:
-            return OFFLOAD_OUT_OF_MEMORY;
-
-        default:
-            return OFFLOAD_ERROR;
-    }
-}
-
-// is_targetptr == 0 && is_prealloc == 0 - allocation of pointer data;
-// is_targetptr == 1 && is_prealloc == 0 - allocation of target memory:
-//    allocate memory at target; use its value as base in target table.
-// is_targetptr == 1 && is_prealloc == 1 - use preallocated target memory:
-//    base - is address at target of preallocated memory; use its value as
-//    base in target table.
-
-bool OffloadDescriptor::alloc_ptr_data(
-    PtrData* &ptr_data,
-    void *base,
-    int64_t disp,
-    int64_t size,
-    int64_t alloc_disp,
-    int align,
-    bool is_targptr,
-    bool is_prealloc,
-    bool pin
-)
-{
-    // total length of base
-    int64_t length = size;
-    bool is_new;
-    COIBUFFER targptr_buf;
-    COIRESULT res;
-    uint32_t buffer_flags = 0;
-    char * base_disp = reinterpret_cast<char *>(base) + disp;
-
-    // create buffer with large pages if data length exceeds
-    // large page threshold
-    if (length >= __offload_use_2mb_buffers) {
-        buffer_flags = COI_OPTIMIZE_HUGE_PAGE_SIZE;
-    }
-    // Allocate memory at target for targetptr without preallocated as we need
-    // its address as base argument in call to m_device.insert_ptr_data
-    if (is_targptr && !is_prealloc) {
-        length = alloc_disp ? length : size + disp;
-        res = COI::BufferCreate(
-            length,
-            COI_BUFFER_OPENCL,
-            buffer_flags,
-            0,
-            1,
-            &m_device.get_process(),
-            &targptr_buf);
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-            }
-            else if (m_is_mandatory) {
-                report_coi_error(c_buf_create, res);
-            }
-            return false;
-        }
-
-        res = COI::BufferGetSinkAddress(
-                       targptr_buf, reinterpret_cast<uint64_t *>(&base));
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-            }
-            else if (m_is_mandatory) {
-                report_coi_error(c_buf_get_address, res);
-            }
-            return false;
-        }
-    }
-
-    OFFLOAD_TRACE(3, "Creating association for data: addr %p, length %lld\n",
-                  alloc_disp ? base : base_disp,
-                  alloc_disp ? length : size + disp);
-                  
-    // add new entry
-
-    ptr_data = is_targptr ?
-               m_device.find_targetptr_data(base_disp) :
-               m_device.find_ptr_data(base_disp);
-    // if ptr_data is found just need to check it for overlapping
-    if (ptr_data) {
-        is_new = false;
-        base = base_disp;
-    }
-    else {
-        // If association is not found we must create it.
-        length = alloc_disp ? length : size + disp;
-        ptr_data = is_targptr ?
-               m_device.insert_targetptr_data(base, length, is_new) :
-               m_device.insert_ptr_data(base, length, is_new);
-    }
-    if (is_new) {
-
-        OFFLOAD_TRACE(3, "Added new association\n");
-
-        if (length > 0) {
-            OffloadTimer timer(get_timer_data(), c_offload_host_alloc_buffers);
-
-            // align should be a power of 2
-            if (!pin && !is_targptr &&
-                align > 0 && (align & (align - 1)) == 0) {
-                // offset within mic_buffer. Can do offset optimization
-                // only when source address alignment satisfies requested
-                // alignment on the target (cq172736).
-                if ((reinterpret_cast<intptr_t>(base) & (align - 1)) == 0) {
-                    ptr_data->mic_offset =
-                        reinterpret_cast<intptr_t>(base) & 4095;
-                }
-            }
-
-            // buffer size and flags
-            uint64_t buffer_size = length + ptr_data->mic_offset;
-
-            // For targetptr there is no CPU buffer
-            if (pin || !is_targptr) {
-                // create CPU buffer
-                OFFLOAD_DEBUG_TRACE_1(3,
-                          GET_OFFLOAD_NUMBER(get_timer_data()),
-                          c_offload_create_buf_host,
-                          "Creating buffer from source memory %p, "
-                          "length %lld\n", base, length);
-
-                // result is not checked because we can continue without cpu
-                // buffer. In this case we will use COIBufferRead/Write
-                // instead of COIBufferCopy.
-
-                COI::BufferCreateFromMemory(length,
-                                        COI_BUFFER_OPENCL,
-                                        0,
-                                        base,
-                                        1,
-                                        &m_device.get_process(),
-                                        &ptr_data->cpu_buf);
-            }
-
-            // create MIC buffer
-            if (is_prealloc) {
-                OFFLOAD_DEBUG_TRACE_1(3,
-                          GET_OFFLOAD_NUMBER(get_timer_data()),
-                          c_offload_create_buf_mic,
-                          "Creating buffer from sink memory: "
-                          "addr %p, size %lld, offset %d, flags 0x%x\n",
-                          base, buffer_size, ptr_data->mic_offset,
-                          buffer_flags);
-                res = COI::BufferCreateFromMemory(ptr_data->cpu_addr.length(),
-                                                  COI_BUFFER_NORMAL,
-                                                  COI_SINK_MEMORY,
-                                                  base,
-                                                  1,
-                                                  &m_device.get_process(),
-                                                  &ptr_data->mic_buf);
-                if (res != COI_SUCCESS) {
-                    if (m_status != 0) {
-                        m_status->result = translate_coi_error(res);
-                    }
-                    else if (m_is_mandatory) {
-                        report_coi_error(c_buf_create, res);
-                    }
-                    ptr_data->alloc_ptr_data_lock.unlock();
-                    return false;
-                }
-            }
-            else if (is_targptr) {
-                ptr_data->mic_buf = targptr_buf;
-            }
-            else if (!pin) {
-                OFFLOAD_DEBUG_TRACE_1(3,
-                          GET_OFFLOAD_NUMBER(get_timer_data()),
-                          c_offload_create_buf_mic,
-                          "Creating buffer for sink: size %lld, offset %d, "
-                          "flags =0x%x\n", buffer_size,
-                          ptr_data->mic_offset, buffer_flags);
-                res = COI::BufferCreate(buffer_size,
-                                        COI_BUFFER_NORMAL,
-                                        buffer_flags,
-                                        0,
-                                        1,
-                                        &m_device.get_process(),
-                                        &ptr_data->mic_buf);
-                if (res != COI_SUCCESS) {
-                    if (m_status != 0) {
-                        m_status->result = translate_coi_error(res);
-                    }
-                    else if (m_is_mandatory) {
-                        report_coi_error(c_buf_create, res);
-                    }
-                    ptr_data->alloc_ptr_data_lock.unlock();
-                    return false;
-                }
-            }
-
-            if (!pin) {
-                // make buffer valid on the device.
-                res = COI::BufferSetState(ptr_data->mic_buf,
-                    m_device.get_process(),
-                    COI_BUFFER_VALID,
-                    COI_BUFFER_NO_MOVE,
-                    0, 0, 0);
-                if (res != COI_SUCCESS) {
-                    if (m_status != 0) {
-                        m_status->result = translate_coi_error(res);
-                    }
-                    else if (m_is_mandatory) {
-                        report_coi_error(c_buf_set_state, res);
-                    }
-                    ptr_data->alloc_ptr_data_lock.unlock();
-                    return false;
-                }
-
-                res = COI::BufferSetState(ptr_data->mic_buf,
-                    COI_PROCESS_SOURCE,
-                    COI_BUFFER_INVALID,
-                    COI_BUFFER_NO_MOVE,
-                0, 0, 0);
-                if (res != COI_SUCCESS) {
-                    if (m_status != 0) {
-                        m_status->result = translate_coi_error(res);
-                    }
-                    else if (m_is_mandatory) {
-                        report_coi_error(c_buf_set_state, res);
-                    }
-                    ptr_data->alloc_ptr_data_lock.unlock();
-                    return false;
-                }
-            }
-        }
-        ptr_data->alloc_disp = alloc_disp;
-        ptr_data->alloc_ptr_data_lock.unlock();
-    }
-    else {
-        mutex_locker_t locker(ptr_data->alloc_ptr_data_lock);
-
-        OFFLOAD_TRACE(3, "Found existing association: addr %p, length %lld, "
-                      "is_static %d\n",
-                      ptr_data->cpu_addr.start(), ptr_data->cpu_addr.length(),
-                      ptr_data->is_static);
-
-        // This is not a new entry. Make sure that provided address range fits
-        // into existing one.
-        MemRange addr_range(base, length);
-        if (!ptr_data->cpu_addr.contains(addr_range)) {
-            LIBOFFLOAD_ERROR(c_bad_ptr_mem_alloc, base, length,
-                           const_cast<void *>(ptr_data->cpu_addr.start()),
-                           ptr_data->cpu_addr.length());
-            exit(1);
-        }
-
-        // if the entry is associated with static data it may not have buffers
-        // created because they are created on demand.
-        if (ptr_data->is_static && !init_static_ptr_data(ptr_data)) {
-            return false;
-        }
-    }
-
-    return true;
-}
-
-bool OffloadDescriptor::find_ptr_data(
-    PtrData* &ptr_data,
-    void *in_base,
-    int64_t disp,
-    int64_t size,
-    bool is_targetptr,
-    bool report_error
-)
-{
-    // total length of base
-    int64_t length = size;
-    char *base = reinterpret_cast<char *>(in_base) + disp;
-    
-    OFFLOAD_TRACE(3, "Looking for association for data: addr %p, "
-                  "length %lld\n", base, length);
-
-    // find existing association in pointer table
-    ptr_data = is_targetptr ?
-               m_device.find_targetptr_data(base) :
-               m_device.find_ptr_data(base);
-    if (ptr_data == 0) {
-        if (report_error) {
-            LIBOFFLOAD_ERROR(c_no_ptr_data, base);
-            exit(1);
-        }
-        OFFLOAD_TRACE(3, "Association does not exist\n");
-        return true;
-    }
-
-    OFFLOAD_TRACE(3, "Found association: base %p, length %lld, is_static %d\n",
-                  ptr_data->cpu_addr.start(), ptr_data->cpu_addr.length(),
-                  ptr_data->is_static);
-
-    // make sure that provided address range fits into existing one
-    MemRange addr_range(base, length);
-    if (!ptr_data->cpu_addr.contains(addr_range)) {
-        if (report_error) {
-            LIBOFFLOAD_ERROR(c_bad_ptr_mem_range, base, length,
-                           const_cast<void *>(ptr_data->cpu_addr.start()),
-                           ptr_data->cpu_addr.length());
-            exit(1);
-        }
-        OFFLOAD_TRACE(3, "Existing association partially overlaps with "
-                      "data address range\n");
-        ptr_data = 0;
-        return true;
-    }
-
-    // if the entry is associated with static data it may not have buffers
-    // created because they are created on demand.
-    if (ptr_data->is_static && !init_static_ptr_data(ptr_data)) {
-        return false;
-    }
-
-    return true;
-}
-
-void OffloadDescriptor::find_device_ptr(
-    int64_t* &device_ptr,
-    void *host_ptr
-)
-{
-    PtrData* ptr_data;
-    char *base = reinterpret_cast<char *>(host_ptr);
-    
-    OFFLOAD_TRACE(3, "Looking for association for data: addr %p\n", base);
-
-    // find existing association in pointer table
-    ptr_data = m_device.find_ptr_data(base);
-
-//    MIC address should have been assigned.
-//    For now assume does not exist and get the addr
-//    if ((ptr_data == 0) || ptr_data->mic_addr) {
-
-    if (ptr_data == 0) {
-       OFFLOAD_TRACE(3, "Association does not exist\n");
-       LIBOFFLOAD_ERROR(c_no_ptr_data, base);
-       exit(1);
-    }
-    if (!ptr_data->mic_addr) {
-       COIRESULT res = COI::BufferGetSinkAddress(ptr_data->mic_buf,
-                                                 &ptr_data->mic_addr);
-       if (res != COI_SUCCESS) {
-           if (m_status != 0)
-               m_status->result = translate_coi_error(res);
-           report_coi_error(c_buf_get_address, res);
-       }
-    }
-
-    device_ptr = (int64_t *) ptr_data->mic_addr;
-
-    OFFLOAD_TRACE(3, "Found association: host_ptr %p, device_ptr = %p\n",
-                  ptr_data->cpu_addr.start(), device_ptr);
-}
-
-bool OffloadDescriptor::init_static_ptr_data(PtrData *ptr_data)
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_alloc_buffers);
-
-    if (ptr_data->cpu_buf == 0) {
-        OFFLOAD_TRACE(3, "Creating buffer from source memory %llx\n",
-                      ptr_data->cpu_addr.start());
-
-        COIRESULT res = COI::BufferCreateFromMemory(
-            ptr_data->cpu_addr.length(),
-            COI_BUFFER_OPENCL,
-            0,
-            const_cast<void*>(ptr_data->cpu_addr.start()),
-            1, &m_device.get_process(),
-            &ptr_data->cpu_buf);
-
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-                return false;
-            }
-            report_coi_error(c_buf_create_from_mem, res);
-        }
-    }
-
-    if (ptr_data->mic_buf == 0) {
-        OFFLOAD_TRACE(3, "Creating buffer from sink memory %llx\n",
-                      ptr_data->mic_addr);
-
-        COIRESULT res = COI::BufferCreateFromMemory(
-            ptr_data->cpu_addr.length(),
-            COI_BUFFER_NORMAL,
-            COI_SINK_MEMORY,
-            reinterpret_cast<void*>(ptr_data->mic_addr),
-            1, &m_device.get_process(),
-            &ptr_data->mic_buf);
-
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-                return false;
-            }
-            report_coi_error(c_buf_create_from_mem, res);
-        }
-    }
-
-    return true;
-}
-
-bool OffloadDescriptor::init_mic_address(PtrData *ptr_data)
-{
-    if (ptr_data->mic_buf != 0 && ptr_data->mic_addr == 0) {
-        COIRESULT res = COI::BufferGetSinkAddress(ptr_data->mic_buf,
-                                                  &ptr_data->mic_addr);
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-            }
-            else if (m_is_mandatory) {
-                report_coi_error(c_buf_get_address, res);
-            }
-            return false;
-        }
-    }
-    return true;
-}
-
-bool OffloadDescriptor::nullify_target_stack(
-    COIBUFFER targ_buf,
-    uint64_t size
-)
-{
-    char * ptr = (char*)malloc(size);
-    if (ptr == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    COIRESULT res;
-
-    memset(ptr, 0, size);
-    res = COI::BufferWrite(
-        targ_buf,
-        0,
-        ptr,
-        size,
-        COI_COPY_UNSPECIFIED,
-        0, 0, 0);
-    free(ptr);
-    if (res != COI_SUCCESS) {
-        if (m_status != 0) {
-            m_status->result = translate_coi_error(res);
-            return false;
-        }
-        report_coi_error(c_buf_write, res);
-    }
-    return true;
-}
-
-static void print_persistList_item(
-    const char *msg,
-   PersistData *cur_el
-)
-{
-    OFFLOAD_TRACE(4, "%s\n", msg);
-    OFFLOAD_TRACE(4, "    stack_cpu_addr = %p\n", cur_el->stack_cpu_addr);
-    OFFLOAD_TRACE(4, "    routine_id     = %d\n", cur_el->routine_id);
-    OFFLOAD_TRACE(4, "    thread_id      = %lld\n", cur_el->thread_id);
-    OFFLOAD_TRACE(4, "    stack_ptr_data = %p\n", cur_el->stack_ptr_data);
-    OFFLOAD_TRACE(4, "        MIC buffer = %p\n", cur_el->stack_ptr_data->mic_buf);
-    OFFLOAD_TRACE(4, "        MIC addr   = %p\n", cur_el->stack_ptr_data->mic_addr);
-    OFFLOAD_TRACE(4, "    cpu_stack_addr = %p\n", cur_el->cpu_stack_addr);
-}
-
-static mutex_t stack_memory_manager_lock;
-
-bool OffloadDescriptor::offload_stack_memory_manager(
-    const void * stack_begin,
-    int  routine_id,
-    int  buf_size,
-    int  align,
-    bool thread_specific_function_locals,
-    bool *is_new)
-{
-    //mutex_locker_t locker(stack_alloc_lock);
-    stack_memory_manager_lock.lock();
-
-    PersistData * new_el;
-    PersistDataList::iterator it_begin = m_device.m_persist_list.begin();
-    PersistDataList::iterator it_end;
-    int erase = 0;
-    uint64_t cur_thread_id = m_device.get_thread_id();
-
-    OFFLOAD_TRACE(3, "offload_stack_memory_manager("
-        "stack_begin=%p, routine_id=%d, buf_size=%d,"
-        "align=%d, thread_specific_function_locals=%d, bool=%p)\n",
-        stack_begin, routine_id, buf_size,
-        align, thread_specific_function_locals, is_new);
-    OFFLOAD_TRACE(3, "cur_thread_id=%lld\n", cur_thread_id);
-    *is_new = false;
-
-    for (PersistDataList::iterator it = m_device.m_persist_list.begin();
-        it != m_device.m_persist_list.end(); it++) {
-        PersistData cur_el = *it;
-
-        print_persistList_item("Current element in persist list:", &cur_el);
-        if (stack_begin > it->stack_cpu_addr) {
-            if (cur_thread_id == cur_el.thread_id) {
-                // this stack data must be destroyed
-                m_destroy_stack.push_front(cur_el.stack_ptr_data);
-                it_end = it;
-                erase++;
-                OFFLOAD_TRACE(3, "Current element below TOS: so delete\n");
-            }
-        }
-        else if (stack_begin == it->stack_cpu_addr) {
-            if (routine_id != it-> routine_id) {
-                // this stack data must be destroyed
-                // because the current function is a dynamic sibling
-                m_destroy_stack.push_front(cur_el.stack_ptr_data);
-                it_end = it;
-                erase++;
-                OFFLOAD_TRACE(3, "Current element is sibling: so delete\n");
-                break;
-            }
-            else if (!thread_specific_function_locals ||
-                cur_thread_id == cur_el.thread_id) {
-                // stack data is reused
-                m_stack_ptr_data = it->stack_ptr_data;
-                if (erase > 0) {
-                    // all obsolete stack sections must be erased from the list
-                    m_device.m_persist_list.erase(it_begin, ++it_end);
-                    m_in_datalen +=
-                        erase * sizeof(new_el->stack_ptr_data->mic_addr);
-                }
-                OFFLOAD_TRACE(3, "Reuse of stack buffer with addr %p\n",
-                                 m_stack_ptr_data->mic_addr);
-                stack_memory_manager_lock.unlock();
-                return true;
-            }
-        }
-        else if (stack_begin < it->stack_cpu_addr &&
-                 cur_thread_id == cur_el.thread_id) {
-                OFFLOAD_TRACE(3, "Current element is above TOS\n");
-            break;
-        }
-    }
-
-    if (erase > 0) {
-        // all obsolete stack sections must be erased from the list
-        m_device.m_persist_list.erase(it_begin, ++it_end);
-        m_in_datalen += erase * sizeof(new_el->stack_ptr_data->mic_addr);
-    }
-    // new stack table is created
-    new_el = new PersistData(stack_begin, routine_id, buf_size, cur_thread_id);
-    // create MIC buffer
-    COIRESULT res;
-    uint32_t buffer_flags = 0;
-
-    // create buffer with large pages if data length exceeds
-    // large page threshold
-    if (buf_size >= __offload_use_2mb_buffers) {
-        buffer_flags = COI_OPTIMIZE_HUGE_PAGE_SIZE;
-    }
-    res = COI::BufferCreate(buf_size,
-        COI_BUFFER_NORMAL,
-        buffer_flags,
-        0,
-        1,
-        &m_device.get_process(),
-        &new_el->stack_ptr_data->mic_buf);
-    if (res != COI_SUCCESS) {
-        if (m_status != 0) {
-            m_status->result = translate_coi_error(res);
-        }
-        else if (m_is_mandatory) {
-            report_coi_error(c_buf_create, res);
-        }
-        stack_memory_manager_lock.unlock();
-        return false;
-    }
-    // make buffer valid on the device.
-    res = COI::BufferSetState(new_el->stack_ptr_data->mic_buf,
-        m_device.get_process(),
-        COI_BUFFER_VALID,
-        COI_BUFFER_NO_MOVE,
-        0, 0, 0);
-    if (res != COI_SUCCESS) {
-        if (m_status != 0) {
-            m_status->result = translate_coi_error(res);
-        }
-        else if (m_is_mandatory) {
-            report_coi_error(c_buf_set_state, res);
-        }
-        stack_memory_manager_lock.unlock();
-        return false;
-    }
-    res = COI::BufferSetState(new_el->stack_ptr_data->mic_buf,
-        COI_PROCESS_SOURCE,
-        COI_BUFFER_INVALID,
-        COI_BUFFER_NO_MOVE,
-        0, 0, 0);
-    if (res != COI_SUCCESS) {
-        if (m_status != 0) {
-            m_status->result = translate_coi_error(res);
-        }
-        else if (m_is_mandatory) {
-            report_coi_error(c_buf_set_state, res);
-        }
-        stack_memory_manager_lock.unlock();
-        return false;
-    }
-    // persistence algorithm requires target stack initialy to be nullified
-    if (!nullify_target_stack(new_el->stack_ptr_data->mic_buf, buf_size)) {
-        stack_memory_manager_lock.unlock();
-        return false;
-    }
-
-    m_stack_ptr_data = new_el->stack_ptr_data;
-    init_mic_address(m_stack_ptr_data);
-    OFFLOAD_TRACE(3, "Allocating stack buffer with addr %p\n",
-                      m_stack_ptr_data->mic_addr);
-    m_device.m_persist_list.push_front(*new_el);
-    init_mic_address(new_el->stack_ptr_data);
-    *is_new = true;
-    
-    stack_memory_manager_lock.unlock();
-    return true;
-}
-
-// Search through persistent stack buffers
-// for the top-of-stack buffer for this thread
-char* OffloadDescriptor::get_this_threads_cpu_stack_addr(
-    const void * stack_begin,
-    int  routine_id,
-    bool thread_specific_function_locals
-)
-{
-    uint64_t cur_thread_id = m_device.get_thread_id();
-    char* matched = 0;
-    
-    OFFLOAD_TRACE(3, "get_this_threads_cpu_stack_addr("
-        "stack_begin=%p, routine_id=%d, thread_specific_function_locals=%d)\n",
-        stack_begin, routine_id, thread_specific_function_locals);
-    OFFLOAD_TRACE(3, "cur_thread_id=%lld\n", cur_thread_id);
-    
-    stack_memory_manager_lock.lock();
-    for (PersistDataList::iterator it = m_device.m_persist_list.begin();
-         it != m_device.m_persist_list.end(); it++)
-    {
-        PersistData cur_el = *it;
-        print_persistList_item("Current element in persist list:", &cur_el);
-        if (stack_begin == cur_el.stack_cpu_addr)
-        {
-            // For OpenMP shared function locals matching is done without
-            // regard to thread id. But, we return the last match, which 
-            // corresponds to the outer stack.
-            if (!thread_specific_function_locals)
-            {
-                matched = cur_el.cpu_stack_addr;
-                continue;
-            }
-            // For non-OpenMP shared function-local variables
-            // the thread-id must match
-            if (cur_thread_id == cur_el.thread_id)
-            {
-                matched = cur_el.cpu_stack_addr;
-                break;
-            }
-        }
-    }
-    stack_memory_manager_lock.unlock();
-    if (matched != 0)
-    {
-        OFFLOAD_TRACE(3, "get_this_threads_cpu_stack_addr() => %p\n", matched);
-        return matched;
-    }
-
-    OFFLOAD_TRACE(1,
-        "Could not find persistent data; expect Read/Write failure\n");
-    return 0;
-}
-
-// Search through persistent stack buffers
-// for the top-of-stack MIC buffer for this thread
-PtrData* OffloadDescriptor::get_this_threads_mic_stack_addr(
-    const void * stack_begin,
-    int  routine_id,
-    bool thread_specific_function_locals
-)
-{
-    uint64_t cur_thread_id = m_device.get_thread_id();
-    PtrData* matched = 0;
-    
-    OFFLOAD_TRACE(3, "get_this_threads_mic_stack_addr("
-        "stack_begin=%p, routine_id=%d, thread_specific_function_locals=%d)\n",
-        stack_begin, routine_id, thread_specific_function_locals);
-    OFFLOAD_TRACE(3, "cur_thread_id=%lld\n", cur_thread_id);
-    
-    stack_memory_manager_lock.lock();
-    for (PersistDataList::iterator it = m_device.m_persist_list.begin();
-         it != m_device.m_persist_list.end(); it++)
-    {
-        PersistData cur_el = *it;
-        print_persistList_item("Current element in persist list:", &cur_el);
-        if (stack_begin == cur_el.stack_cpu_addr)
-        {
-            // For OpenMP shared function locals matching is done without
-            // regard to thread id. But, we return the last match, which 
-            // corresponds to the outer stack.
-            if (!thread_specific_function_locals)
-            {
-                matched = cur_el.stack_ptr_data;
-                continue;
-            }
-            // For non-OpenMP shared function-local variables
-            // the thread-id must match
-            if (cur_thread_id == cur_el.thread_id)
-            {
-                matched = cur_el.stack_ptr_data;
-                break;
-            }
-        }
-    }
-    stack_memory_manager_lock.unlock();
-    if (matched != 0)
-    {
-        OFFLOAD_TRACE(3, "get_this_threads_mic_stack_addr() => %p\n", matched);
-        return matched;
-    }
-
-    OFFLOAD_TRACE(1,
-        "Could not find persistent data; expect Read/Write failure\n");
-    return 0;
-}
-
-void OffloadDescriptor::setup_use_device_ptr(int i)
-{
-    PtrData *ptr_data;
-    ArrDesc *dvp;
-    void *base;
-    if (m_vars_extra[i].type_src == c_dv_ptr) {
-        dvp = *static_cast<ArrDesc**>(m_vars[i].ptr);
-        base = reinterpret_cast<void*>(dvp->Base);
-    }
-    else {
-        base = *static_cast<void**>(m_vars[i].ptr);
-    }
-    if (m_vars[i].direction.in) {
-        int64_t *device_ptr;
-        bool    is_new = true;
-
-        find_device_ptr(device_ptr, base);
-
-        // Create a entry in targetptr table using device_ptr
-        // as lookup for later recover the host pointer
-        ptr_data = m_device.insert_targetptr_data(device_ptr,
-            0, is_new);
-
-        // Actually the base is a host pointer and cpu_addr is
-        // device pointer.  This is special case where the 2
-        // address usage is reversed to enable using existing
-        // PtrData structure instead of adding new fields.
-        ptr_data->mic_addr  = (uint64_t) base;
-
-        ptr_data->alloc_ptr_data_lock.unlock();
-
-        // Replace host pointer with device pointer
-        if (m_vars_extra[i].type_src == c_dv_ptr) {
-            dvp->Base = reinterpret_cast<dv_size>(device_ptr);
-        }
-        else {
-            *static_cast<void**>(m_vars[i].ptr) = device_ptr;
-        }
-    }
-    else if (m_vars[i].direction.out) {
-        // For use_device_ptr and out find associated host ptr
-        // and assign to host ptr
-        ptr_data = m_device.find_targetptr_data(base);
-        if (!ptr_data) {
-            LIBOFFLOAD_ERROR(c_no_ptr_data, base);
-            exit(1);
-        }
-        if (m_vars_extra[i].type_src == c_dv_ptr) {
-            dvp->Base = ptr_data->mic_addr;
-        }
-        else {
-            *static_cast<void**>(m_vars[i].ptr) =
-                reinterpret_cast<void*>(ptr_data->mic_addr);
-        }
-        m_device.remove_targetptr_data(
-            ptr_data->cpu_addr.start());
-    }
-}
-
-bool OffloadDescriptor::setup_descriptors(
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int vars_total,
-    int entry_id,
-    const void *stack_addr
-)
-{
-    COIRESULT res;
-    // To enable caching the CPU stack base address for stack variables
-    char* this_threads_cpu_stack_addr = 0;
-    // To properly deal with non-OpenMP threading and function-local variables
-    // For OpenMP threading we support all function-locals in shared mode only
-    bool thread_specific_function_locals = !omp_in_parallel();
-
-    OffloadTimer timer(get_timer_data(), c_offload_host_setup_buffers);
-    // make a copy of variable descriptors
-    m_vars_total = vars_total;
-    if (vars_total > 0) {
-        m_vars = (VarDesc*) malloc(m_vars_total * sizeof(VarDesc));
-        if (m_vars == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-        memcpy(m_vars, vars, m_vars_total * sizeof(VarDesc));
-        m_vars_extra = (VarExtra*) malloc(m_vars_total * sizeof(VarExtra));
-        if (m_vars_extra == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-    }
-
-    // dependencies
-    m_in_deps_allocated = m_vars_total + 1;   
-    m_in_deps = (COIEVENT*) malloc(sizeof(COIEVENT) * m_in_deps_allocated);
-    if (m_in_deps == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    if (m_vars_total > 0) {
-        m_out_deps_allocated = m_vars_total;
-        m_out_deps = (COIEVENT*) malloc(sizeof(COIEVENT) * m_out_deps_allocated);
-        if (m_out_deps == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-    }
-    // copyin/copyout data length
-    m_in_datalen = 0;
-    m_out_datalen = 0;
-
-    // First pass over variable descriptors
-    // - Calculate size of the input and output non-pointer data
-    // - Allocate buffers for input and output pointers
-    for (int i = 0; i < m_vars_total; i++) {
-        void*   alloc_base = NULL;
-        int64_t alloc_disp = 0;
-        int64_t alloc_size = 0;
-        bool    src_is_for_mic = (m_vars[i].direction.out ||
-                                  m_vars[i].into == NULL);
-        bool    src_is_for_host = (m_vars[i].direction.in ||
-                                  m_vars[i].into == NULL);
-        const char *var_sname = "";
-        if (vars2 != NULL && i < vars_total) {
-            if (vars2[i].sname != NULL) {
-                var_sname = vars2[i].sname;
-            }
-        }
-
-        // instead of m_vars[i].type.src we will use m_vars_extra[i].type_src
-        if (m_vars[i].type.src == c_extended_type) {
-            VarDescExtendedType *etype =
-                reinterpret_cast<VarDescExtendedType*>(m_vars[i].ptr);
-            m_vars_extra[i].type_src = etype->extended_type;
-            m_vars[i].ptr            = etype->ptr;
-        }
-        else {
-            m_vars_extra[i].type_src = m_vars[i].type.src;
-        }
-        // instead of m_vars[i].type.dst we will use m_vars_extra[i].type_dst
-        if (m_vars[i].type.dst == c_extended_type) {
-            VarDescExtendedType *etype =
-                reinterpret_cast<VarDescExtendedType*>(m_vars[i].into);
-            if (etype) {
-                m_vars_extra[i].type_dst = etype->extended_type;
-                m_vars[i].into           = etype->ptr;
-            }
-            else {
-                m_vars_extra[i].type_dst = m_vars_extra[i].type_src;
-            }
-        }
-        else {
-            m_vars_extra[i].type_dst = m_vars[i].type.dst;
-        }
-        OFFLOAD_TRACE(2, "   VarDesc %d, var=%s, %s, %s\n",
-            i, var_sname,
-            vardesc_direction_as_string[m_vars[i].direction.bits],
-            vardesc_type_as_string[m_vars_extra[i].type_src]);
-        if (vars2 != NULL && i < vars_total && vars2[i].dname != NULL) {
-            OFFLOAD_TRACE(2, "              into=%s, %s\n", vars2[i].dname,
-                vardesc_type_as_string[m_vars_extra[i].type_dst]);
-        }
-        OFFLOAD_TRACE(2,
-            "              type_src=%d, type_dstn=%d, direction=%d, "
-            "alloc_if=%d, free_if=%d, align=%d, mic_offset=%d, flags=0x%x, "
-            "offset=%lld, size=%lld, count/disp=%lld, ptr=%p, into=%p\n",
-            m_vars_extra[i].type_src,
-            m_vars_extra[i].type_dst,
-            m_vars[i].direction.bits,
-            m_vars[i].alloc_if,
-            m_vars[i].free_if,
-            m_vars[i].align,
-            m_vars[i].mic_offset,
-            m_vars[i].flags.bits,
-            m_vars[i].offset,
-            m_vars[i].size,
-            m_vars[i].count,
-            m_vars[i].ptr,
-            m_vars[i].into);
-        // If any varDesc flags bits set, show them
-        if (console_enabled >= 1 && m_vars[i].flags.bits != 0) {
-            trace_varDesc_flags(get_timer_data(), m_vars[i].flags);
-        }
-
-        // preallocated implies targetptr
-        if (m_vars[i].flags.preallocated) {
-            // targetptr preallocated alloc_if(1) may not be used with
-            // an in clause
-            if (m_vars[i].direction.in && m_vars[i].alloc_if) {
-                LIBOFFLOAD_ERROR(c_in_with_preallocated);
-                exit(1);
-            }
-            m_vars[i].flags.targetptr = 1;
-        }
-        if (m_vars[i].alloc != NULL) {
-            // array descriptor
-            const Arr_Desc *ap =
-                static_cast<const Arr_Desc*>(m_vars[i].alloc);
-
-            // debug dump
-            ARRAY_DESC_DUMP("    ", "ALLOC", ap, 0, 1);
-
-            __arr_data_offset_and_length(ap, alloc_disp, alloc_size);
-
-            alloc_base = reinterpret_cast<void*>(ap->base);
-        }
-
-        m_vars_extra[i].alloc = m_vars[i].alloc;
-        m_vars_extra[i].auto_data = 0;
-        m_vars_extra[i].cpu_disp = 0;
-        m_vars_extra[i].cpu_offset = 0;
-        m_vars_extra[i].src_data = 0;
-        m_vars_extra[i].read_rng_src = 0;
-        m_vars_extra[i].read_rng_dst = 0;
-        m_vars_extra[i].omp_last_event_type = c_last_not;        
-        // flag is_arr_ptr_el is 1 only for var_descs generated
-        // for c_data_ptr_array type
-        if (i < vars_total) {
-            m_vars_extra[i].is_arr_ptr_el = 0;
-        }
-        if (TYPE_IS_PTR_TO_PTR(m_vars_extra[i].type_src) ||
-            TYPE_IS_PTR_TO_PTR(m_vars_extra[i].type_dst) ||
-            m_vars[i].flags.is_pointer) {
-            m_vars_extra[i].pointer_offset = m_vars[i].offset;
-            m_vars[i].offset = 0;
-            m_in_datalen += sizeof(m_vars[i].offset);
-        }
-
-        switch (m_vars_extra[i].type_src) {
-            case c_data_ptr_array:
-                {
-                    const Arr_Desc *ap;
-                    const VarDesc3 *vd3 =
-                        static_cast<const VarDesc3*>(m_vars[i].ptr);
-                    int flags = vd3->array_fields;
-                    OFFLOAD_TRACE(2,
-                        "              pointer array flags = %04x\n", flags);
-                    OFFLOAD_TRACE(2,
-                        "              pointer array type is %s\n",
-                        vardesc_type_as_string[flags & 0x3f]);
-                    ap = static_cast<const Arr_Desc*>(vd3->ptr_array);
-                    ARRAY_DESC_DUMP("              ", "ptr array", ap,
-                                    m_vars[i].flags.is_pointer, 1);
-                    if (m_vars[i].into) {
-                        ap = static_cast<const Arr_Desc*>(m_vars[i].into);
-                        ARRAY_DESC_DUMP(
-                            "              ", "into array", ap, 0, 1);
-                    }
-                    if ((flags & (1<<flag_align_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->align_array);
-                        ARRAY_DESC_DUMP(
-                            "              ", "align array", ap, 0, 1);
-                    }
-                    if ((flags & (1<<flag_alloc_if_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->alloc_if_array);
-                        ARRAY_DESC_DUMP(
-                            "              ", "alloc_if array", ap, 0, 1);
-                    }
-                    if ((flags & (1<<flag_free_if_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->free_if_array);
-                        ARRAY_DESC_DUMP(
-                            "              ", "free_if array", ap, 0, 1);
-                    }
-                    if ((flags & (1<<flag_extent_start_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->extent_start);
-                        ARRAY_DESC_DUMP(
-                            "              ", "extent_start array", ap, 0, 1);
-                    } else if ((flags &
-                        (1<<flag_extent_start_is_scalar)) != 0) {
-                        OFFLOAD_TRACE(2,
-                            "              extent_start scalar = %d\n",
-                            (int64_t)vd3->extent_start);
-                    }
-                    if ((flags & (1<<flag_extent_elements_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>
-                            (vd3->extent_elements);
-                        ARRAY_DESC_DUMP("              ",
-                                        "extent_elements array", ap, 0, 1);
-                    } else if ((flags &
-                        (1<<flag_extent_elements_is_scalar)) != 0) {
-                        OFFLOAD_TRACE(2,
-                            "              extent_elements scalar = %d\n",
-                            (int64_t)vd3->extent_elements);
-                    }
-                    if ((flags & (1<<flag_into_start_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->into_start);
-                        ARRAY_DESC_DUMP(
-                            "              ", "into_start array", ap, 0, 1);
-                    } else if ((flags &
-                        (1<<flag_into_start_is_scalar)) != 0) {
-                        OFFLOAD_TRACE(2,
-                            "              into_start scalar = %d\n",
-                            (int64_t)vd3->into_start);
-                    }
-                    if ((flags & (1<<flag_into_elements_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->into_elements);
-                        ARRAY_DESC_DUMP(
-                            "              ", "into_elements array", ap, 0, 1);
-                    } else if ((flags &
-                        (1<<flag_into_elements_is_scalar)) != 0) {
-                        OFFLOAD_TRACE(2,
-                            "              into_elements scalar = %d\n",
-                            (int64_t)vd3->into_elements);
-                    }
-                    if ((flags & (1<<flag_alloc_start_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->alloc_start);
-                        ARRAY_DESC_DUMP(
-                            "              ", "alloc_start array", ap, 0, 1);
-                    } else if ((flags &
-                        (1<<flag_alloc_start_is_scalar)) != 0) {
-                        OFFLOAD_TRACE(2,
-                            "              alloc_start scalar = %d\n",
-                            (int64_t)vd3->alloc_start);
-                    }
-                    if ((flags & (1<<flag_alloc_elements_is_array)) != 0) {
-                        ap = static_cast<const Arr_Desc*>(vd3->alloc_elements);
-                        ARRAY_DESC_DUMP("              ",
-                                        "alloc_elements array", ap, 0, 1);
-                    } else if ((flags &
-                        (1<<flag_alloc_elements_is_scalar)) != 0) {
-                        OFFLOAD_TRACE(2,
-                            "              alloc_elements scalar = %d\n",
-                            (int64_t)vd3->alloc_elements);
-                    }
-                }
-                if (!gen_var_descs_for_pointer_array(i)) {
-                    return false;
-                }
-                break;
-
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var:
-                // In all uses later
-                // VarDesc.size will have the length of the data to be
-                // transferred
-                // VarDesc.disp will have an offset from base
-
-                if (m_vars[i].flags.is_non_cont_struct && src_is_for_host) {
-                    NonContigDesc *desc =
-                        static_cast<NonContigDesc*>(m_vars[i].ptr);
-                    noncont_struct_dump("    ", "DATA", desc);
-                    m_vars_extra[i].noncont_desc = desc;
-                    m_vars[i].ptr = reinterpret_cast<void*>(desc->base);
-                    m_vars[i].size = get_noncont_struct_size(desc);
-                    m_vars[i].disp = 0;                                                                 
-                }                                                              
-                else if (m_vars_extra[i].type_src == c_cean_var) {
-                    // array descriptor
-                    const Arr_Desc *ap =
-                        static_cast<const Arr_Desc*>(m_vars[i].ptr);
-
-                    // debug dump
-                    ARRAY_DESC_DUMP("", "IN/OUT", ap, 0, !src_is_for_mic);
-
-                    // offset and length are derived from the array descriptor
-                    __arr_data_offset_and_length(ap, m_vars[i].disp,
-                                                 m_vars[i].size);
-                    if (!is_arr_desc_contiguous(ap)) {
-                        m_vars[i].flags.is_noncont_src = 1;
-                        m_vars_extra[i].read_rng_src =
-                            init_read_ranges_arr_desc(ap);
-                    }
-                    // all necessary information about length and offset is
-                    // transferred in var descriptor. There is no need to send
-                    // array descriptor to the target side.
-                    m_vars[i].ptr = reinterpret_cast<void*>(ap->base);
-                }
-                else {
-                    m_vars[i].size *= m_vars[i].count;
-                    m_vars[i].disp = 0;
-                }
-
-                if (m_vars[i].direction.bits) {
-                    // make sure that transfer size > 0
-                    if (m_vars[i].size <= 0) {
-                        LIBOFFLOAD_ERROR(c_zero_or_neg_transfer_size);
-                        exit(1);
-                    }
-
-                    if (m_vars[i].flags.is_static) {
-                        PtrData *ptr_data;
-                        // find data associated with variable
-                        if (!find_ptr_data(ptr_data,
-                                           m_vars[i].ptr,
-                                           m_vars[i].disp,
-                                           m_vars[i].size,
-                                           false, false)) {
-                            return false;
-                        }
-
-                        if (ptr_data != 0) {
-                            // offset to base from the beginning of the buffer
-                            // memory
-                            m_vars[i].offset =
-                                (char*) m_vars[i].ptr -
-                                (char*) ptr_data->cpu_addr.start();
-                        }
-                        else {
-                            m_vars[i].flags.is_static = false;
-                            if (m_vars[i].into == NULL) {
-                                m_vars[i].flags.is_static_dstn = false;
-                            }
-                        }
-                        m_vars_extra[i].src_data = ptr_data;
-                    }
-
-                    if (m_vars[i].direction.in &&
-                        !m_vars[i].flags.is_static &&
-                        !m_vars[i].flags.is_stack_buf) {
-                        m_in_datalen += m_vars[i].size;
-
-                        // for non-static target destination defined as CEAN
-                        // expression we pass to target its size and dist
-                        if (m_vars[i].into == NULL &&
-                            m_vars_extra[i].type_src == c_cean_var) {
-                            m_in_datalen += 2 * sizeof(uint64_t);
-                        }
-                        m_need_runfunction = true;
-                    }
-                    if (m_vars[i].direction.out &&
-                        !m_vars[i].flags.is_static &&
-                        !m_vars[i].flags.is_stack_buf) {
-                        m_out_datalen += m_vars[i].size;
-                        m_need_runfunction = true;
-                    }
-                }
-                if (m_is_openmp && src_is_for_host &&
-                    !m_vars[i].flags.is_device_ptr) {
-                    if (m_vars[i].flags.is_static) {
-                        PtrData *ptr_data = m_vars_extra[i].src_data;
-                        // Static data is transferred either by omp target
-                        // update construct which passes zeros for
-                        // alloc_if and free_if or by always modifier.
-                        // Implicit openmp reference is transfered also
-                        // if its reference count is equal to 1
-                        if (ptr_data && 
-                            IS_OPENMP_IMPLICIT_OR_LINK(ptr_data->var_alloc_type)) {
-                            if (m_vars[i].alloc_if) {
-                                ptr_data->add_reference();
-                            }
-
-                            if (!m_vars[i].flags.always_copy &&
-                                (m_vars[i].alloc_if || m_vars[i].free_if) &&
-                                ptr_data->get_reference() != 1) {
-                                m_vars[i].direction.bits = c_parameter_nocopy;
-                            }
-                        }
-                        else if (
-                            !m_vars[i].flags.always_copy &&
-                            (m_vars[i].alloc_if || m_vars[i].free_if)) {
-                                m_vars[i].direction.bits = c_parameter_nocopy;
-                        }
-                    }
-                    else {
-                        AutoData *auto_data;
-                        if (m_vars[i].alloc_if) {
-                            auto_data = m_device.insert_auto_data(
-                                m_vars[i].ptr, m_vars[i].size);
-                            auto_data->add_reference();
-                        }
-                        else {
-                            // TODO: what should be done if var is not in
-                            // the table?
-                            auto_data = m_device.find_auto_data(
-                                m_vars[i].ptr);
-                        }
-
-                        // For automatic variables data is transferred:
-                        // - if always modifier is used OR
-                        // - if alloc_if == 0 && free_if == 0 OR
-                        // - if reference count is 1
-                        if (!m_vars[i].flags.always_copy &&
-                            (m_vars[i].alloc_if || m_vars[i].free_if) &&
-                            auto_data != 0 &&
-                            auto_data->get_reference() != 1) {
-                                m_vars[i].direction.bits = c_parameter_nocopy;
-                        }
-
-                        // save data for later use
-                        m_vars_extra[i].auto_data = auto_data;
-                    }
-                }
-                break;
-
-            case c_dv:
-                if (m_vars[i].flags.use_device_ptr) {
-                    setup_use_device_ptr(i);
-                    break;
-                }
-                else if (m_vars[i].direction.bits ||
-                    m_vars[i].alloc_if ||
-                    m_vars[i].free_if) {
-                    ArrDesc *dvp = static_cast<ArrDesc*>(m_vars[i].ptr);
-
-                    // debug dump
-                    __dv_desc_dump("IN/OUT", dvp);
-
-                    // send dope vector contents excluding base
-                    m_in_datalen += m_vars[i].size - sizeof(uint64_t);
-                    m_need_runfunction = true;
-                }
-                break;
-
-            case c_string_ptr:
-            case c_string_ptr_ptr:
-                if ((m_vars[i].direction.bits ||
-                     m_vars[i].alloc_if ||
-                     m_vars[i].free_if) &&
-                    m_vars[i].size == 0) {
-                    m_vars[i].size = 1;
-                    m_vars[i].count =
-                        strlen(*static_cast<char**>(m_vars[i].ptr)) + 1;
-                }
-                /* fallthru */
-
-            case c_data_ptr:
-            case c_data_ptr_ptr:
-                if (m_vars[i].flags.is_stack_buf &&
-                    !m_vars[i].direction.bits &&
-                    m_vars[i].alloc_if) {
-                    // this var_desc is for stack buffer
-                    bool is_new;
-
-                    if (!offload_stack_memory_manager(
-                            stack_addr, entry_id,
-                            m_vars[i].count, m_vars[i].align,
-                            thread_specific_function_locals, &is_new)) {
-                        return false;
-                    }
-                    if (is_new) {
-                        m_compute_buffers.push_back(
-                            m_stack_ptr_data->mic_buf);
-                        m_device.m_persist_list.front().cpu_stack_addr =
-                            static_cast<char*>(m_vars[i].ptr);
-                        PersistData *new_el = &m_device.m_persist_list.front();
-                        print_persistList_item(
-                            "New element in persist list:",
-                            new_el);
-                    }
-                    else {
-                        m_vars[i].flags.sink_addr = 1;
-                        m_in_datalen += sizeof(m_stack_ptr_data->mic_addr);
-                        if (thread_specific_function_locals) {
-                            m_stack_ptr_data = get_this_threads_mic_stack_addr(
-                                stack_addr, entry_id,
-                                thread_specific_function_locals);
-                        }
-                    }
-                    m_vars[i].size = m_destroy_stack.size();
-                    m_vars_extra[i].src_data = m_stack_ptr_data;
-
-                    // need to add or remove references for stack buffer at target
-                    if (is_new || m_destroy_stack.size()) {
-                        m_need_runfunction = true;
-                    }
-
-                    break;
-                }
-                /* fallthru */
-
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr:   
-                if (m_vars[i].flags.is_non_cont_struct && src_is_for_host) {
-                     NonContigDesc *desc =
-                        static_cast<NonContigDesc*>(m_vars[i].ptr);
-                    noncont_struct_dump("    ", "PTR", desc);
-                    m_vars_extra[i].noncont_desc = desc;
-                    m_vars[i].ptr = reinterpret_cast<void*>(desc->base);
-                    m_vars[i].disp = 0;
-                }
-                else if (m_vars_extra[i].type_src == c_cean_var_ptr ||
-                         m_vars_extra[i].type_src == c_cean_var_ptr_ptr) {
-                    // array descriptor
-                    const Arr_Desc *ap =
-                        static_cast<const Arr_Desc*>(m_vars[i].ptr);
-
-                    // debug dump
-                    ARRAY_DESC_DUMP("", "IN/OUT", ap, 1, !src_is_for_mic);
-
-                    // offset and length are derived from the array descriptor
-                    __arr_data_offset_and_length(ap, m_vars[i].disp,
-                                                 m_vars[i].size);
-
-                    if (!is_arr_desc_contiguous(ap)) {
-                        m_vars[i].flags.is_noncont_src = 1;
-                        m_vars_extra[i].read_rng_src =
-                            init_read_ranges_arr_desc(ap);
-                    }
-                    // all necessary information about length and offset is
-                    // transferred in var descriptor. There is no need to send
-                    // array descriptor to the target side.
-                    m_vars[i].ptr = reinterpret_cast<void*>(ap->base);
-                }
-                else if (m_vars_extra[i].type_src == c_dv_ptr) {
-                    // need to send DV to the device unless it is 'nocopy'
-                    if (m_vars[i].direction.bits ||
-                        m_vars[i].alloc_if ||
-                        m_vars[i].free_if) {
-                        ArrDesc *dvp = *static_cast<ArrDesc**>(m_vars[i].ptr);
-
-                        // debug dump
-                        __dv_desc_dump("IN/OUT", dvp);
-
-                        // for use_device_ptr don't need to change
-                        // OUT direction to IN direction
-                        if (!m_vars[i].flags.use_device_ptr) {
-                            m_vars[i].direction.bits = c_parameter_in;
-                        }
-                    }
-
-                    // no displacement
-                    m_vars[i].disp = 0;
-                }
-                else {
-                    // For "use_device_ptr" if direction is "in" then need to  
-                    // find the associated device pointer and replace the host 
-                    // pointer with device pointer.  Also save the host pointer
-                    // to restore when "out" is encountered. 
-                    // For "out" find the host pointer associated with the
-                    // device pointer and restore the host pointer
-                    if (m_vars[i].flags.use_device_ptr && src_is_for_host) {
-                          setup_use_device_ptr(i);
-                          break;
-                    }
-
-                    // c_data_ptr or c_string_ptr
-                    m_vars[i].size *= m_vars[i].count;
-                    m_vars[i].disp = 0;
-                }
-
-                if (m_vars[i].direction.bits ||
-                    m_vars[i].alloc_if ||
-                    m_vars[i].free_if) {
-                    PtrData *ptr_data;
-
-                    // check that buffer length > 0
-                    if (m_vars[i].alloc_if &&
-                        m_vars[i].disp + m_vars[i].size <
-                        (m_is_openmp ? 0 : 1)) {
-                        LIBOFFLOAD_ERROR(c_zero_or_neg_ptr_len);
-                        exit(1);
-                    }
-
-                    // base address
-                    void *base = *static_cast<void**>(m_vars[i].ptr);
-
-                    // allocate buffer if we have no INTO and don't need
-                    // allocation for the ptr at target
-                    if (src_is_for_mic) {
-                        if (m_vars[i].flags.is_stack_buf) {
-                            // for stack persistent objects ptr data is created
-                            // by var_desc with number 0.
-                            // Its ptr_data is stored at m_stack_ptr_data
-                            ptr_data = m_stack_ptr_data;
-                        }
-                        else if (m_vars[i].alloc_if) {
-                            if (m_vars[i].flags.preallocated) {
-                                m_out_datalen += sizeof(void*);
-                                m_need_runfunction = true;
-                                break;
-                            }
-                            // add new entry
-                            if (!alloc_ptr_data(
-                                    ptr_data,
-                                    reinterpret_cast<char *>(base) + alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_disp : m_vars[i].disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_size : m_vars[i].size,
-                                    alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        0 : m_vars[i].align,
-                                    m_vars[i].flags.targetptr,
-                                    0,
-                                    m_vars[i].flags.pin)) {
-                                return false;
-                            }
-                            if (m_vars[i].flags.targetptr) {
-                                if (!init_mic_address(ptr_data)) {
-                                    return false;
-                                }
-                                *static_cast<void**>(m_vars[i].ptr) = base =
-                                  reinterpret_cast<void*>(ptr_data->mic_addr);
-                            }
-                            if (ptr_data->add_reference() == 0 &&
-                                ptr_data->mic_buf != 0) {
-                                // add buffer to the list of buffers that
-                                // are passed to dispatch call
-                                m_compute_buffers.push_back(
-                                    ptr_data->mic_buf);
-                            }
-                            else if (!m_vars[i].flags.pin &&
-                                     !m_vars[i].flags.preallocated) {
-                                // will send buffer address to device
-                                m_vars[i].flags.sink_addr = 1;
-                                m_in_datalen += sizeof(ptr_data->mic_addr);
-                            }
-
-                            if (!m_vars[i].flags.pin &&
-                                !ptr_data->is_static) {
-                                // need to add reference for buffer
-                                m_need_runfunction = true;
-                            }
-                        }
-                        else {
-                            bool error_if_not_found = true;
-                            if (m_is_openmp) {
-                                // For omp target update variable is ignored
-                                // if it does not exist.
-                                if (m_vars[i].flags.always_copy ||
-                                    (!m_vars[i].alloc_if &&
-                                     !m_vars[i].free_if)) {
-                                    error_if_not_found = false;
-                                }
-                            }
-
-                            // use existing association from pointer table
-                            if (!find_ptr_data(ptr_data,
-                                               base,
-                                               m_vars[i].disp,
-                                               m_vars[i].size,
-                                               m_vars[i].flags.targetptr,
-                                               error_if_not_found)) {
-                                return false;
-                            }
-
-                            if (m_is_openmp) {
-                                // make var nocopy if it does not exist
-                                if (ptr_data == 0) {
-                                    m_vars[i].direction.bits =
-                                        c_parameter_nocopy;
-                                }
-                            }
-
-                            if (ptr_data != 0) {
-                                m_vars[i].flags.sink_addr = 1;
-                                m_in_datalen += sizeof(ptr_data->mic_addr);
-                            }
-                        }
-
-                        if (ptr_data != 0) {
-
-                            if (ptr_data->alloc_disp != 0) {
-                                m_vars[i].flags.alloc_disp = 1;
-                                m_in_datalen += sizeof(alloc_disp);
-                            }
-
-                            if (m_vars[i].flags.sink_addr) {
-                                // get buffers's address on the sink
-                                if (!init_mic_address(ptr_data)) {
-                                    return false;
-                                }
-
-                                m_in_datalen += sizeof(ptr_data->mic_addr);
-                            }
-
-                            if (!m_vars[i].flags.pin &&
-                                !ptr_data->is_static && m_vars[i].free_if) {
-                                // need to decrement buffer reference on target
-                                m_need_runfunction = true;
-                            }
-
-                            // offset to base from the beginning of the buffer
-                            // memory
-                            m_vars[i].offset = (char*) base -
-                                (char*) ptr_data->cpu_addr.start();
-
-                            // copy other pointer properties to var descriptor
-                            m_vars[i].mic_offset = ptr_data->mic_offset;
-                            m_vars[i].flags.is_static = ptr_data->is_static;
-                        }
-                    }
-                    else {
-                        if (!find_ptr_data(ptr_data,
-                                           base,
-                                           m_vars[i].disp,
-                                           m_vars[i].size,
-                                           false, false)) {
-                            return false;
-                        }
-                        if (ptr_data) {
-                            m_vars[i].offset =
-                                (char*) base -
-                                (char*) ptr_data->cpu_addr.start();
-                        }
-                    }
-
-                    if (m_is_openmp) {
-                        if (m_vars[i].flags.use_device_ptr) {
-                            setup_use_device_ptr(i);
-                        }
-                        // for TO transfer of stack buffer's variable
-                        if (src_is_for_host && m_vars[i].flags.is_stack_buf) {
-                            AutoData *auto_data;
-                            char *base = *static_cast<char**>(m_vars[i].ptr);
-                            if (m_vars[i].alloc_if) {
-                                auto_data =m_device.insert_auto_data(
-                                   base + m_vars[i].disp,
-                                    m_vars[i].size);
-                                auto_data->add_reference();                          
-                            }
-                            else {
-                                auto_data = m_device.find_auto_data(
-                                    base + m_vars[i].disp);
-                            }                           
-                            // save data for later use
-                            m_vars_extra[i].auto_data = auto_data;
-                            
-                            // For automatic variables
-                            // data is transferred:
-                            // - if always modifier is used OR
-                            // - if alloc_if == 0 && free_if == 0 OR
-                            // - if reference count is 1
-                            if (!m_vars[i].flags.always_copy &&
-                                (m_vars[i].alloc_if ||
-                                m_vars[i].free_if) &&
-                                auto_data != 0 &&
-                                auto_data->get_reference() != 1) {
-                                    m_vars[i].direction.bits =
-                                        c_parameter_nocopy;
-                            }
-                        }
-                        // for FROM transfer of global pointer variable
-                        // FROM transfer of stack buffer's variable
-                        // is treated at INTO branch
-                        else if (src_is_for_mic && 
-                            !m_vars[i].flags.is_stack_buf) {
-                                // data is transferred only if
-                                // alloc_if == 0 && free_if == 0
-                                // or reference count is 1
-                                if (!m_vars[i].flags.always_copy &&
-                                    (m_vars[i].alloc_if ||
-                                    m_vars[i].free_if) &&
-                                    ptr_data &&
-                                    ptr_data->get_reference() != 1)
-                                {
-                                    m_vars[i].direction.bits =
-                                        c_parameter_nocopy;
-                                }
-                        }
-                    }
-                    // save pointer data
-                    m_vars_extra[i].src_data = ptr_data;
-                }
-                break;
-
-            case c_func_ptr:
-            case c_func_ptr_ptr:
-                if (m_vars[i].direction.in) {
-                    m_in_datalen += __offload_funcs.max_name_length();
-                }
-                if (m_vars[i].direction.out) {
-                    m_out_datalen += __offload_funcs.max_name_length();
-                }
-                m_need_runfunction = true;
-                break;
-
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-                ArrDesc *dvp;
-                if (m_vars[i].flags.is_non_cont_struct) {
-                    NonContigDesc *desc =
-                        static_cast<NonContigDesc*>(m_vars[i].ptr);
-                    noncont_struct_dump("    ", "DV-DATA", desc);
-                    dvp = reinterpret_cast<ArrDesc*>(desc->base);
-                }               
-                else if (VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_src)) {
-                    const Arr_Desc *ap;
-                    ap = static_cast<const Arr_Desc*>(m_vars[i].ptr);
-
-                    dvp = (m_vars_extra[i].type_src == c_dv_data_slice) ?
-                          reinterpret_cast<ArrDesc*>(ap->base) :
-                          *reinterpret_cast<ArrDesc**>(ap->base);
-                }
-                else {
-                    dvp = (m_vars_extra[i].type_src == c_dv_data) ?
-                          static_cast<ArrDesc*>(m_vars[i].ptr) :
-                          *static_cast<ArrDesc**>(m_vars[i].ptr);
-                }
-
-                // if allocatable dope vector isn't allocated don't
-                // transfer its data
-                if (!__dv_is_allocated(dvp)) {
-                    m_vars[i].direction.bits = c_parameter_nocopy;
-                    m_vars[i].alloc_if = 0;
-                    m_vars[i].free_if = 0;
-                }
-                if (m_vars[i].direction.bits ||
-                    m_vars[i].alloc_if ||
-                    m_vars[i].free_if) {
-                    const Arr_Desc *ap;
-
-                    if (VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_src)) {
-                        ap = static_cast<const Arr_Desc*>(m_vars[i].ptr);
-
-                        // debug dump
-                        ARRAY_DESC_DUMP("", "IN/OUT", ap, 0, !src_is_for_mic);
-                    }
-                    if (!__dv_is_contiguous(dvp)) {
-                        m_vars[i].flags.is_noncont_src = 1;
-                        m_vars_extra[i].read_rng_src =
-                            init_read_ranges_dv(dvp);
-                    }
-
-                    // size and displacement
-                    if (VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_src)) {
-                        // offset and length are derived from the
-                        // array descriptor
-                        __arr_data_offset_and_length(ap,
-                                                     m_vars[i].disp,
-                                                     m_vars[i].size);
-                        if (m_vars[i].direction.bits) {
-                            if (!is_arr_desc_contiguous(ap)) {
-                                if (m_vars[i].flags.is_noncont_src) {
-                                    LIBOFFLOAD_ERROR(c_slice_of_noncont_array);
-                                    return false;
-                                }
-                                m_vars[i].flags.is_noncont_src = 1;
-                                m_vars_extra[i].read_rng_src =
-                                    init_read_ranges_arr_desc(ap);
-                            }
-                        }
-                    }
-                    else {
-                        if (m_vars[i].flags.has_length) {
-                            m_vars[i].size =
-                                __dv_data_length(dvp, m_vars[i].count);
-                        }
-                        else {
-                            m_vars[i].size = __dv_data_length(dvp);
-                        }
-                        m_vars[i].disp = 0;
-                    }
-
-                    // check that length >= 0
-                    if (m_vars[i].alloc_if &&
-                        (m_vars[i].disp + m_vars[i].size < 0)) {
-                        LIBOFFLOAD_ERROR(c_zero_or_neg_ptr_len);
-                        exit(1);
-                    }
-
-                    // base address
-                    void *base = reinterpret_cast<void*>(dvp->Base);
-                    PtrData *ptr_data;
-
-                    // allocate buffer if we have no INTO and don't need
-                    // allocation for the ptr at target
-                    if (src_is_for_mic) {
-                        if (m_vars[i].alloc_if) {
-                            // add new entry
-                            if (!alloc_ptr_data(
-                                    ptr_data,
-                                    reinterpret_cast<char *>(base) + alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_disp : m_vars[i].disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_size : m_vars[i].size,
-                                    alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        0 : m_vars[i].align,
-                                    m_vars[i].flags.targetptr,
-                                    m_vars[i].flags.preallocated,
-                                    m_vars[i].flags.pin)) {
-                                return false;
-                            }
-
-                            if (ptr_data->add_reference() == 0 &&
-                                ptr_data->mic_buf != 0) {
-                                // add buffer to the list of buffers
-                                // that are passed to dispatch call
-                                m_compute_buffers.push_back(
-                                    ptr_data->mic_buf);
-                            }
-                            else {
-                                // will send buffer address to device
-                                m_vars[i].flags.sink_addr = 1;
-                            }
-
-                            if (!ptr_data->is_static) {
-                                // need to add reference for buffer
-                                m_need_runfunction = true;
-                            }
-                        }
-                        else {
-                            bool error_if_not_found = true;
-                            if (m_is_openmp) {
-                                // For omp target update variable is ignored
-                                // if it does not exist.
-                                if (m_vars[i].flags.always_copy ||
-                                    (!m_vars[i].alloc_if &&
-                                     !m_vars[i].free_if)) {
-                                    error_if_not_found = false;
-                                }
-                            }
-
-                            // use existing association from pointer table
-                            if (!find_ptr_data(ptr_data,
-                                               base,
-                                               m_vars[i].disp,
-                                               m_vars[i].size,
-                                               m_vars[i].flags.targetptr,
-                                               error_if_not_found)) {
-                                return false;
-                            }
-
-                            if (m_is_openmp) {
-                                // make var nocopy if it does not exist
-                                if (ptr_data == 0) {
-                                    m_vars[i].direction.bits =
-                                        c_parameter_nocopy;
-                                }
-                            }
-
-                            if (ptr_data != 0) {
-                                // need to update base in dope vector on device
-                                m_vars[i].flags.sink_addr = 1;
-                            }
-                        }
-
-                        if (ptr_data != 0) {
-                            if (m_is_openmp) {
-                                // data is transferred if
-                                // - if always modifier is used OR
-                                // - if alloc_if == 0 && free_if == 0 OR
-                                // - if reference count is 1
-                                if (!m_vars[i].flags.always_copy &&
-                                    (m_vars[i].alloc_if ||
-                                     m_vars[i].free_if) &&
-                                    ptr_data->get_reference() != 1) {
-                                    m_vars[i].direction.bits =
-                                        c_parameter_nocopy;
-                                }
-                            }
-
-                            if (ptr_data->alloc_disp != 0) {
-                                m_vars[i].flags.alloc_disp = 1;
-                                m_in_datalen += sizeof(alloc_disp);
-                            }
-
-                            if (m_vars[i].flags.sink_addr) {
-                                // get buffers's address on the sink
-                                if (!init_mic_address(ptr_data)) {
-                                    return false;
-                                }
-
-                                m_in_datalen += sizeof(ptr_data->mic_addr);
-                            }
-
-                            if (!ptr_data->is_static && m_vars[i].free_if) {
-                                // need to decrement buffer reference on target
-                                m_need_runfunction = true;
-                            }
-
-                            // offset to base from the beginning of the buffer
-                            // memory
-                            m_vars[i].offset =
-                                (char*) base -
-                                (char*) ptr_data->cpu_addr.start();
-
-                            // copy other pointer properties to var descriptor
-                            m_vars[i].mic_offset = ptr_data->mic_offset;
-                            m_vars[i].flags.is_static = ptr_data->is_static;
-                        }
-                    }
-                    else { // !src_is_for_mic
-                        if (!find_ptr_data(ptr_data,
-                                           base,
-                                           m_vars[i].disp,
-                                           m_vars[i].size,
-                                           false, false)) {
-                            return false;
-                        }
-                        m_vars[i].offset = !ptr_data ? 0 :
-                                (char*) base -
-                                (char*) ptr_data->cpu_addr.start();
-                    }
-
-                    // save pointer data
-                    m_vars_extra[i].src_data = ptr_data;
-                }
-                break;
-
-            default:
-                LIBOFFLOAD_ERROR(c_unknown_var_type, m_vars_extra[i].type_src);
-                LIBOFFLOAD_ABORT;
-        }
-        if (m_vars_extra[i].type_src == c_data_ptr_array) {
-            continue;
-        }
-
-        if (src_is_for_mic && m_vars[i].flags.is_stack_buf) {
-            if (this_threads_cpu_stack_addr == 0) {
-                this_threads_cpu_stack_addr =
-                    get_this_threads_cpu_stack_addr(
-                        stack_addr, entry_id, thread_specific_function_locals);
-            }
-            m_vars[i].offset = static_cast<char*>
-                                   (m_vars[i].ptr) -
-                                    this_threads_cpu_stack_addr;
-        }
-        // if source is used at CPU save its offset and disp
-        if (m_vars[i].into == NULL || m_vars[i].direction.in) {
-            m_vars_extra[i].cpu_offset = m_vars[i].offset;
-            m_vars_extra[i].cpu_disp   = m_vars[i].disp;
-        }
-
-        // If "into" is define we need to do the similar work for it
-        if (!m_vars[i].into) {
-            continue;
-        }
-
-        int64_t into_disp =0, into_offset = 0;
-
-        switch (m_vars_extra[i].type_dst) {
-            case c_data_ptr_array:
-                break;
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var: {
-                int64_t size = m_vars[i].size;
-
-                if (m_vars[i].flags.is_non_cont_struct && src_is_for_mic) {
-                    NonContigDesc *desc =
-                        static_cast<NonContigDesc*>(m_vars[i].into);
-                    noncont_struct_dump("", "INTO DATA", desc);
-                    m_vars_extra[i].noncont_desc = desc;
-                    m_vars[i].into = reinterpret_cast<void*>(desc->base);
-                    size = get_noncont_struct_size(desc);
-                    into_disp = 0;
-                }
-                else if (m_vars_extra[i].type_dst == c_cean_var) {
-                    // array descriptor
-                    const Arr_Desc *ap =
-                        static_cast<const Arr_Desc*>(m_vars[i].into);
-
-                    // debug dump
-                    ARRAY_DESC_DUMP("    ", "INTO", ap, 0, src_is_for_mic);
-
-                    // offset and length are derived from the array descriptor
-                    __arr_data_offset_and_length(ap, into_disp, size);
-
-                    if (!is_arr_desc_contiguous(ap)) {
-                        m_vars[i].flags.is_noncont_dst = 1;
-                        m_vars_extra[i].read_rng_dst =
-                            init_read_ranges_arr_desc(ap);
-                        if (!cean_ranges_match(
-                            m_vars_extra[i].read_rng_src,
-                            m_vars_extra[i].read_rng_dst)) {
-                            LIBOFFLOAD_ERROR(c_ranges_dont_match);
-                            exit(1);
-                        }
-                    }
-                    m_vars[i].into = reinterpret_cast<void*>(ap->base);
-                }
-
-                int64_t size_src = m_vars_extra[i].read_rng_src &&
-                                   !m_vars[i].flags.is_non_cont_struct ?
-                    cean_get_transf_size(m_vars_extra[i].read_rng_src) :
-                    m_vars[i].size;
-                int64_t size_dst = m_vars_extra[i].read_rng_dst ?
-                    cean_get_transf_size(m_vars_extra[i].read_rng_dst) :
-                    size;
-                // It's supposed that "into" size must be not less
-                // than src size
-                if (size_src > size_dst) {
-                    LIBOFFLOAD_ERROR(c_different_src_and_dstn_sizes,
-                                     size_src, size_dst);
-                    exit(1);
-                }
-
-                if (m_vars[i].direction.bits) {
-                    if (m_vars[i].flags.is_static_dstn) {
-                        PtrData *ptr_data;
-
-                        // find data associated with variable
-                        if (!find_ptr_data(ptr_data, m_vars[i].into,
-                                           into_disp, size, false, false)) {
-                            return false;
-                        }
-                        if (ptr_data != 0) {
-                            // offset to base from the beginning of the buffer
-                            // memory
-                            into_offset =
-                                (char*) m_vars[i].into -
-                                (char*) ptr_data->cpu_addr.start();
-                        }
-                        else {
-                            m_vars[i].flags.is_static_dstn = false;
-                        }
-                        m_vars_extra[i].dst_data = ptr_data;
-                    }
-                }
-
-                if (m_vars[i].direction.in &&
-                    !m_vars[i].flags.is_static_dstn) {
-                    m_in_datalen += m_vars[i].size;
-
-                    // for non-static target destination defined as CEAN
-                    // expression we pass to target its size and dist
-                    if (m_vars_extra[i].type_dst == c_cean_var) {
-                        m_in_datalen += 2 * sizeof(uint64_t);
-                    }
-                    m_need_runfunction = true;
-                }
-
-                if (m_is_openmp && src_is_for_mic) {
-                    if (m_vars[i].flags.is_static_dstn) {
-                        // Static data is transferred either by omp target
-                        // update construct which passes zeros for
-                        // alloc_if and free_if or by always modifier.
-                        if (!m_vars[i].flags.always_copy &&
-                            (m_vars[i].alloc_if || m_vars[i].free_if)) {
-                                m_vars[i].direction.bits = c_parameter_nocopy;
-                        }
-                    }
-                    else {
-                        AutoData *auto_data;
-                        if (m_vars[i].alloc_if) {
-                            auto_data = m_device.insert_auto_data(
-                                m_vars[i].into, size_dst);
-                            auto_data->add_reference();
-                        }
-                        else {
-                            // TODO: what should be done if var is not in
-                            // the table?
-                            auto_data = m_device.find_auto_data(
-                                m_vars[i].into);
-                        }
-
-                        // For automatic variables data is transferred:
-                        // - if always modifier is used OR
-                        // - if alloc_if == 0 && free_if == 0 OR
-                        // - if reference count is 1
-                        if (!m_vars[i].flags.always_copy &&
-                            (m_vars[i].alloc_if || m_vars[i].free_if) &&
-                            (auto_data == 0 ||
-                            auto_data->get_reference() != 1)) {
-                                m_vars[i].direction.bits = c_parameter_nocopy;
-                        }
-                        // save data for later use
-                        m_vars_extra[i].auto_data = auto_data;
-                    }
-                }
-                break;
-            }
-
-            case c_dv:
-                if (m_vars[i].direction.bits ||
-                    m_vars[i].alloc_if ||
-                    m_vars[i].free_if) {
-                    ArrDesc *dvp = static_cast<ArrDesc*>(m_vars[i].into);
-
-                    // debug dump
-                    __dv_desc_dump("INTO", dvp);
-
-                    // send dope vector contents excluding base
-                    m_in_datalen += m_vars[i].size - sizeof(uint64_t);
-                    m_need_runfunction = true;
-                }
-                break;
-
-            case c_string_ptr:
-            case c_data_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr: {
-                int64_t size = m_vars[i].size;
-
-                if (m_vars_extra[i].type_dst == c_cean_var_ptr ||
-                    m_vars_extra[i].type_dst == c_cean_var_ptr_ptr) {
-                    // array descriptor
-                    const Arr_Desc *ap =
-                        static_cast<const Arr_Desc*>(m_vars[i].into);
-
-                    // debug dump
-                    ARRAY_DESC_DUMP("    ", "INTO", ap, 1, src_is_for_mic);
-
-                    // offset and length are derived from the array descriptor
-                    __arr_data_offset_and_length(ap, into_disp, size);
-
-                    if (!is_arr_desc_contiguous(ap)) {
-                        m_vars[i].flags.is_noncont_src = 1;
-                        m_vars_extra[i].read_rng_dst =
-                            init_read_ranges_arr_desc(ap);
-                        if (!cean_ranges_match(
-                            m_vars_extra[i].read_rng_src,
-                            m_vars_extra[i].read_rng_dst)) {
-                            LIBOFFLOAD_ERROR(c_ranges_dont_match);
-                        }
-                    }
-                    m_vars[i].into = reinterpret_cast<char**>(ap->base);
-                }
-                else if (m_vars_extra[i].type_dst == c_dv_ptr) {
-                    // need to send DV to the device unless it is 'nocopy'
-                    if (m_vars[i].direction.bits ||
-                        m_vars[i].alloc_if ||
-                        m_vars[i].free_if) {
-                        ArrDesc *dvp = *static_cast<ArrDesc**>(m_vars[i].into);
-
-                        // debug dump
-                        __dv_desc_dump("INTO", dvp);
-
-                        m_vars[i].direction.bits = c_parameter_in;
-                    }
-                }
-
-                int64_t size_src = m_vars_extra[i].read_rng_src &&
-                                   !m_vars[i].flags.is_non_cont_struct ?
-                    cean_get_transf_size(m_vars_extra[i].read_rng_src) :
-                    m_vars[i].size;
-                int64_t size_dst = m_vars_extra[i].read_rng_dst ?
-                    cean_get_transf_size(m_vars_extra[i].read_rng_dst) :
-                    size;
-                // It's supposed that "into" size must be not less than
-                // src size
-                if (size_src > size_dst) {
-                    LIBOFFLOAD_ERROR(c_different_src_and_dstn_sizes,
-                                     size_src, size_dst);
-                    exit(1);
-                }
-
-                if (m_vars[i].direction.bits) {
-                    PtrData *ptr_data;
-
-                    // base address
-                    void *base = *static_cast<void**>(m_vars[i].into);
-
-                    if (m_vars[i].direction.in) {
-                        // allocate buffer
-                        if (m_vars[i].flags.is_stack_buf) {
-                            // for stack persistent objects ptr data is created
-                            // by var_desc with number 0.
-                            // Its ptr_data is stored at m_stack_ptr_data
-                            ptr_data = m_stack_ptr_data;
-                        }
-                        else if (m_vars[i].alloc_if) {
-                            if (m_vars[i].flags.preallocated) {
-                                m_out_datalen += sizeof(void*);
-                                m_need_runfunction = true;
-                                break;
-                            }
-                            // add new entry
-                            if (!alloc_ptr_data(
-                                    ptr_data,
-                                    reinterpret_cast<char *>(base) + alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_disp : into_disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_size : size,
-                                    alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        0 : m_vars[i].align,
-                                    m_vars[i].flags.targetptr,
-                                    m_vars[i].flags.preallocated,
-                                    m_vars[i].flags.pin)) {
-                                return false;
-                            }
-                            if (m_vars[i].flags.targetptr) {
-                                if (!init_mic_address(ptr_data)) {
-                                    return false;
-                                }
-                                *static_cast<void**>(m_vars[i].into) = base =
-                                    reinterpret_cast<void*>(ptr_data->mic_addr);
-                            }
-                            if (ptr_data->add_reference() == 0 &&
-                                ptr_data->mic_buf != 0) {
-                                // add buffer to the list of buffers that
-                                // are passed to dispatch call
-                                m_compute_buffers.push_back(
-                                    ptr_data->mic_buf);
-                            }
-                            else {
-                                // will send buffer address to device
-                                m_vars[i].flags.sink_addr = 1;
-                            }
-
-                            if (!ptr_data->is_static) {
-                                // need to add reference for buffer
-                                m_need_runfunction = true;
-                            }
-                        }
-                        else {
-                            // use existing association from pointer table
-                            if (!find_ptr_data(ptr_data, base, into_disp,
-                                    size, m_vars[i].flags.targetptr, true)) {
-                                return false;
-                            }
-                            m_vars[i].flags.sink_addr = 1;
-                        }
-
-                        if (ptr_data->alloc_disp != 0) {
-                            m_vars[i].flags.alloc_disp = 1;
-                            m_in_datalen += sizeof(alloc_disp);
-                        }
-
-                        if (m_vars[i].flags.sink_addr) {
-                            // get buffers's address on the sink
-                            if (!init_mic_address(ptr_data)) {
-                                return false;
-                            }
-
-                            m_in_datalen += sizeof(ptr_data->mic_addr);
-                        }
-
-                        if (!ptr_data->is_static && m_vars[i].free_if) {
-                            // need to decrement buffer reference on target
-                            m_need_runfunction = true;
-                        }
-
-                        // copy other pointer properties to var descriptor
-                        m_vars[i].mic_offset = ptr_data->mic_offset;
-                        m_vars[i].flags.is_static_dstn = ptr_data->is_static;
-                    }
-                    else {
-                        if (!find_ptr_data(ptr_data,
-                                           base,
-                                           into_disp,
-                                           m_vars[i].size,
-                                           false, false)) {
-                            return false;
-                        }
-                    }
-                    if (ptr_data) {
-                        into_offset = ptr_data ?
-                            (char*) base -
-                            (char*) ptr_data->cpu_addr.start() :
-                            0;
-                    }
-
-                    if (m_is_openmp) {
-                        // for FROM transfer of stack buffer's variable
-                        if (src_is_for_mic && m_vars[i].flags.is_stack_buf) {
-                            AutoData *auto_data;                    
-                            char *base = *static_cast<char**>(m_vars[i].into);
-                            if (m_vars[i].alloc_if) {
-                                auto_data =m_device.insert_auto_data(
-                                    base + into_disp,
-                                    size);
-                                auto_data->add_reference();
-                            }
-                            else {
-                                auto_data = m_device.find_auto_data(
-                                    base + into_disp);
-                            }
-                            // save data for later use
-                            m_vars_extra[i].auto_data = auto_data;
-                            // For automatic variables
-                            // data is transferred:
-                            // - if always modifier is used OR
-                            // - if alloc_if == 0 && free_if == 0 OR
-                            // - if reference count is 1
-                            if (!m_vars[i].flags.always_copy &&
-                                (m_vars[i].alloc_if ||
-                                m_vars[i].free_if) &&
-                                auto_data != 0 &&
-                                auto_data->get_reference() != 1) {
-                                    m_vars[i].direction.bits =
-                                        c_parameter_nocopy;
-                            }
-                        }
-                    }
-                    // save pointer data
-                    m_vars_extra[i].dst_data = ptr_data;
-                }
-                break;
-            }
-
-            case c_func_ptr:
-            case c_func_ptr_ptr:
-                break;
-
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-                if (m_vars[i].direction.bits ||
-                    m_vars[i].alloc_if ||
-                    m_vars[i].free_if) {
-                    const Arr_Desc *ap;
-                    ArrDesc *dvp;
-                    PtrData *ptr_data;
-                    int64_t disp;
-                    int64_t size;
-
-                    if (VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_dst)) {
-                        ap = static_cast<const Arr_Desc*>(m_vars[i].into);
-
-                        // debug dump
-                        ARRAY_DESC_DUMP("    ", "INTO", ap, 0, src_is_for_mic);
-
-                        dvp = (m_vars_extra[i].type_dst == c_dv_data_slice) ?
-                              reinterpret_cast<ArrDesc*>(ap->base) :
-                              *reinterpret_cast<ArrDesc**>(ap->base);
-                    }
-                    else {
-                        dvp = (m_vars_extra[i].type_dst == c_dv_data) ?
-                              static_cast<ArrDesc*>(m_vars[i].into) :
-                              *static_cast<ArrDesc**>(m_vars[i].into);
-                    }
-                    if (!__dv_is_contiguous(dvp)) {
-                        m_vars[i].flags.is_noncont_dst = 1;
-                        m_vars_extra[i].read_rng_dst =
-                            init_read_ranges_dv(dvp);
-                    }
-                    // size and displacement
-                    if (VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_dst)) {
-                        // offset and length are derived from the array
-                        // descriptor
-                        __arr_data_offset_and_length(ap, into_disp, size);
-                        if (m_vars[i].direction.bits) {
-                            if (!is_arr_desc_contiguous(ap)) {
-                                if (m_vars[i].flags.is_noncont_dst) {
-                                    LIBOFFLOAD_ERROR(c_slice_of_noncont_array);
-                                    return false;
-                                }
-                                m_vars[i].flags.is_noncont_dst = 1;
-                                m_vars_extra[i].read_rng_dst =
-                                    init_read_ranges_arr_desc(ap);
-                                if (!cean_ranges_match(
-                                    m_vars_extra[i].read_rng_src,
-                                    m_vars_extra[i].read_rng_dst)) {
-                                    LIBOFFLOAD_ERROR(c_ranges_dont_match);
-                                }
-                            }
-                        }
-                    }
-                    else {
-                        if (m_vars[i].flags.has_length) {
-                            size = __dv_data_length(dvp, m_vars[i].count);
-                        }
-                        else {
-                            size = __dv_data_length(dvp);
-                        }
-                        disp = 0;
-                    }
-
-                    int64_t size_src =
-                        m_vars_extra[i].read_rng_src &&
-                        (!m_vars[i].flags.is_non_cont_struct ||
-                         src_is_for_mic)  ?
-                        cean_get_transf_size(m_vars_extra[i].read_rng_src) :
-                        m_vars[i].size;
-                    int64_t size_dst =
-                        m_vars_extra[i].read_rng_dst ?
-                        cean_get_transf_size(m_vars_extra[i].read_rng_dst) :
-                        size;
-                    // It's supposed that "into" size must be not less
-                    // than src size
-                    if (size_src > size_dst) {
-                        LIBOFFLOAD_ERROR(c_different_src_and_dstn_sizes,
-                            size_src, size_dst);
-                        exit(1);
-                    }
-
-                    // base address
-                    void *base = reinterpret_cast<void*>(dvp->Base);
-
-                    // allocate buffer
-                    if (m_vars[i].direction.in) {
-                        if (m_vars[i].alloc_if) {
-                            // add new entry
-                            if (!alloc_ptr_data(
-                                    ptr_data,
-                                    reinterpret_cast<char *>(base) + alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_disp : into_disp,
-                                    (alloc_base != NULL) ?
-                                        alloc_size : size,
-                                    alloc_disp,
-                                    (alloc_base != NULL) ?
-                                        0 : m_vars[i].align,
-                                    m_vars[i].flags.targetptr,
-                                    m_vars[i].flags.preallocated,
-                                    m_vars[i].flags.pin)) {
-                                return false;
-                            }
-                            if (ptr_data->add_reference() == 0 &&
-                                ptr_data->mic_buf !=0) {
-                                // add buffer to the list of buffers
-                                // that are passed to dispatch call
-                                m_compute_buffers.push_back(
-                                    ptr_data->mic_buf);
-                            }
-                            else {
-                                // will send buffer address to device
-                                m_vars[i].flags.sink_addr = 1;
-                            }
-
-                            if (!ptr_data->is_static) {
-                                // need to add reference for buffer
-                                m_need_runfunction = true;
-                            }
-                        }
-                        else {
-                            // use existing association from pointer table
-                            if (!find_ptr_data(ptr_data, base, into_disp,
-                                size, m_vars[i].flags.targetptr, true)) {
-                                return false;
-                            }
-
-                            // need to update base in dope vector on device
-                            m_vars[i].flags.sink_addr = 1;
-                        }
-
-                        if (ptr_data->alloc_disp != 0) {
-                            m_vars[i].flags.alloc_disp = 1;
-                            m_in_datalen += sizeof(alloc_disp);
-                        }
-
-                        if (m_vars[i].flags.sink_addr) {
-                            // get buffers's address on the sink
-                            if (!init_mic_address(ptr_data)) {
-                                return false;
-                            }
-                            m_in_datalen += sizeof(ptr_data->mic_addr);
-                        }
-
-                        if (!ptr_data->is_static && m_vars[i].free_if) {
-                            // need to decrement buffer reference on target
-                            m_need_runfunction = true;
-                        }
-
-                        // offset to base from the beginning of the buffer
-                        // memory
-                        into_offset =
-                            (char*) base - (char*) ptr_data->cpu_addr.start();
-
-                        // copy other pointer properties to var descriptor
-                        m_vars[i].mic_offset = ptr_data->mic_offset;
-                        m_vars[i].flags.is_static_dstn = ptr_data->is_static;
-                    }
-                    else { // src_is_for_mic
-                        if (!find_ptr_data(ptr_data,
-                                           base,
-                                           into_disp,
-                                           size,
-                                           false, false)) {
-                            return false;
-                        }
-                        into_offset = !ptr_data ?
-                            0 :
-                            (char*) base - (char*) ptr_data->cpu_addr.start();
-                    }
-
-                    // save pointer data
-                    m_vars_extra[i].dst_data = ptr_data;
-                }
-                break;
-
-            default:
-                LIBOFFLOAD_ERROR(c_unknown_var_type, m_vars_extra[i].type_src);
-                LIBOFFLOAD_ABORT;
-        }
-        // if into is used at CPU save its offset and disp
-        if (m_vars[i].direction.out) {
-            m_vars_extra[i].cpu_offset = into_offset;
-            m_vars_extra[i].cpu_disp   = into_disp;
-        }
-        else {
-            if (m_vars[i].flags.is_stack_buf) {
-                if (this_threads_cpu_stack_addr == 0) {
-                    this_threads_cpu_stack_addr =
-                        get_this_threads_cpu_stack_addr(
-                            stack_addr, entry_id,
-                            thread_specific_function_locals);
-                }
-                into_offset = static_cast<char*>
-                                  (m_vars[i].into) -
-                                   this_threads_cpu_stack_addr;
-            }
-            m_vars[i].offset = into_offset;
-            m_vars[i].disp   = into_disp;
-        }
-    }
-
-    return true;
-}
-
-bool OffloadDescriptor::setup_misc_data(const char *name)
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_setup_misc_data);
-
-    // we can skip run functon call together with wait if offloaded
-    // region is empty and there is no user defined non-pointer IN/OUT data
-    if (m_need_runfunction) {
-        // variable descriptors are sent as input data
-        m_in_datalen += m_vars_total * sizeof(VarDesc);
-
-        // timer data is sent as a part of the output data
-        m_out_datalen += OFFLOAD_TIMER_DATALEN();
-
-        // max from input data and output data length
-        uint64_t data_len = m_in_datalen > m_out_datalen ? m_in_datalen :
-                                                           m_out_datalen;
-
-        // Misc data has the following layout
-        //     <Function Descriptor>
-        //     <Function Name>
-        //     <In/Out Data>            (optional)
-        //
-        // We can transfer copyin/copyout data in misc/return data which can
-        // be passed to run function call if its size does not exceed
-        // COI_PIPELINE_MAX_IN_MISC_DATA_LEN. Otherwise we have to allocate
-        // buffer for it.
-
-        m_func_desc_size = sizeof(FunctionDescriptor) + strlen(name) + 1;
-        m_func_desc_size = (m_func_desc_size + 7) & ~7;
-
-        int misc_data_offset = 0;
-        int misc_data_size = 0;
-        if (data_len > 0) {
-            if (m_func_desc_size +
-                m_in_datalen <= COI_PIPELINE_MAX_IN_MISC_DATA_LEN &&
-                m_out_datalen <= COI_PIPELINE_MAX_IN_MISC_DATA_LEN) {
-                // use misc/return data for copyin/copyout
-                misc_data_offset = m_func_desc_size;
-                misc_data_size = data_len;
-            }
-            else {
-                OffloadTimer timer_buf(get_timer_data(),
-                                       c_offload_host_alloc_data_buffer);
-
-                // send/receive data using buffer
-                COIRESULT res = COI::BufferCreate(data_len,
-                                                  COI_BUFFER_OPENCL,
-                                                  0, 0,
-                                                  1, &m_device.get_process(),
-                                                  &m_inout_buf);
-                if (res != COI_SUCCESS) {
-                    if (m_status != 0) {
-                        m_status->result = translate_coi_error(res);
-                        return false;
-                    }
-                    report_coi_error(c_buf_create, res);
-                }
-
-                m_compute_buffers.push_back(m_inout_buf);
-                m_destroy_buffers.push_back(m_inout_buf);
-            }
-        }
-
-        // initialize function descriptor
-        m_func_desc = (FunctionDescriptor*) malloc(m_func_desc_size +
-                                                   misc_data_size);
-        if (m_func_desc == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-        m_func_desc->console_enabled = console_enabled;
-        m_func_desc->timer_enabled = offload_report_enabled &&
-            (timer_enabled || offload_report_level);
-        m_func_desc->offload_report_level = offload_report_enabled ?
-                                              offload_report_level : 0;
-        m_func_desc->offload_number = GET_OFFLOAD_NUMBER(get_timer_data());
-        m_func_desc->in_datalen = m_in_datalen;
-        m_func_desc->out_datalen = m_out_datalen;
-        m_func_desc->vars_num = m_vars_total;
-        m_func_desc->data_offset = misc_data_offset;
-
-        // append entry name
-        strcpy(m_func_desc->data, name);
-    }
-
-    return true;
-}
-
-void OffloadDescriptor::setup_omp_async_info()
-{
-    OFFLOAD_TRACE(2, "setup_omp_async_info\n");
-    OmpAsyncLastEventType event_type = m_need_runfunction ?
-                                   c_last_runfunc : c_last_write;
-    int last_in = m_need_runfunction ? 0 : -1;
-    int i;
-
-    for (i = m_vars_total - 1; i >=0; i--) {
-        bool src_is_target = (m_vars[i].direction.out || !m_vars[i].into);
-        int var_type = src_is_target ? m_vars_extra[i].type_src :
-                                       m_vars_extra[i].type_dst;
-        bool target_is_static = src_is_target ? m_vars[i].flags.is_static :
-                                                m_vars[i].flags.is_static_dstn;
-        switch (var_type) {
-            case c_data:
-            case c_void_ptr:
-            case c_cean_var:
-                if (m_vars[i].direction.out && target_is_static) {
-                    event_type = c_last_read;
-                }
-                else if (last_in < 0 && m_vars[i].direction.in &&
-                    target_is_static) {
-                    last_in = i;
-                }
-                break;
-            case c_string_ptr:
-            case c_data_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr:
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-
-                if (m_vars[i].direction.out) {                        
-                    event_type = c_last_read;
-                }
-                else if (last_in < 0 && m_vars[i].direction.in) {
-                    last_in = i;
-                }
-                break;
-            default:
-                break;
-        }
-        if (event_type == c_last_read) {
-            break;
-        }
-    }
-        
-    if (event_type == c_last_read) {
-        m_vars_extra[i].omp_last_event_type = c_last_read;
-    }
-    else if (event_type == c_last_write) {
-        m_vars_extra[last_in].omp_last_event_type = c_last_write;        
-    }
-    m_omp_async_last_event_type = event_type;
-    OFFLOAD_TRACE(2, "setup_omp_async_info: event_type=%d\n",
-                  m_omp_async_last_event_type);
-}
-
-extern "C" {
-    void offload_proxy_task_completed_ooo(
-        COIEVENT e,
-        const COIRESULT r,
-        const void *info
-    )
-    {
-       task_completion_callback ((void *) info);
-    }
-
-    // Callback function for asynchronous offloads
-    void offload_complete_task(
-        COIEVENT e,
-        const COIRESULT r,
-        const void *info
-    )
-    {
-        Stream            *stream;
-        OffloadDescriptor *task = const_cast<OffloadDescriptor*>(
-            reinterpret_cast<const OffloadDescriptor*>(info));
-        uint32_t         events_remained;
-
-        lock_complete.lock();
-        if (!offload_descr_map[task]) {
-            lock_complete.unlock();
-            return;
-        }
-
-#ifndef TARGET_WINNT
-        events_remained = __sync_sub_and_fetch(&task->m_event_count, 1);
-#else // TARGET_WINNT
-        events_remained = _InterlockedDecrement(&task->m_event_count);
-#endif // TARGET_WINNT
-       // Waiting for the last event
-       if (events_remained != 0) {
-           lock_complete.unlock();
-           return;
-       }
-
-        // Callback could be called when execution at host is completed.
-        // Do nothing as engine data is destructed
-        if (!task->get_device().get_ready()) {
-            lock_complete.unlock();
-            return;
-        }
-
-        void *           signal = task->get_signal();
-        _Offload_stream  stream_handle = task->get_stream();
-
-        OFFLOAD_TRACE(2, "Call function offload_complete_task(%p)\n", info);
-
-        // Completed offload has a signal
-        if (task->m_has_signal) {
-            if (!offload_descr_map[task]) {
-                lock_complete.unlock();
-                return;
-            }
-            task->get_device().complete_signaled_ofld(signal);
-            // Asynchronous offload can have both signal and stream. Need to
-            // clean stream if any.
-            stream_handle = task->get_stream();
-            if (stream_handle != -1) {
-                stream = Stream::find_stream(stream_handle, false);
-                if (stream && stream->get_last_offload() == task) {
-                    stream->set_last_offload(NULL);
-                }
-            }
-            offload_descr_map[task] = false;
-            lock_complete.unlock();
-
-            if (task->offload_finish(0)) { //arg is 0 for is_traceback
-                task->cleanup();
-            }
-            delete task;
-        }
-        // Asynchronous by stream
-        else {
-            if (stream_handle != 0) {
-                stream = Stream::find_stream(stream_handle, false);
-
-                // the stream was not created or was destroyed
-                if (!stream) {
-                    LIBOFFLOAD_ERROR(c_offload_no_stream,
-                        task->get_device().get_logical_index());
-                    LIBOFFLOAD_ABORT;
-                }
-                if (!offload_descr_map[task]) {
-                    lock_complete.unlock();
-                    return;
-                }
-                if (task == stream->get_last_offload()) {
-                    stream->set_last_offload(NULL);
-                }
-                // if the offload has both signal and stream we will complete
-                // it as it has the signal. So we don't need to mark signal
-                // as completed.
-                offload_descr_map[task] = false;
-                lock_complete.unlock();
-                if (task->offload_finish(0)) { //arg is 0 for is_traceback
-                    task->cleanup();
-                }
-                delete task;
-            }
-        }
-    }
-}
-
-void OffloadDescriptor::register_omp_event_call_back(
-    const COIEVENT *event,
-    const void *info)
-{
-    register_event_call_back(&offload_proxy_task_completed_ooo, event, info);
-}
-
-void OffloadDescriptor::register_event_call_back(
-    void (*func)(COIEVENT, const COIRESULT, const void*),
-    const COIEVENT *event,
-    const void *info)
-{
-    OFFLOAD_TRACE(2, "register_event_call_back(event=%p, info=%p)\n",
-                  event, info);
-    if (COI::EventRegisterCallback) {
-        COI::EventRegisterCallback(
-                 *event,
-                 func,
-                 info, 0);
-        OFFLOAD_TRACE(2,
-            "COI::EventRegisterCallback found; callback registered\n");
-    }
-}
-        
-bool OffloadDescriptor::wait_dependencies(
-    const void    **waits,
-    int             num_waits,
-    _Offload_stream handle
-)
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_wait_deps);
-    bool ret = true;
-    OffloadDescriptor *task;
-    void *    signal;
-
-    if (num_waits == 0) {
-        // Prepare in dependencies for stream
-        get_stream_in_dependencies(m_num_in_dependencies,m_p_in_dependencies);
-        return true;
-    }
-
-    // wait for streams
-    if (num_waits == -1) {
-        Stream * stream;
-        // some specific stream of the device
-        if (handle != 0) {
-            lock_complete.lock();
-            stream = Stream::find_stream(handle, false);
-
-            // the stream was not created or was destroyed
-            if (!stream) {
-                LIBOFFLOAD_ERROR(c_offload_no_stream, m_device.get_logical_index());
-                LIBOFFLOAD_ABORT;
-            }
-            task = stream->get_last_offload();
-
-            // offload was completed by previous offload_wait pragma
-            // or wait clause
-            if (!offload_descr_map[task]) {
-                lock_complete.unlock();
-                return true;
-            }
-            stream->set_last_offload(NULL);
-            if (task->m_has_signal) {
-                signal = task->get_signal();
-                if (m_device.find_signal(signal, false) == task) {
-                    m_device.complete_signaled_ofld(signal);
-                }
-            }
-            offload_descr_map[task] = false;
-            lock_complete.unlock();
-
-            if (!task->offload_finish(0)) { //arg is 0 for is_traceback
-                ret = false;
-            }
-            task->cleanup();
-            delete task;
-        }
-        // all streams of the device or over all devices
-        else {
-            StreamMap stream_map = Stream::all_streams;
-            for (StreamMap::iterator it = stream_map.begin();
-                it != stream_map.end(); it++) {
-                Stream * stream = it->second;
-                if (!m_wait_all_devices &&
-                    stream->get_device() != m_device.get_logical_index()) {
-                    continue;
-                }
-                lock_complete.lock();
-
-                // get associated async task
-                OffloadDescriptor *task = stream->get_last_offload();
-                // offload was completed by offload_wait pragma or wait clause
-                if (!offload_descr_map[task]) {
-                   lock_complete.unlock();
-                    continue;
-                }
-                if (task->m_has_signal) {
-                    signal = task->get_signal();
-                    if (task->get_device().find_signal(signal, false) ==
-                        task) {
-                        task->get_device().complete_signaled_ofld(signal);
-                    }
-                }
-                stream->set_last_offload(NULL);
-                offload_descr_map[task] = false;
-                lock_complete.unlock();
-                if (!task->offload_finish(0)) { //arg is 0 for is_traceback
-                    ret = false;
-                }
-                task->cleanup();
-                delete task;
-            }
-            // no uncompleted streams
-            return true;
-        }
-    }
-    else {
-
-        // If offload is asynchronous we will not really wait for signals.
-        // We will collect all waited events into m_p_in_dependencies vector
-        // to be used in future calls to COI::Copy... API.
-
-        if (!__offload_always_wait && (m_has_signal || (get_stream() > 0))) {
-            uint64_t        num_in_dep = 0,
-                            num_in_dep_prev = 0;
-            COIEVENT        *p_in_dep = NULL;
-            _Offload_stream stream_handle = get_stream();
-            Stream          *stream;
-            bool            stream_need_connection = stream_handle > 0;
-
-            if (stream_need_connection) {
-                stream = Stream::find_stream(stream_handle, false);
-                // check previous offload with the stream_handle
-                // to be noncompleted
-                if (!stream) {
-                    stream_need_connection = false;
-                }
-            }
-            for (int i = 0; i < num_waits; i++) {
-                task = m_device.find_signal(waits[i], false);
-                if (task == 0) {
-                    LIBOFFLOAD_ERROR(c_offload1, m_device.get_logical_index(),
-                        waits[i]);
-                    LIBOFFLOAD_ABORT;
-                }
-                else if (task == SIGNAL_HAS_COMPLETED) {
-                    continue;
-                }
-                if (stream_need_connection &&
-                    stream->get_last_offload() == task) {
-                    stream_need_connection = false;
-                }
-                if (!task->m_num_in_dependencies) {
-                    continue;
-                }
-                num_in_dep += task->m_num_in_dependencies;
-                p_in_dep = (COIEVENT*)realloc(p_in_dep,
-                                              sizeof(COIEVENT) * num_in_dep);
-               if (p_in_dep == NULL)
-                   LIBOFFLOAD_ERROR(c_malloc);
-                memcpy(p_in_dep + num_in_dep_prev, task->m_p_in_dependencies,
-                       task->m_num_in_dependencies * sizeof(COIEVENT));
-                num_in_dep_prev = num_in_dep;
-            }
-            if (stream_need_connection) {
-                task = stream->get_last_offload();
-                if (task) {
-                    num_in_dep += task->m_num_in_dependencies;
-                    p_in_dep = (COIEVENT*)realloc(p_in_dep,
-                                              sizeof(COIEVENT) * num_in_dep);
-                   if (p_in_dep == NULL)
-                       LIBOFFLOAD_ERROR(c_malloc);
-                    memcpy(p_in_dep + num_in_dep_prev,
-                           task->m_p_in_dependencies,
-                           task->m_num_in_dependencies * sizeof(COIEVENT));
-                    num_in_dep_prev = num_in_dep;
-                }
-            }
-            m_num_in_dependencies = num_in_dep ? num_in_dep :
-                                                 m_num_in_dependencies;
-            m_p_in_dependencies = num_in_dep ? p_in_dep : m_p_in_dependencies;
-        }
-        // wait and do offload_finish for serial offload
-        else {
-            for (int i = 0; i < num_waits; i++) {
-                _Offload_stream stream_handle;
-                Stream *stream;
-
-                lock_complete.lock();
-                task = m_device.find_signal(waits[i], false);
-                if (task == 0) {
-                    LIBOFFLOAD_ERROR(c_offload1, m_device.get_logical_index(),
-                        waits[i]);
-                    LIBOFFLOAD_ABORT;
-                }
-                else if (!offload_descr_map[task]) {
-                    lock_complete.unlock();
-                    continue;
-                }
-                // Need to mark signal as completed to prevent run condition
-                // with the call to "offload_complete_task" for the same
-                // signal.
-                m_device.complete_signaled_ofld(waits[i]);
-
-                // Asynchronous offload can have both signal and stream.
-                // Need to clean stream if any.
-
-                stream_handle = task->m_stream;
-                if (stream_handle != -1) {
-                    stream = Stream::find_stream(stream_handle, false);
-                    if (stream && stream->get_last_offload() == task) {
-                        stream->set_last_offload(NULL);
-                    }
-                }
-                offload_descr_map[task] = false;
-                lock_complete.unlock();
-
-                if (!task->offload_finish(0)) { //arg is 0 for is_traceback
-                    ret = false;
-                }
-                task->cleanup();
-
-                delete task;
-            }
-        }
-    }
-    return ret;
-}
-
-bool OffloadDescriptor::offload_wrap(
-    const char *name,
-    bool is_empty,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int vars_total,
-    const void **waits,
-    int num_waits,
-    const void **signal,
-    int entry_id,
-    const void *stack_addr,
-    OffloadFlags offload_flags
-)
-{
-    OffloadWaitKind wait_kind = c_offload_wait_signal;
-    bool is_traceback = offload_flags.bits.fortran_traceback;
-
-    // define kind of wait if any;
-    // there can be one of the following kind:
-    // 1. c_offload_wait_signal for "offload_wait wait(signal)"
-    // 2. c_offload_wait_stream for "offload_wait stream(stream)"
-    // 3. c_offload_wait_all_streams for "offload_wait stream(0)"
-    if (num_waits == -1) {
-        wait_kind = (m_stream == 0) ?
-                    c_offload_wait_all_streams :
-                    c_offload_wait_stream;
-    }
-    char buf[35];
-    const char *stream_str;
-
-    if (m_stream == no_stream || num_waits ==-1) {
-        stream_str = "none";
-    }
-    else if (m_stream == 0) {
-        stream_str = "all";
-    }
-    else {
-        sprintf(buf, "%#llx", m_stream);
-        stream_str = buf;
-    }
-
-    if (m_has_signal) {
-        OFFLOAD_DEBUG_TRACE_1(1,
-                      GET_OFFLOAD_NUMBER(get_timer_data()),
-                      c_offload_init_func,
-                      "Offload function %s, is_empty=%d, #varDescs=%d, "
-                      "signal=none, stream=%s, #waits=%d%c",
-                      name, is_empty, vars_total, stream_str, num_waits,
-                      num_waits == 0 ? '\n' : ' ');
-        // Breaks the norm of using OFFLOAD_DEBUG_TRACE to print the waits
-        // since the number of waits is not fixed.
-        if (!OFFLOAD_DO_TRACE && (console_enabled >= 1)) {
-            if (num_waits) {
-                printf("(");
-                if (m_stream == no_stream) {
-                    printf("%p", waits[0]);
-                    for (int i = 1; i < num_waits; i++) {
-                        printf(", %p", waits[i]);
-                    }
-                }
-                else if (m_stream != 0) {
-                    printf("%#x", m_stream);
-                }
-                else {
-                    printf(" all streams");
-                }
-                printf(")");
-            }
-            printf("\n");
-            fflush(NULL);
-        }
-        // stream in wait is reported further in OFFLOAD_REPORT for waits
-        if (m_stream != no_stream && num_waits == 0) {
-            OFFLOAD_REPORT(3, GET_OFFLOAD_NUMBER(get_timer_data()),
-                           c_offload_stream,
-                           "%d\n", m_stream);
-        }
-        OFFLOAD_REPORT(3, GET_OFFLOAD_NUMBER(get_timer_data()),
-                      c_offload_signal,
-                      "none %d\n", 0);
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE_1(1,
-                      GET_OFFLOAD_NUMBER(get_timer_data()),
-                      c_offload_init_func,
-                      "Offload function %s, is_empty=%d, #varDescs=%d, "
-                      "signal=%p, stream=%s, #waits=%d%c",
-                      name, is_empty, vars_total, signal, stream_str,
-                      num_waits, num_waits == 0 ? '\n' : ' ');
-        // Breaks the norm of using OFFLOAD_DEBUG_TRACE to print the waits
-        // since the number of waits is not fixed.
-        if (!OFFLOAD_DO_TRACE && (console_enabled >= 1)) {
-            if (num_waits) {
-                printf("(");
-                if (m_stream == no_stream) {
-                    printf("%p", waits[0]);
-                    for (int i = 1; i < num_waits; i++) {
-                        printf(", %p", waits[i]);
-                    }
-                    printf(")");
-                }
-                else if (m_stream != 0) {
-                    printf("%#x", m_stream);
-                }
-                else {
-                    printf(" all streams");
-                }
-                printf(")");
-            }
-            printf("\n");
-            fflush(NULL);
-        }
-        // stream in wait is reported further in OFFLOAD_REPORT for waits
-        if (m_stream != no_stream && num_waits == 0) {
-            OFFLOAD_REPORT(3, GET_OFFLOAD_NUMBER(get_timer_data()),
-                           c_offload_stream,
-                           "%d\n", m_stream);
-        }
-        OFFLOAD_REPORT(3, GET_OFFLOAD_NUMBER(get_timer_data()),
-                      c_offload_signal,
-                      "%d\n", signal);
-    }
-    if (console_enabled >= 1 && offload_flags.flags != 0) {
-        trace_offload_flags(get_timer_data(), offload_flags);
-    }
-
-    OFFLOAD_REPORT(3, GET_OFFLOAD_NUMBER(get_timer_data()),
-                   c_offload_wait, "%d\n",
-                   wait_kind, num_waits,
-                   (wait_kind == c_offload_wait_signal) ?
-                   waits :
-                   reinterpret_cast<const void **>(m_stream));
-
-    if (m_status != 0) {
-        m_status->result = OFFLOAD_SUCCESS;
-        m_status->device_number = m_device.get_logical_index();
-    }
-
-    m_initial_need_runfunction = m_need_runfunction = !is_empty;
-
-    // wait for dependencies to finish or set
-    // m_num_in_dependencies and m_p_in_dependencies for asynchronous offload
-    if (!wait_dependencies(waits, num_waits, m_stream)) {
-        cleanup();
-        return false;
-    }
-
-    // setup buffers
-    if (!setup_descriptors(vars, vars2, vars_total, entry_id, stack_addr)) {
-        cleanup();
-        return false;
-    }
-
-    if (offload_flags.bits.omp_async) {
-        setup_omp_async_info();
-    }
-    
-    // initiate send for pointers. Want to do it as early as possible.
-    if (!send_pointer_data(signal != 0 || offload_flags.bits.omp_async,
-                           signal)) {
-        cleanup();
-        return false;
-    }
-
-    // setup misc data for run function
-    if (!setup_misc_data(name)) {
-        cleanup();
-        return false;
-    }
-
-    // gather copyin data into buffer
-    if (!gather_copyin_data()) {
-        cleanup();
-        return false;
-    }
-
-    // Start the computation
-    if (!compute(signal)) {
-        cleanup();
-        return false;
-    }
-
-    // initiate receive for pointers
-    if (!receive_pointer_data(signal != 0 || offload_flags.bits.omp_async,
-                              true, signal)) {
-        cleanup();
-        return false;
-    }
-
-    if (offload_flags.bits.omp_async) {
-        return true;
-    }
-
-    // if there is a signal or stream save descriptor for the later use.
-    // num_waits == -1 is for offload_wait and there is nothing to save
-    if (num_waits != -1 && (signal != 0 || m_stream != no_stream)) {
-
-        if (signal != 0) {
-            m_device.add_signal(*signal, this);
-        }
-
-        if (m_stream != no_stream && m_stream != 0) {
-            Stream* stream = Stream::find_stream(m_stream, false);
-            if (stream) {
-                stream->set_last_offload(this);
-            }
-            else {
-                LIBOFFLOAD_ERROR(c_offload_no_stream, m_device.get_logical_index());
-                LIBOFFLOAD_ABORT;
-            }
-        }
-        // Register callback function "offload_complete_task" for all out
-        // events or for all in events if there are no out transfers
-       if (!m_preallocated_alloc) {
-            m_event_count = m_out_deps_total ?
-                            m_out_deps_total : m_in_deps_total;
-            COIEVENT *event_list = m_out_deps_total ? m_out_deps : m_in_deps;
-
-            for (int i = 0; i < m_event_count; i++) {
-                register_event_call_back(&offload_complete_task,
-                                         &event_list[i], this);
-            }
-            offload_descr_map[this] = true;
-            return true;
-        }
-    }
-
-    // wait for the offload to finish.
-    if (!offload_finish(is_traceback)) {
-        cleanup();
-        return false;
-    }
-
-    cleanup();
-    return true;
-}
-
-bool OffloadDescriptor::offload(
-    const char *name,
-    bool is_empty,
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int vars_total,
-    const void **waits,
-    int num_waits,
-    const void **signal,
-    int entry_id,
-    const void *stack_addr,
-    OffloadFlags offload_flags
-)
-{
-    bool res;
-    res = offload_wrap(name, is_empty, vars, vars2, vars_total,
-                       waits, num_waits, signal, entry_id,
-                       stack_addr, offload_flags);
-    if (res == false && !m_traceback_called) {
-        if (offload_flags.bits.fortran_traceback) {
-            OFFLOAD_TRACE(3,
-                "Calling Fortran library to continue traceback from MIC\n");
-            FORTRAN_TRACE_BACK(m_status->result);
-            m_traceback_called = true;
-        }
-    }
-    return res;
-}
-
-bool OffloadDescriptor::offload_finish(
-    bool is_traceback
-)
-{
-    COIRESULT res;
-
-    // wait for compute dependencies to become signaled
-    if (m_in_deps_total > 0 &&
-        (m_out_deps_total <= 0 || m_preallocated_alloc)) {
-        OffloadTimer timer(get_timer_data(), c_offload_host_wait_compute);
-
-        if (__offload_active_wait) {
-            // keep CPU busy
-            do {
-                res = COI::EventWait(m_in_deps_total, m_in_deps, 0, 1, 0, 0);
-            }
-            while (res == COI_TIME_OUT_REACHED);
-        }
-        else {
-            res = COI::EventWait(m_in_deps_total, m_in_deps, -1, 1, 0, 0);
-        }
-
-        if (res != COI_SUCCESS) {
-            if (m_status != 0 && !m_traceback_called) {
-                m_status->result = translate_coi_error(res);
-                if (is_traceback) {
-                    OFFLOAD_TRACE(3,
-                    "Calling Fortran library to continue traceback from MIC\n");
-                    FORTRAN_TRACE_BACK(m_status->result);
-                    m_traceback_called = true;
-                }
-                return false;
-            }
-            if (is_traceback && !m_traceback_called) {
-                OFFLOAD_TRACE(3,
-                  "Calling Fortran library to continue traceback from MIC\n");
-                FORTRAN_TRACE_BACK(OFFLOAD_ERROR);
-                exit(1);
-            }
-            report_coi_error(c_event_wait, res);
-        }
-    }
-
-    // need to do scatter copyout data received from target after
-    // completing in dependencies to get preallocated buffers.
-    // If there are no preallocated buffers we will scatter_copyout_data
-    // after completing out dependencies. In this case we dont need wait
-    // in dependencies as they are already in DAG.
-    if (m_out_with_preallocated) {
-        if (!scatter_copyout_data()) {
-            return false;
-        }
-        if (!receive_pointer_data(m_out_deps_total > 0, false, NULL)) {
-                cleanup();
-                return false;
-        }
-    }
-
-    // wait for receive dependencies to become signaled
-    if (m_out_deps_total > 0) {
-        OffloadTimer timer(get_timer_data(), c_offload_host_wait_buffers_reads);
-
-        if (__offload_active_wait) {
-            // keep CPU busy
-            do {
-                res = COI::EventWait(m_out_deps_total, m_out_deps, 0, 1, 0, 0);
-            }
-            while (res == COI_TIME_OUT_REACHED);
-        }
-        else {
-            res = COI::EventWait(m_out_deps_total, m_out_deps, -1, 1, 0, 0);
-        }
-
-        if (res != COI_SUCCESS) {
-            if (m_status != 0 && !m_traceback_called) {
-                m_status->result = translate_coi_error(res);
-                if (is_traceback) {
-                    OFFLOAD_TRACE(3,
-                    "Calling Fortran library to continue traceback from MIC\n");
-                    FORTRAN_TRACE_BACK(m_status->result);
-                    m_traceback_called = true;
-                }
-                return false;
-            }
-            if (is_traceback && !m_traceback_called) {
-                OFFLOAD_TRACE(3,
-                  "Calling Fortran library to continue traceback from MIC\n");
-                FORTRAN_TRACE_BACK(OFFLOAD_ERROR);
-                exit(1);
-            }
-            report_coi_error(c_event_wait, res);
-        }
-    }
-
-    if (!m_out_with_preallocated && !scatter_copyout_data()) {
-        return false;
-    }
-    // destroy buffers
-    {
-        OffloadTimer timer(get_timer_data(), c_offload_host_destroy_buffers);
-
-        for (BufferList::const_iterator it = m_destroy_buffers.begin();
-             it != m_destroy_buffers.end(); it++) {
-            res = COI::BufferDestroy(*it);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_destroy, res);
-            }
-        }
-    }
-
-    return true;
-}
-
-void OffloadDescriptor::cleanup()
-{
-    // release device in orsl
-    ORSL::release(m_device.get_logical_index());
-
-    OFFLOAD_TIMER_STOP(get_timer_data(), c_offload_host_total_offload);
-
-    // report stuff
-    Offload_Report_Epilog(get_timer_data());
-}
-
-bool OffloadDescriptor::is_signaled()
-{
-    bool signaled = true;
-    COIRESULT res;
-
-    // check compute and receive dependencies
-    if (m_out_deps_total > 0) {
-        res = COI::EventWait(m_out_deps_total, m_out_deps, 0, 1, 0, 0);
-        signaled = signaled && (res == COI_SUCCESS);
-    }
-    else if (m_in_deps_total > 0) {
-        res = COI::EventWait(m_in_deps_total, m_in_deps, 0, 1, 0, 0);
-        signaled = signaled && (res == COI_SUCCESS);
-    }
-
-    return signaled;
-}
-
-static Arr_Desc * make_arr_desc(
-    void*   ptr_val,
-    int64_t extent_start_val,
-    int64_t extent_elements_val,
-    int64_t size
-)
-{
-    Arr_Desc *res;
-    res = (Arr_Desc *)malloc(sizeof(Arr_Desc));
-    if (res == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    res->base = reinterpret_cast<int64_t>(ptr_val);
-    res->rank = 1;
-    res->dim[0].size = size;
-    res->dim[0].lindex = 0;
-    res->dim[0].lower = extent_start_val;
-    res->dim[0].upper = extent_elements_val + extent_start_val - 1;
-    res->dim[0].stride = 1;
-    return res;
-}
-
-// Send pointer data if source or destination or both of them are
-// noncontiguous. There is guarantee that length of destination enough for
-// transferred data.
-bool OffloadDescriptor::send_noncontiguous_pointer_data(
-    int i,
-    PtrData* src_data,
-    PtrData* dst_data,
-    COIEVENT *event,
-    uint64_t &data_sent,
-    uint32_t in_deps_amount,
-    COIEVENT *in_deps
-    )
-{
-    NonContigDesc *desc;
-    int noncont_num;
-    int64_t offset_src, offset_dst;
-    int64_t length_src, length_dst;
-    int64_t length_src_cur, length_dst_cur;
-    int64_t send_size;
-    COIRESULT res;
-    bool dst_is_empty = true;
-    bool src_is_empty = true;
-
-    // If BufferWriteMultiD is defined we can set values of required arguments
-    // and transfer noncontiguous data via call to the COI routine.
-    if (!m_vars[i].flags.is_non_cont_struct &&
-        __offload_use_coi_noncontiguous_transfer && COI::BufferWriteMultiD) {
-        struct Arr_Desc* arr_desc_dst;
-        struct Arr_Desc* arr_desc_src;
-        int64_t size_src, size_dst;
-        char *base = offload_get_src_base(static_cast<char*>(m_vars[i].ptr),
-            m_vars_extra[i].type_src);
-        COIBUFFER dst_buf = m_vars[i].into ?
-            m_vars_extra[i].dst_data->mic_buf :
-            m_vars_extra[i].src_data->mic_buf;
-
-        offset_src = (m_vars_extra[i].read_rng_src)?
-            m_vars_extra[i].read_rng_src->init_offset : m_vars_extra[i].cpu_disp;
-        size_src = m_vars_extra[i].read_rng_src ?
-            cean_get_transf_size(m_vars_extra[i].read_rng_src) :
-            m_vars[i].size;
-
-        offset_dst = (m_vars_extra[i].read_rng_dst)?
-            m_vars_extra[i].read_rng_dst->init_offset : m_vars[i].disp;
-        size_dst = m_vars_extra[i].read_rng_dst ?
-            cean_get_transf_size(m_vars_extra[i].read_rng_dst) : m_vars[i].size;
-
-        int64_t el_size = (!m_vars[i].into ||
-            (m_vars_extra[i].read_rng_src && m_vars_extra[i].read_rng_dst)) ?
-            1 :
-            m_vars_extra[i].read_rng_src ?
-            m_vars_extra[i].read_rng_src->arr_desc->dim[
-                m_vars_extra[i].read_rng_src->arr_desc->rank - 1].size :
-            m_vars_extra[i].read_rng_dst->arr_desc->dim[
-                m_vars_extra[i].read_rng_dst->arr_desc->rank - 1].size;
-
-        arr_desc_src = (m_vars_extra[i].read_rng_src) ?
-                m_vars_extra[i].read_rng_src->arr_desc :
-                make_arr_desc(NULL, // don't required for source
-                    offset_src/el_size, size_src/el_size, el_size);
-
-        arr_desc_dst = !m_vars[i].into ?
-                arr_desc_src :
-                (m_vars_extra[i].read_rng_dst) ?
-                    m_vars_extra[i].read_rng_dst->arr_desc :
-                    make_arr_desc(NULL,
-                        offset_dst/el_size, size_src/el_size, el_size);
-
-        int64_t alloc_disp = m_vars[i].into ?
-                    m_vars_extra[i].dst_data->alloc_disp :
-                    m_vars_extra[i].src_data->alloc_disp;
-
-        arr_desc_dst->base = 0;
-        arr_desc_src->base = reinterpret_cast<int64_t>(base);
-
-        res = COI::BufferWriteMultiD(
-            dst_buf,                // in_DestBuffer,
-            NULL,                   // DestProcess,
-            m_vars[i].offset + m_vars[i].mic_offset -
-            alloc_disp,             // Offset
-            (void*)arr_desc_dst,    // descriptor of DestArray
-            (void*)arr_desc_src,    // descriptor of SrcArray
-            COI_COPY_UNSPECIFIED,   // Type
-            m_num_in_dependencies,  // Number of in Dependencies
-            m_p_in_dependencies,    // array of in Dependencies
-            event);                 // out Dependency
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-                return false;
-            }
-            report_coi_error(c_buf_copy, res);
-        }
-        return(true);
-    }
-
-    data_sent = 0;   
-    if (m_vars[i].flags.is_non_cont_struct) {
-        desc = m_vars_extra[i].noncont_desc;
-        noncont_num = 0;
-    }
-    else {
-        // Set length_src and length_dst
-        length_src = (m_vars_extra[i].read_rng_src) ?
-            m_vars_extra[i].read_rng_src->range_size : m_vars[i].size;
-        length_dst = !m_vars[i].into ? length_src :
-            (m_vars_extra[i].read_rng_dst) ?
-            m_vars_extra[i].read_rng_dst->range_size :
-        m_vars[i].size;
-        send_size = (length_src < length_dst) ? length_src : length_dst;
-    }
-
-    // if event is defined we must multiplate it for all contiguous ranges
-    // that will be Copied/Write.
-    // Take in account that we already have 1 event.
-    if (event) {
-        uint32_t range_num = m_vars[i].flags.is_non_cont_struct ?
-                                desc->interval_cnt :
-                                (length_src / send_size) *
-                                ((m_vars_extra[i].read_rng_src) ?
-                                m_vars_extra[i].read_rng_src->range_max_number : 1) ;        
-        m_in_deps_allocated += range_num ;
-        m_in_deps    =
-            (COIEVENT*)realloc(m_in_deps, sizeof(COIEVENT) * m_in_deps_allocated);
-        m_in_deps_total--; 
-    }
-
-    // consequently get contiguous ranges,
-    // define corresponded destination offset and send data
-    do {
-        if (m_vars[i].flags.is_non_cont_struct) {  
-            // ranges are over
-            if (noncont_num >= desc->interval_cnt) {
-                break;
-            }
-            offset_src = offset_dst = desc->interval[noncont_num].lower;        
-            send_size = desc->interval[noncont_num].size;
-            noncont_num++;
-        }
-        else {
-            if (src_is_empty) {
-                if (m_vars_extra[i].read_rng_src) {
-                    if (!get_next_range(m_vars_extra[i].read_rng_src,
-                        &offset_src)) {
-                        // source ranges are over - nothing to send
-                        break;
-                    }
-                }
-                else if (data_sent == 0) {
-                    offset_src = m_vars_extra[i].cpu_disp;
-                }
-                else {
-                    break;
-                }
-                length_src_cur = length_src;
-            }
-            else {
-                // if source is contiguous or its contiguous range is greater
-                // than destination one
-                offset_src += send_size;
-            }
-            length_src_cur -= send_size;
-            src_is_empty = length_src_cur == 0;
-
-            if (dst_is_empty) {
-                if (m_vars[i].into) {
-                    if (m_vars_extra[i].read_rng_dst) {
-                        if (!get_next_range(m_vars_extra[i].read_rng_dst,
-                            &offset_dst)) {
-                            // destination ranges are over
-                            LIBOFFLOAD_ERROR(c_destination_is_over);
-                            return false;
-                        }
-                    }
-                    // into is contiguous.
-                    else {
-                        offset_dst = m_vars[i].disp;
-                    }
-                    length_dst_cur = length_dst;
-                }
-                // same as source
-                else {
-                    offset_dst = offset_src;
-                    length_dst_cur = length_src;
-                }
-            }
-            else {
-                // if destination is contiguous or its contiguous range is greater
-                // than source one
-                offset_dst += send_size;
-            }
-            length_dst_cur -= send_size;
-            dst_is_empty = length_dst_cur == 0;
-        }
-        if (event) {
-            event =  &m_in_deps[m_in_deps_total++];
-        }        
-        if (src_data != 0 && src_data->cpu_buf != 0) {
-            res = COI::BufferCopy(
-                dst_data->mic_buf,
-                src_data->cpu_buf,
-                m_vars[i].mic_offset +
-                m_vars[i].offset + offset_dst,
-                m_vars_extra[i].cpu_offset + offset_src,
-                send_size,
-                COI_COPY_UNSPECIFIED,
-                m_num_in_dependencies,
-                m_p_in_dependencies,
-                event);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_copy, res);
-            }
-        }
-        else {
-            char *base = offload_get_src_base(m_vars[i].ptr,
-                m_vars_extra[i].type_src);
-
-            res = COI::BufferWrite(
-                dst_data->mic_buf,
-                m_vars[i].mic_offset +
-                m_vars[i].offset + offset_dst,
-                base + offset_src,
-                send_size,
-                COI_COPY_UNSPECIFIED,
-                m_num_in_dependencies,
-                m_p_in_dependencies,
-                event);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_write, res);
-            }
-        }
-        data_sent += send_size;
-    }
-    while (true);
-    return true;
-}
-
-bool OffloadDescriptor::send_pointer_data(bool is_async, void* info)
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_send_pointers);
-
-    bool should_use_async_buffer_write = m_initial_need_runfunction;
-    uint64_t ptr_sent = 0;
-    COIRESULT res;
-    uint32_t in_deps_amount = 0;
-    COIEVENT *in_deps = NULL;
-
-    // For offload_transfer and offload with empty body without signal:
-    // - if there is only one buffer copy - send data synchronously
-    // - if there are multiple buffer copy and
-    // __offload_parallel_copy is false - send data synchronously
-    // - if there are multiple buffer copy and
-    // __offload_parallel_copy is true - send data asynchronously
-    // It concerns only big size data - greater than __offload_use_async_buffer_write.
-    // Data of size less than __offload_use_async_buffer_write are sent synchronously.
-    // Synchronous transfer results in better performance in COI.
-    // __offload_parallel_copy is false by default but can be changed
-    // via environment variable OFFLOAD_PARALLEL_COPY
-    if (!m_initial_need_runfunction && __offload_parallel_copy) {
-        int big_size_count = 0;
-        for (int i = 0; i < m_vars_total; i++) {
-            if (m_vars[i].direction.in &&
-                m_vars[i].size >= __offload_use_async_buffer_write) {
-                switch (m_vars_extra[i].type_dst) {
-                    case c_data:
-                    case c_void_ptr:
-                    case c_void_ptr_ptr:
-                    case c_cean_var:
-                        if (m_vars[i].flags.is_static_dstn) {
-                            big_size_count++;
-                        }
-                        break;
-                    case c_string_ptr:
-                    case c_string_ptr_ptr:
-                    case c_data_ptr:
-                    case c_data_ptr_ptr:
-                    case c_cean_var_ptr:
-                    case c_cean_var_ptr_ptr:
-                    case c_dv_ptr:
-                    case c_dv_data:
-                    case c_dv_ptr_data:
-                    case c_dv_data_slice:
-                    case c_dv_ptr_data_slice:
-                        big_size_count++;
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-        if (big_size_count > 1) {
-            should_use_async_buffer_write = true;
-        }
-    }
-
-    // Initiate send for pointer data
-    for (int i = 0; i < m_vars_total; i++) {
-        uint64_t sent_data = m_vars[i].size;
-
-        if (m_vars_extra[i].omp_last_event_type == c_last_write &&
-            m_in_deps_total > 0) {
-            m_num_in_dependencies = m_in_deps_total;
-            m_p_in_dependencies = m_in_deps;
-        }
-        switch (m_vars_extra[i].type_dst) {
-            case c_data_ptr_array:
-                break;
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var:
-                if (m_vars[i].direction.in &&
-                    m_vars[i].flags.is_static_dstn) {
-                    COIEVENT *event =
-                        (m_stream != no_stream ||
-                         is_async ||
-                         (should_use_async_buffer_write &&
-                          m_vars[i].size >= __offload_use_async_buffer_write)) ?
-                        &m_in_deps[m_in_deps_total++] : 0;
-                    PtrData* dst_data = m_vars[i].into ?
-                                            m_vars_extra[i].dst_data :
-                                            m_vars_extra[i].src_data;
-                    PtrData* src_data =
-                        VAR_TYPE_IS_PTR(m_vars_extra[i].type_src) ||
-                        VAR_TYPE_IS_SCALAR(m_vars_extra[i].type_src) &&
-                        m_vars[i].flags.is_static ?
-                           m_vars_extra[i].src_data : 0;
-
-                    if (m_vars[i].flags.is_non_cont_struct ||
-                        m_vars[i].flags.is_noncont_src ||
-                        m_vars[i].flags.is_noncont_dst) {
-                        if (!send_noncontiguous_pointer_data(
-                                i, src_data, dst_data, event, sent_data,
-                                m_num_in_dependencies, m_p_in_dependencies)) {
-                            return false;
-                        }
-                    }
-                    else if (src_data != 0 && src_data->cpu_buf != 0) {
-                        res = COI::BufferCopy(
-                            dst_data->mic_buf,
-                            src_data->cpu_buf,
-                            m_vars[i].mic_offset +
-                            m_vars[i].offset + m_vars[i].disp,
-                            m_vars_extra[i].cpu_offset +
-                            m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_copy, res);
-                        }
-                    }
-                    else {
-                        char *base = offload_get_src_base(m_vars[i].ptr,
-                                         m_vars_extra[i].type_src);
-                        res = COI::BufferWrite(
-                            dst_data->mic_buf,
-                            m_vars[i].mic_offset +
-                            m_vars[i].offset + m_vars[i].disp,
-                            base + m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_write, res);
-                        }
-                    }
-                    ptr_sent += sent_data;
-                }
-                break;
-
-            case c_data_ptr:
-               //  If use_device_ptr no data needs to be sent
-               if (m_vars[i].flags.use_device_ptr) {
-                   break;
-               }
-            case c_string_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr:
-                if (m_vars[i].direction.in && m_vars[i].size > 0) {
-                    COIEVENT *event =
-                        (m_stream != no_stream ||
-                         is_async ||
-                         (should_use_async_buffer_write &&
-                          m_vars[i].size >= __offload_use_async_buffer_write)) ?
-                        &m_in_deps[m_in_deps_total++] : 0;
-                    PtrData* dst_data = m_vars[i].into ?
-                                            m_vars_extra[i].dst_data :
-                                            m_vars_extra[i].src_data;
-                    PtrData* src_data =
-                        VAR_TYPE_IS_PTR(m_vars_extra[i].type_src) ||
-                        VAR_TYPE_IS_SCALAR(m_vars_extra[i].type_src) &&
-                        m_vars[i].flags.is_static ?
-                            m_vars_extra[i].src_data : 0;
-
-                    if (m_vars[i].flags.is_non_cont_struct ||
-                        m_vars[i].flags.is_noncont_src ||
-                        m_vars[i].flags.is_noncont_dst) {
-                        send_noncontiguous_pointer_data(
-                            i, src_data, dst_data, event, sent_data,
-                            in_deps_amount, in_deps);
-                    }
-                    else if (src_data != 0 && src_data->cpu_buf != 0) {
-                        res = COI::BufferCopy(
-                            dst_data->mic_buf,
-                            src_data->cpu_buf,
-                            m_vars[i].mic_offset +
-                            m_vars[i].offset + m_vars[i].disp,
-                            m_vars_extra[i].cpu_offset +
-                            m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_copy, res);
-                        }
-                    }
-                    else {
-                        char *base = offload_get_src_base(m_vars[i].ptr,
-                                         m_vars_extra[i].type_src);
-                        res = COI::BufferWrite(
-                            dst_data->mic_buf,
-                            m_vars[i].mic_offset +
-                            m_vars[i].offset + m_vars[i].disp,
-                            base + m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_write, res);
-                        }
-                    }
-
-                    ptr_sent += sent_data;
-                }
-                break;
-
-            case c_dv_data:
-            case c_dv_ptr_data:
-                if (m_vars[i].direction.in &&
-                    m_vars[i].size > 0) {
-                    PtrData *ptr_data = m_vars[i].into ?
-                                        m_vars_extra[i].dst_data :
-                                        m_vars_extra[i].src_data;
-                    PtrData* src_data = m_vars_extra[i].src_data;
-
-                    COIEVENT *event =
-                        (m_stream != no_stream ||
-                         is_async ||
-                         (should_use_async_buffer_write &&
-                          m_vars[i].size >= __offload_use_async_buffer_write)) ?
-                        &m_in_deps[m_in_deps_total++] : 0;
-
-                    if (m_vars[i].flags.is_non_cont_struct ||
-                        m_vars[i].flags.is_noncont_src ||
-                        m_vars[i].flags.is_noncont_dst) {
-                        send_noncontiguous_pointer_data(
-                            i, src_data, ptr_data, event, sent_data,
-                            in_deps_amount, in_deps);
-                    }
-                    else if (src_data && src_data->cpu_buf != 0) {
-                        res = COI::BufferCopy(
-                            ptr_data->mic_buf,
-                            src_data->cpu_buf,
-                            m_vars[i].offset + ptr_data->mic_offset +
-                            m_vars[i].disp,
-                            m_vars_extra[i].cpu_offset +
-                            m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_copy, res);
-                        }
-                    }
-                    else {
-                        char *base = offload_get_src_base(m_vars[i].ptr,
-                                         m_vars_extra[i].type_src);
-                        res = COI::BufferWrite(
-                            ptr_data->mic_buf,
-                            ptr_data->mic_offset +
-                            m_vars[i].offset + m_vars[i].disp,
-                            base + m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_write, res);
-                        }
-                    }
-                    ptr_sent += sent_data;
-                }
-                break;
-
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-                if (m_vars[i].direction.in &&
-                    m_vars[i].size > 0) {
-                    PtrData *dst_data = m_vars[i].into ?
-                                        m_vars_extra[i].dst_data :
-                                        m_vars_extra[i].src_data;
-                    PtrData* src_data =
-                        (VAR_TYPE_IS_PTR(m_vars_extra[i].type_src) ||
-                        VAR_TYPE_IS_DV_DATA(m_vars_extra[i].type_src) ||
-                        VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_src) ||
-                        VAR_TYPE_IS_SCALAR(m_vars_extra[i].type_src) &&
-                        m_vars[i].flags.is_static) ?
-                            m_vars_extra[i].src_data : 0;
-                    COIEVENT *event =
-                        (m_stream != no_stream ||
-                         is_async ||
-                         (should_use_async_buffer_write &&
-                          m_vars[i].size >= __offload_use_async_buffer_write)) ?
-                        &m_in_deps[m_in_deps_total++] : 0;
-                    if (m_vars[i].flags.is_non_cont_struct ||
-                        m_vars[i].flags.is_noncont_src ||
-                        m_vars[i].flags.is_noncont_dst) {
-                        send_noncontiguous_pointer_data(
-                            i, src_data, dst_data, event, sent_data,
-                            in_deps_amount, in_deps);
-                    }
-                    else if (src_data && src_data->cpu_buf != 0) {
-                        res = COI::BufferCopy(
-                            dst_data->mic_buf,
-                            src_data->cpu_buf,
-                            m_vars[i].offset +
-                            dst_data->mic_offset +
-                            m_vars[i].disp,
-                            m_vars_extra[i].cpu_offset +
-                            m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_copy, res);
-                        }
-                    }
-                    else {
-                        char *base = offload_get_src_base(m_vars[i].ptr,
-                                         m_vars_extra[i].type_src);
-                        res = COI::BufferWrite(
-                            dst_data->mic_buf,
-                            dst_data->mic_offset +
-                            m_vars[i].offset + m_vars[i].disp,
-                            base + m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_write, res);
-                        }
-                    }
-
-                    ptr_sent += sent_data;
-                }
-                break;
-
-            default:
-                break;
-        }
-        if (m_vars_extra[i].omp_last_event_type == c_last_write) {
-            register_omp_event_call_back(&m_in_deps[m_in_deps_total - 1], info);                
-        }
-        // alloc field isn't used at target.
-        // We can reuse it for offset of array pointers.
-        if (m_vars_extra[i].is_arr_ptr_el) {
-            m_vars[i].ptr_arr_offset = m_vars_extra[i].ptr_arr_offset;
-        }
-    }
-    // list of out events created while send_pointer_data now became input
-    // dependencies for runfunction (or Read transfers from target if
-    // runfunction is absent)
-    m_num_in_dependencies = m_in_deps_total ? m_in_deps_total :
-                            m_num_in_dependencies;
-    m_p_in_dependencies = m_in_deps_total ? m_in_deps : m_p_in_dependencies;
-
-    if (m_status) {
-        m_status->data_sent += ptr_sent;
-    }
-
-    OFFLOAD_TIMER_HOST_SDATA(get_timer_data(), ptr_sent);
-    OFFLOAD_DEBUG_TRACE_1(1, GET_OFFLOAD_NUMBER(get_timer_data()),
-                  c_offload_sent_pointer_data,
-                  "Total pointer data sent to target: [%lld] bytes\n",
-                  ptr_sent);
-
-    return true;
-}
-
-bool OffloadDescriptor::gather_copyin_data()
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_gather_inputs);
-
-    if (m_need_runfunction && m_in_datalen > 0) {
-        COIMAPINSTANCE map_inst;
-        char *data;
-
-        // init marshaller
-        if (m_inout_buf != 0) {
-            OffloadTimer timer_map(get_timer_data(),
-                                   c_offload_host_map_in_data_buffer);
-
-            COIRESULT res = COI::BufferMap(m_inout_buf, 0, m_in_datalen,
-                                           COI_MAP_WRITE_ENTIRE_BUFFER,
-                                           0, 0, 0, &map_inst,
-                                           reinterpret_cast<void**>(&data));
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_map, res);
-            }
-        }
-        else {
-            data = (char*) m_func_desc + m_func_desc->data_offset;
-        }
-
-        // send variable descriptors
-        memcpy(data, m_vars, m_vars_total * sizeof(VarDesc));
-        data += m_vars_total * sizeof(VarDesc);
-
-        // init marshaller
-        m_in.init_buffer(data, m_in_datalen);
-
-        // Gather copy data into buffer
-        for (int i = 0; i < m_vars_total; i++) {
-            bool src_is_for_mic = (m_vars[i].direction.out ||
-                                   m_vars[i].into == NULL);
-            PtrData* ptr_data = src_is_for_mic ?
-                                m_vars_extra[i].src_data :
-                                m_vars_extra[i].dst_data;
-            if (m_vars[i].flags.alloc_disp) {
-                m_in.send_data(&ptr_data->alloc_disp,
-                               sizeof(ptr_data->alloc_disp));
-            }
-            if (TYPE_IS_PTR_TO_PTR(m_vars_extra[i].type_src) ||
-                TYPE_IS_PTR_TO_PTR(m_vars_extra[i].type_dst) ||
-                (m_vars_extra[i].type_src == c_data_ptr_array &&
-                 m_vars[i].flags.is_pointer)) {
-                m_in.send_data(&m_vars_extra[i].pointer_offset,
-                               sizeof(m_vars_extra[i].pointer_offset));
-            }
-            // send sink address to the target
-            if (m_vars[i].flags.sink_addr) {
-                m_in.send_data(&ptr_data->mic_addr,
-                               sizeof(ptr_data->mic_addr));
-            }
-
-            switch (m_vars_extra[i].type_dst) {
-                case c_data_ptr_array:
-                    break;
-                case c_data:
-                case c_void_ptr:
-                case c_void_ptr_ptr:
-                case c_cean_var:
-                    if (m_vars[i].direction.in &&
-                        !m_vars[i].flags.is_static_dstn) {
-
-                        char *ptr = offload_get_src_base(m_vars[i].ptr,
-                                        m_vars_extra[i].type_src);
-                        if (m_vars_extra[i].type_dst == c_cean_var) {
-                            // offset and length are derived from the array
-                            // descriptor
-                            int64_t size = m_vars[i].size;
-                            int64_t disp = m_vars[i].disp;
-                            m_in.send_data(reinterpret_cast<char*>(&size),
-                                           sizeof(int64_t));
-                            m_in.send_data(reinterpret_cast<char*>(&disp),
-                                           sizeof(int64_t));
-                        }
-
-                        m_in.send_data(ptr + m_vars_extra[i].cpu_disp,
-                                       m_vars[i].size);
-                    }
-                    break;
-
-                case c_dv:
-                    if (m_vars[i].direction.bits ||
-                        m_vars[i].alloc_if ||
-                        m_vars[i].free_if) {
-                        // send dope vector excluding base
-                        char *ptr = static_cast<char*>(m_vars[i].ptr);
-                        m_in.send_data(ptr + sizeof(uint64_t),
-                                       m_vars[i].size - sizeof(uint64_t));
-                    }
-                    break;
-
-                case c_data_ptr:
-                    // send to target addresses of obsolete
-                    // stacks to be released
-                    if (m_vars[i].flags.is_stack_buf &&
-                        !m_vars[i].direction.bits &&
-                        m_vars[i].alloc_if &&
-                        m_vars[i].size != 0) {
-                        for (PtrDataList::iterator it =
-                            m_destroy_stack.begin();
-                            it != m_destroy_stack.end(); it++) {
-                            PtrData * ptr_data = *it;
-                            m_in.send_data(&(ptr_data->mic_addr),
-                                sizeof(ptr_data->mic_addr));
-                        }
-                    }
-                    break;
-                case c_func_ptr:
-                case c_func_ptr_ptr:
-                    if (m_vars[i].direction.in) {
-                        m_in.send_func_ptr(*((const void**) m_vars[i].ptr));
-                    }
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        if (m_status) {
-            m_status->data_sent += m_in.get_tfr_size();
-        }
-
-        if (m_func_desc->data_offset == 0) {
-            OffloadTimer timer_unmap(get_timer_data(),
-                                     c_offload_host_unmap_in_data_buffer);
-            COIRESULT res = COI::BufferUnmap(map_inst, 0, 0, 0);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_unmap, res);
-            }
-        }
-    }
-
-    OFFLOAD_TIMER_HOST_SDATA(get_timer_data(), m_in.get_tfr_size());
-    OFFLOAD_DEBUG_TRACE_1(1,
-                  GET_OFFLOAD_NUMBER(get_timer_data()), c_offload_copyin_data,
-                  "Total copyin data sent to target: [%lld] bytes\n",
-                  m_in.get_tfr_size());
-
-    return true;
-}
-
-bool OffloadDescriptor::compute(void *info)
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_start_compute);
-
-    if (m_need_runfunction) {
-        OFFLOAD_DEBUG_TRACE_1(2, GET_OFFLOAD_NUMBER(get_timer_data()),
-                              c_offload_compute, "Compute task on MIC\n");
-
-        void* misc = m_func_desc;
-        int   misc_len = m_func_desc_size;
-        void* ret = 0;
-        int   ret_len = 0;
-
-        if (m_func_desc->data_offset != 0) {
-            misc_len += m_in_datalen;
-
-            if (m_out_datalen > 0) {
-                ret = (char*) m_func_desc + m_func_desc->data_offset;
-                ret_len = m_out_datalen;
-            }
-        }
-
-        // dispatch task
-        COIRESULT res;
-        COIEVENT event;
-
-        res = m_device.compute(m_stream,
-                               m_compute_buffers,
-                               misc, misc_len,
-                               ret, ret_len,
-                               m_num_in_dependencies,
-                               m_p_in_dependencies,
-                               &event);
-
-        if (res != COI_SUCCESS) {
-            if (m_status != 0) {
-                m_status->result = translate_coi_error(res);
-                return false;
-            }
-            report_coi_error(c_pipeline_run_func, res);
-        }
-
-        if (m_omp_async_last_event_type == c_last_runfunc) {
-            register_omp_event_call_back(&event, info);
-        }
-
-        m_in_deps_total = m_num_in_dependencies = 1;
-        m_in_deps[0] = event;
-        m_p_in_dependencies = m_in_deps;
-    }
-
-    return true;
-}
-
-// receive pointer data if source or destination or both of them are
-// noncontiguous. There is guarantee that length of destination enough for
-// transferred data.
-bool OffloadDescriptor::receive_noncontiguous_pointer_data(
-    int i,
-    COIBUFFER dst_buf,
-    COIEVENT *event,
-    uint64_t &received_data,
-    uint32_t in_deps_amount,
-    COIEVENT *in_deps
-)
-{   
-    NonContigDesc *desc;
-    int noncont_num;
-    int64_t offset_src, offset_dst;
-    int64_t length_src, length_dst;
-    int64_t length_src_cur, length_dst_cur;
-    int64_t receive_size;
-    COIRESULT res;
-    bool dst_is_empty = true;
-    bool src_is_empty = true;
-
-    char *base = offload_get_src_base(
-                     m_vars[i].into ?
-                     static_cast<char*>(m_vars[i].into) :
-                     static_cast<char*>(m_vars[i].ptr),
-                     m_vars_extra[i].type_dst);
-    received_data = 0;
-
-    // If BufferReadMultiD is defined we can set values of required arguments
-    // and transfer noncontiguous data via call to the COI routine.
-    if (__offload_use_coi_noncontiguous_transfer && COI::BufferReadMultiD) {
-        struct Arr_Desc* arr_desc_dst;
-        struct Arr_Desc* arr_desc_src;
-        int64_t size_src, size_dst;
-
-        offset_src = (m_vars_extra[i].read_rng_src)?
-            m_vars_extra[i].read_rng_src->init_offset : m_vars[i].disp;
-        size_src = m_vars_extra[i].read_rng_src ?
-            cean_get_transf_size(m_vars_extra[i].read_rng_src) :
-            m_vars[i].size;
-
-        offset_dst = (m_vars_extra[i].read_rng_dst)?
-            m_vars_extra[i].read_rng_dst->init_offset : m_vars_extra[i].cpu_disp;
-        size_dst = m_vars_extra[i].read_rng_dst ?
-            cean_get_transf_size(m_vars_extra[i].read_rng_dst) : m_vars[i].size;
-
-        int64_t el_size = (!m_vars[i].into ||
-                           (m_vars_extra[i].read_rng_src &&
-                            m_vars_extra[i].read_rng_dst)) ?
-                            1 :
-                            m_vars_extra[i].read_rng_src ?
-                                m_vars_extra[i].read_rng_src->arr_desc->dim[
-                m_vars_extra[i].read_rng_src->arr_desc->rank - 1].size :
-        m_vars_extra[i].read_rng_dst->arr_desc->dim[
-            m_vars_extra[i].read_rng_dst->arr_desc->rank - 1].size;
-            arr_desc_src = (m_vars_extra[i].read_rng_src) ?
-                m_vars_extra[i].read_rng_src->arr_desc :
-            make_arr_desc(NULL, // don't required for source
-                offset_src/el_size, size_src/el_size,
-                el_size);
-            arr_desc_dst = !m_vars[i].into ? arr_desc_src :
-                (m_vars_extra[i].read_rng_dst) ?
-                m_vars_extra[i].read_rng_dst->arr_desc :
-            make_arr_desc(NULL,
-                offset_dst/el_size, size_src/el_size, el_size);
-
-            arr_desc_dst->base = reinterpret_cast<int64_t>(base);
-
-            res = COI::BufferReadMultiD(
-                m_vars_extra[i].src_data->mic_buf,      // SourceBuffer
-                m_vars[i].offset + m_vars[i].mic_offset -
-                m_vars_extra[i].src_data->alloc_disp,         // Offset
-                (void*)arr_desc_dst,          // descriptor of DestArray
-                (void*)arr_desc_src,          // descriptor of SrcArray
-                COI_COPY_UNSPECIFIED,         // Type
-                m_num_in_dependencies,        // Number of in Dependencies
-                m_p_in_dependencies,          // array of in Dependencies
-                event);                       // out Dependency
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_copy, res);
-            }
-            return(true);
-    }
-    if (m_vars[i].flags.is_non_cont_struct) {
-        desc = m_vars_extra[i].noncont_desc;
-        noncont_num = 0;
-    }
-    else {    
-        // Set length_src and length_dst
-        length_src = (m_vars_extra[i].read_rng_src) ?
-            m_vars_extra[i].read_rng_src->range_size : m_vars[i].size;
-        length_dst = !m_vars[i].into ? length_src :
-                     (m_vars_extra[i].read_rng_dst) ?
-                     m_vars_extra[i].read_rng_dst->range_size : m_vars[i].size;
-        receive_size = (length_src < length_dst) ? length_src : length_dst;
-    }
-
-    // if event is defined we must multiplate for all contiguous intervals
-    // that will be Copied/Read.
-    // Take in account that we already have 1 event.
-    if (event) {
-        uint32_t range_num = m_vars[i].flags.is_non_cont_struct ?
-                                desc->interval_cnt :
-                                (length_src / receive_size) *
-                                ((m_vars_extra[i].read_rng_src) ?
-                                m_vars_extra[i].read_rng_src->range_max_number : 1) ;
-        m_out_deps_allocated += range_num;
-        m_out_deps    =
-            (COIEVENT*)realloc(m_out_deps, sizeof(COIEVENT) * m_out_deps_allocated);
-        m_out_deps_total--; 
-    }
-     
-    // consequently get contiguous ranges,
-    // define corresponded destination offset and receive data
-    do {
-        if (m_vars[i].flags.is_non_cont_struct) {  
-            // ranges are over
-            if (noncont_num >= desc->interval_cnt) {
-                break;
-            }
-            offset_src = offset_dst = desc->interval[noncont_num].lower;        
-            receive_size = desc->interval[noncont_num].size;
-            noncont_num++;
-        }
-        else { // get source offset
-            if (src_is_empty) {
-                if (m_vars_extra[i].read_rng_src) {
-                    if (!get_next_range(m_vars_extra[i].read_rng_src,
-                        &offset_src)) {
-                            // source ranges are over - nothing to send
-                            break;
-                    }
-                }
-                else if (received_data == 0) {
-                    offset_src = m_vars[i].disp;
-                }
-                else {
-                    break;
-                }
-                length_src_cur = length_src;
-            }
-            else {
-                // if source is contiguous or its contiguous range is greater
-                // than destination one
-                offset_src += receive_size;
-            }
-            length_src_cur -= receive_size;
-            src_is_empty = length_src_cur == 0;
-
-            // get destination offset
-            if (dst_is_empty) {
-                if (m_vars[i].into) {
-                    if (m_vars_extra[i].read_rng_dst) {
-                        if (!get_next_range(m_vars_extra[i].read_rng_dst,
-                            &offset_dst)) {
-                                // destination ranges are over
-                                LIBOFFLOAD_ERROR(c_destination_is_over);
-                                return false;
-                        }
-                    }
-                    // destination is contiguous.
-                    else {
-                        offset_dst = m_vars_extra[i].cpu_disp;
-                    }
-                    length_dst_cur = length_dst;
-                }
-                // same as source
-                else {
-                    offset_dst = offset_src;
-                    length_dst_cur = length_src;
-                }
-            }
-            else {
-                // if destination is contiguous or its contiguous range is greater
-                // than source one
-                offset_dst += receive_size;
-            }
-            length_dst_cur -= receive_size;
-            dst_is_empty = length_dst_cur == 0;
-        }
-        if (event) {
-            event =  &m_out_deps[m_out_deps_total++];
-        }
-        if (dst_buf != 0) {
-            res = COI::BufferCopy(
-                dst_buf,
-                m_vars_extra[i].src_data->mic_buf,
-                m_vars_extra[i].cpu_offset + offset_dst,
-                m_vars[i].offset + offset_src +
-                m_vars[i].mic_offset,
-                receive_size,
-                COI_COPY_UNSPECIFIED,
-                m_num_in_dependencies,
-                m_p_in_dependencies,
-                event);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_copy, res);
-            }
-        }
-        else {
-            res = COI::BufferRead(
-                m_vars_extra[i].src_data->mic_buf,
-                m_vars[i].offset + offset_src +
-                m_vars[i].mic_offset,
-                base + offset_dst,
-                receive_size,
-                COI_COPY_UNSPECIFIED,
-                m_num_in_dependencies,
-                m_p_in_dependencies,
-                event);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_read, res);
-            }
-        }
-        received_data += receive_size;
-    }
-    while (true);
-    return true;
-}
-
-bool OffloadDescriptor::receive_pointer_data(bool is_async,
-                                             bool first_run, void *info)
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_start_buffers_reads);
-
-    bool should_use_async_buffer_read = m_initial_need_runfunction;
-    uint64_t ptr_received = 0;
-    COIRESULT res;
-
-    // For offload_transfer and offload with empty body without signal:
-    // - if there is only one buffer copy - get data synchronously
-    // - if there are multiple buffer copy and
-    //      __offload_parallel_copy is false - get data synchronously
-    // - if there are multiple buffer copy
-    //      and __offload_parallel_copy is true - get data asynchronously
-    // It concerns only data with size greater than __offload_use_async_buffer_read.
-    // Data of size less than __offload_use_async_buffer_read are received synchronously.
-    // Synchronous transfer results in better performance in COI.
-    // __offload_parallel_copy is false by default but can be changed
-    // via environment variable OFFLOAD_PARALLEL_COPY
-    if (!m_initial_need_runfunction && __offload_parallel_copy) {
-        int big_size_count = 0;
-
-        for (int i = 0; i < m_vars_total; i++) {
-            if (m_vars[i].direction.out &&
-                m_vars[i].size >= __offload_use_async_buffer_read) {
-                // preallocated OUT only at second run
-                if (first_run == m_vars[i].flags.preallocated) {
-                    continue;
-                }
-                switch (m_vars_extra[i].type_src) {
-                    case c_data:
-                    case c_void_ptr:
-                    case c_void_ptr_ptr:
-                    case c_cean_var:
-                        if (m_vars[i].flags.is_static) {
-                            big_size_count++;
-                        }
-                        break;
-                    case c_string_ptr:
-                    case c_data_ptr:
-                    case c_string_ptr_ptr:
-                    case c_data_ptr_ptr:
-                    case c_cean_var_ptr:
-                    case c_cean_var_ptr_ptr:
-                    case c_dv_data:
-                    case c_dv_ptr_data:
-                    case c_dv_data_slice:
-                    case c_dv_ptr_data_slice:
-                    case c_dv_ptr:
-                        big_size_count++;
-                        break;
-                    default:
-                        break;
-                }
-            }
-        }
-        if (big_size_count > 1) {
-            should_use_async_buffer_read = true;
-        }
-    }
-    uint32_t in_deps_amount = m_in_deps_total;
-    COIEVENT *in_deps = m_in_deps_total > 0 ? m_in_deps : 0;
-
-    for (int i = 0; i < m_vars_total; i++) {
-        uint64_t received_data = m_vars[i].size;
-
-         // Nothing to receive if use_device_ptr
-         if (m_vars[i].flags.use_device_ptr )
-            continue;
-         if (m_vars_extra[i].omp_last_event_type == c_last_read &&
-             m_out_deps_total > 0) {
-             m_num_in_dependencies = m_out_deps_total;
-             m_p_in_dependencies   = m_out_deps;
-        }   
-        // At first run don't receive by preallocated target pointer as the
-        //pointer value will be ready later after call to scatter_copyout_data
-        if (first_run && m_vars[i].alloc_if && m_vars[i].flags.preallocated) {
-            m_preallocated_alloc = true;
-            // need one more call to OffloadDescriptor::receive_pointer_data
-            if (m_vars[i].direction.out) {
-                m_out_with_preallocated = true;
-            }
-            continue;
-        }
-        switch (m_vars_extra[i].type_src) {
-            case c_data_ptr_array:
-                break;
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var:
-                if (m_vars[i].direction.out &&
-                    m_vars[i].flags.is_static) {
-                    COIEVENT *event =
-                        (m_stream != no_stream ||
-                         is_async ||
-                         m_in_deps_total > 0 ||
-                         (should_use_async_buffer_read &&
-                          m_vars[i].size >= __offload_use_async_buffer_read)) ?
-                        &m_out_deps[m_out_deps_total++] : 0;
-                    PtrData *ptr_data = NULL;
-                    COIBUFFER dst_buf = NULL; // buffer at host
-                    char *base;
-
-                    if (VAR_TYPE_IS_PTR(m_vars_extra[i].type_dst)) {
-                        ptr_data = m_vars[i].into ?
-                                   m_vars_extra[i].dst_data :
-                                   m_vars_extra[i].src_data;
-                    }
-                    else if (VAR_TYPE_IS_SCALAR(m_vars_extra[i].type_dst)) {
-                        if (m_vars[i].flags.is_static_dstn) {
-                            ptr_data = m_vars[i].into ?
-                                       m_vars_extra[i].dst_data :
-                                       m_vars_extra[i].src_data;
-                        }
-                    }
-                    dst_buf = ptr_data ? ptr_data->cpu_buf : NULL;
-                    if (dst_buf == NULL) {
-                        base = offload_get_src_base(
-                            m_vars[i].into ?
-                            static_cast<char*>(m_vars[i].into) :
-                            static_cast<char*>(m_vars[i].ptr),
-                            m_vars_extra[i].type_dst);
-                    }
-
-                    if (m_vars[i].flags.is_non_cont_struct ||
-                        m_vars[i].flags.is_noncont_src ||
-                        m_vars[i].flags.is_noncont_dst) {
-                        receive_noncontiguous_pointer_data(
-                            i, dst_buf, event, received_data,
-                            m_num_in_dependencies, m_p_in_dependencies);
-                    }
-                    else if (dst_buf != 0) {
-                        res = COI::BufferCopy(
-                            dst_buf,
-                            m_vars_extra[i].src_data->mic_buf,
-                            m_vars_extra[i].cpu_offset +
-                            m_vars_extra[i].cpu_disp,
-                            m_vars[i].offset + m_vars[i].disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_copy, res);
-                        }
-                    }
-                    else {
-                       res = COI::BufferRead(
-                            m_vars_extra[i].src_data->mic_buf,
-                            m_vars[i].offset + m_vars[i].disp,
-                            base + m_vars_extra[i].cpu_offset +
-                            m_vars_extra[i].cpu_disp,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_read, res);
-                        }
-                    }
-                    ptr_received += received_data;
-                }
-                break;
-
-            case c_string_ptr:
-            case c_data_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-            case c_dv_ptr: {
-                COIBUFFER dst_buf = NULL; // buffer on host
-                if (m_vars[i].direction.out && m_vars[i].size > 0) {
-                    COIEVENT *event =
-                        (m_stream != no_stream ||
-                         is_async ||
-                         m_in_deps_total > 0 ||
-                         (should_use_async_buffer_read &&
-                          m_vars[i].size >= __offload_use_async_buffer_read)) ?
-                        &m_out_deps[m_out_deps_total++] : 0;
-
-                    uint64_t dst_offset = 0;
-                    char *base = static_cast<char*>(m_vars[i].ptr);
-
-                    if (VAR_TYPE_IS_PTR(m_vars_extra[i].type_dst)) {
-                        PtrData *ptr_data = m_vars[i].into ?
-                                            m_vars_extra[i].dst_data :
-                                            m_vars_extra[i].src_data;
-                        dst_buf = ptr_data ? ptr_data->cpu_buf : NULL;
-                        if (dst_buf == NULL) {
-                            base = m_vars[i].into ?
-                                   *static_cast<char**>(m_vars[i].into) :
-                                   *static_cast<char**>(m_vars[i].ptr);
-                        }
-                        dst_offset = m_vars_extra[i].cpu_offset +
-                                     m_vars_extra[i].cpu_disp;
-                    }
-                    else if (VAR_TYPE_IS_SCALAR(m_vars_extra[i].type_dst)) {
-                        if (m_vars[i].flags.is_static_dstn) {
-                            dst_buf = m_vars[i].into ?
-                                        m_vars_extra[i].dst_data->cpu_buf :
-                                        m_vars_extra[i].src_data->cpu_buf;
-                        }
-                        if (dst_buf == NULL) {
-                            base = offload_get_src_base(
-                                m_vars[i].into ?
-                                static_cast<char*>(m_vars[i].into) :
-                                static_cast<char*>(m_vars[i].ptr),
-                                m_vars_extra[i].type_dst);
-                        }
-                        dst_offset = m_vars_extra[i].cpu_offset +
-                                     m_vars_extra[i].cpu_disp;
-                    }
-                    else if (VAR_TYPE_IS_DV_DATA(m_vars_extra[i].type_dst) ||
-                             VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_dst)) {
-                        PtrData *ptr_data = m_vars[i].into != 0 ?
-                                            m_vars_extra[i].dst_data :
-                                            m_vars_extra[i].src_data;
-                        dst_buf = ptr_data != 0 ? ptr_data->cpu_buf : 0;
-                        if (dst_buf == NULL) {
-                            base = offload_get_src_base(
-                                m_vars[i].into ?
-                                static_cast<char*>(m_vars[i].into) :
-                                static_cast<char*>(m_vars[i].ptr),
-                                m_vars_extra[i].type_dst);
-
-                        }
-                        dst_offset = m_vars_extra[i].cpu_offset +
-                                     m_vars_extra[i].cpu_disp;
-                    }
-
-                    if (m_vars[i].flags.is_non_cont_struct ||
-                        m_vars[i].flags.is_noncont_src ||
-                        m_vars[i].flags.is_noncont_dst) {
-                        receive_noncontiguous_pointer_data(
-                            i, dst_buf, event, received_data,
-                            m_num_in_dependencies, m_p_in_dependencies);
-                    }
-                    else if (dst_buf != 0) {
-                        res = COI::BufferCopy(
-                            dst_buf,
-                            m_vars_extra[i].src_data->mic_buf,
-                            dst_offset,
-                            m_vars[i].offset + m_vars[i].disp +
-                                m_vars[i].mic_offset,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_copy, res);
-                        }
-                    }
-                    else {
-                        res = COI::BufferRead(
-                            m_vars_extra[i].src_data->mic_buf,
-                            m_vars[i].offset + m_vars[i].disp +
-                                m_vars[i].mic_offset,
-                            base + dst_offset,
-                            m_vars[i].size,
-                            COI_COPY_UNSPECIFIED,
-                            m_num_in_dependencies,
-                            m_p_in_dependencies,
-                            event);
-                        if (res != COI_SUCCESS) {
-                            if (m_status != 0) {
-                                m_status->result = translate_coi_error(res);
-                                return false;
-                            }
-                            report_coi_error(c_buf_read, res);
-                        }
-                    }
-                    ptr_received += received_data;
-                }
-                break;
-            }
-
-            default:
-                break;
-        }
-
-        if (m_vars_extra[i].omp_last_event_type == c_last_read) {
-            register_omp_event_call_back(&m_out_deps[m_out_deps_total - 1], info);                
-        }
-        // destroy buffers for obsolete stacks
-        if (m_destroy_stack.size() != 0) {       
-            for (PtrDataList::iterator it = m_destroy_stack.begin();
-                it != m_destroy_stack.end(); it++) {
-                PtrData *ptr_data = *it;
-                m_destroy_buffers.push_back(ptr_data->mic_buf);
-                OFFLOAD_TRACE(3, "Removing stack buffer with addr %p\n",
-                                  ptr_data->mic_addr);
-            }
-            m_destroy_stack.clear();
-        }
-        if (m_vars[i].free_if) {
-            // remove association for automatic variables
-            if (m_is_openmp) {
-                if (m_vars_extra[i].auto_data) {
-                    AutoData *auto_data = m_vars_extra[i].auto_data;
-                    if (m_vars[i].flags.always_delete) {
-                        auto_data->nullify_reference();
-                    }
-                    else if (auto_data->remove_reference() == 0) {
-                       m_device.remove_auto_data(auto_data->cpu_addr.start());
-                    }
-                    continue;
-                }
-                else {
-                    PtrData *ptr_data = m_vars_extra[i].src_data;
-                    if (ptr_data && 
-                        IS_OPENMP_IMPLICIT_OR_LINK(ptr_data->var_alloc_type)) {
-                        if (ptr_data->get_reference() > 0) {
-                            ptr_data->remove_reference();
-                        }
-                        continue;
-                    }
-               }
-            }
-
-            // destroy buffers
-            if (m_vars[i].direction.out || m_vars[i].into == NULL) {
-                if (!VAR_TYPE_IS_PTR(m_vars_extra[i].type_src) &&
-                    !VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_src) &&
-                    !VAR_TYPE_IS_DV_DATA(m_vars_extra[i].type_src)) {
-                    continue;
-                }
-
-                PtrData *ptr_data = m_vars_extra[i].src_data;
-                if (ptr_data->remove_reference() == 0) {
-                    // destroy buffers
-                    if (ptr_data->cpu_buf != 0) {
-                        m_destroy_buffers.push_back(ptr_data->cpu_buf);
-                    }
-                    if (ptr_data->mic_buf != 0) {
-                        m_destroy_buffers.push_back(ptr_data->mic_buf);
-                    }
-                    OFFLOAD_TRACE(3, "Removing association for addr %p\n",
-                                  ptr_data->cpu_addr.start());
-
-                    // remove association from map
-                    if (m_vars[i].flags.targetptr) {
-                        m_device.remove_targetptr_data(ptr_data->cpu_addr.start());
-                    }
-                    else {
-                        m_device.remove_ptr_data(ptr_data->cpu_addr.start());
-                    }
-                }
-            }
-            else if (VAR_TYPE_IS_PTR(m_vars_extra[i].type_dst) ||
-                     VAR_TYPE_IS_DV_DATA_SLICE(m_vars_extra[i].type_dst) ||
-                     VAR_TYPE_IS_DV_DATA(m_vars_extra[i].type_dst)) {
-                PtrData *ptr_data = m_vars_extra[i].dst_data;
-
-                if (ptr_data->remove_reference() == 0) {
-                    // destroy buffers
-                    if (ptr_data->cpu_buf != 0) {
-                        m_destroy_buffers.push_back(ptr_data->cpu_buf);
-                    }
-                    if (ptr_data->mic_buf != 0) {
-                        m_destroy_buffers.push_back(ptr_data->mic_buf);
-                    }
-                    OFFLOAD_TRACE(3, "Removing association for addr %p\n",
-                                  ptr_data->cpu_addr.start());
-
-                    // remove association from map
-                    if (m_vars[i].flags.targetptr) {
-                        m_device.remove_targetptr_data(ptr_data->cpu_addr.start());
-                    }
-                    else {
-                        m_device.remove_ptr_data(ptr_data->cpu_addr.start());
-                    }
-                }
-            }
-        }
-    }
-
-    if (m_status) {
-        m_status->data_received += ptr_received;
-    }
-
-    m_num_in_dependencies = m_out_deps_total ? m_out_deps_total :
-                                               m_num_in_dependencies;
-    m_p_in_dependencies = m_out_deps_total ? m_out_deps : m_p_in_dependencies;
-
-    OFFLOAD_TIMER_HOST_RDATA(get_timer_data(), ptr_received);
-    OFFLOAD_DEBUG_TRACE_1(1, GET_OFFLOAD_NUMBER(get_timer_data()),
-                  c_offload_received_pointer_data,
-                  "Total pointer data received from target: [%lld] bytes\n",
-                  ptr_received);
-
-    return true;
-}
-
-bool OffloadDescriptor::scatter_copyout_data()
-{
-    OffloadTimer timer(get_timer_data(), c_offload_host_scatter_outputs);
-
-    if (m_need_runfunction && m_out_datalen > 0) {
-
-        // total size that need to be transferred from target to host
-        COIMAPINSTANCE map_inst;
-        COIRESULT res;
-        char *data;
-
-        // output data buffer
-        if (m_func_desc->data_offset == 0) {
-            OffloadTimer timer_map(get_timer_data(),
-                                   c_offload_host_map_out_data_buffer);
-
-            COIRESULT res = COI::BufferMap(m_inout_buf, 0, m_out_datalen,
-                                           COI_MAP_READ_ONLY, 0, 0, 0,
-                                           &map_inst,
-                                            reinterpret_cast<void**>(&data));
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_map, res);
-            }
-        }
-        else {
-            data = (char*) m_func_desc + m_func_desc->data_offset;
-        }
-
-        // get timing data
-        OFFLOAD_TIMER_TARGET_DATA(get_timer_data(), data);
-        data += OFFLOAD_TIMER_DATALEN();
-
-        // initialize output marshaller
-        m_out.init_buffer(data, m_out_datalen);
-
-        for (int i = 0; i < m_vars_total; i++) {
-            bool src_is_for_mic = (m_vars[i].direction.out ||
-                                   m_vars[i].into == NULL);
-
-            if (m_vars_extra[i].type_src != c_data_ptr_array &&
-                m_vars[i].flags.preallocated && m_vars[i].alloc_if) {
-                PtrData *ptr_data;
-                void *ptr_value;
-                void ** cpu_ptr = src_is_for_mic ?
-                                  reinterpret_cast<void**>(m_vars[i].ptr) :
-                                  reinterpret_cast<void**>(m_vars[i].into);
-                void*   alloc_base = NULL;
-                int64_t alloc_disp = 0;
-                int64_t alloc_size;
-                if (m_vars_extra[i].alloc != NULL) {
-                    // array descriptor
-                    const Arr_Desc *ap =
-                        static_cast<const Arr_Desc*>(m_vars_extra[i].alloc);
-
-                    __arr_data_offset_and_length(ap, alloc_disp, alloc_size);
-
-                    alloc_base = reinterpret_cast<void*>(ap->base);
-                }
-
-                // get pointer to target memory
-                m_out.receive_data(&ptr_value, sizeof(void*));
-
-                // add new entry
-                if (!alloc_ptr_data(
-                    ptr_data,
-                    ptr_value,
-                    (alloc_base != NULL) ?
-                        alloc_disp : m_vars[i].disp,
-                    (alloc_base != NULL) ?
-                        alloc_size : m_vars[i].size,
-                    alloc_disp,
-                    0,
-                    m_vars[i].flags.targetptr,
-                    m_vars[i].flags.preallocated,
-                    m_vars[i].flags.pin)) {
-                    return false;
-                }
-
-                ptr_data->add_reference();
-                *cpu_ptr = ptr_value;
-                if (src_is_for_mic) {
-                    m_vars_extra[i].src_data = ptr_data;
-                }
-                else {
-                    m_vars_extra[i].dst_data = ptr_data;
-                }
-                m_vars[i].offset = (char*) ptr_value -
-                                   (char*) ptr_data->cpu_addr.start();
-            }
-
-            switch (m_vars_extra[i].type_src) {
-                case c_data_ptr_array:
-                    break;
-                case c_data:
-                case c_void_ptr:
-                case c_void_ptr_ptr:
-                case c_cean_var:
-                    if (m_vars[i].direction.out &&
-                        !m_vars[i].flags.is_static) {
-
-                        if (m_vars[i].into) {
-                            char *ptr = offload_get_src_base(
-                                static_cast<char*>(m_vars[i].into),
-                                m_vars_extra[i].type_dst);
-                            m_out.receive_data(ptr + m_vars_extra[i].cpu_disp,
-                                               m_vars[i].size);
-                        }
-                        else {
-                            m_out.receive_data(
-                                static_cast<char*>(m_vars[i].ptr) +
-                                    m_vars_extra[i].cpu_disp,
-                                m_vars[i].size);
-                        }
-                    }
-                    break;
-
-                case c_func_ptr:
-                case c_func_ptr_ptr:
-                    if (m_vars[i].direction.out) {
-                        m_out.receive_func_ptr((const void**) m_vars[i].ptr);
-                    }
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        if (m_status) {
-            m_status->data_received += m_out.get_tfr_size();
-        }
-
-        if (m_func_desc->data_offset == 0) {
-            OffloadTimer timer_unmap(get_timer_data(),
-                                     c_offload_host_unmap_out_data_buffer);
-
-            COIRESULT res = COI::BufferUnmap(map_inst, 0, 0, 0);
-            if (res != COI_SUCCESS) {
-                if (m_status != 0) {
-                    m_status->result = translate_coi_error(res);
-                    return false;
-                }
-                report_coi_error(c_buf_unmap, res);
-            }
-        }
-    }
-
-    OFFLOAD_TIMER_HOST_RDATA(get_timer_data(), m_out.get_tfr_size());
-    OFFLOAD_TRACE(1, "Total copyout data received from target: [%lld] bytes\n",
-                  m_out.get_tfr_size());
-
-    return true;
-}
-
-static void get_arr_desc_numbers(
-    const Arr_Desc *ap,
-    int64_t el_size,
-    int64_t &offset,
-    int64_t &size,
-    int     &el_number,
-    CeanReadRanges* &ptr_ranges
-)
-{
-    if (is_arr_desc_contiguous(ap)) {
-        ptr_ranges = NULL;
-        __arr_data_offset_and_length(ap, offset, size);
-        el_number = size / el_size;
-    }
-    else {
-        ptr_ranges = init_read_ranges_arr_desc(ap);
-        el_number = (ptr_ranges->range_size / el_size) *
-                    ptr_ranges->range_max_number;
-        size = ptr_ranges->range_size;
-    }
-}
-
-bool OffloadDescriptor::gen_var_descs_for_pointer_array(int i)
-{
-    int             pointers_number;
-    int             tmp_val;
-    int             new_index = m_vars_total;
-    const Arr_Desc *ap;
-    const VarDesc3 *vd3 = static_cast<const VarDesc3*>(m_vars[i].ptr);
-    int             flags = vd3->array_fields;
-    bool            src_is_for_mic = (m_vars[i].direction.out ||
-                                      m_vars[i].into == NULL);
-
-    ReadArrElements<void *>  ptr;
-    ReadArrElements<void *>  into;
-    ReadArrElements<int64_t> ext_start;
-    ReadArrElements<int64_t> ext_elements;
-    ReadArrElements<int64_t> align;
-    ReadArrElements<int64_t> alloc_if;
-    ReadArrElements<int64_t> free_if;
-    ReadArrElements<int64_t> into_start;
-    ReadArrElements<int64_t> into_elem;
-    ReadArrElements<int64_t> alloc_start;
-    ReadArrElements<int64_t> alloc_elem;
-
-
-    ap = static_cast<const Arr_Desc*>(vd3->ptr_array);
-
-    // "pointers_number" for total number of transferred pointers.
-    // For each of them we create new var_desc and put it at the bottom
-    // of the var_desc's array
-    get_arr_desc_numbers(ap, sizeof(void *), ptr.offset, ptr.size,
-        pointers_number, ptr.ranges);
-    ptr.base = reinterpret_cast<char*>(ap->base);
-
-    // 2. prepare memory for new var_descs
-    m_vars_total += pointers_number;
-    m_vars       = (VarDesc*)realloc(m_vars, m_vars_total * sizeof(VarDesc));
-    if (m_vars == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    m_vars_extra =
-        (VarExtra*)realloc(m_vars_extra, m_vars_total * sizeof(VarExtra));
-    if (m_vars_extra == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    m_in_deps    =
-        (COIEVENT*)realloc(m_in_deps, sizeof(COIEVENT) * (m_vars_total + 1));
-    if (m_in_deps == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-    m_out_deps   =
-        (COIEVENT*)realloc(m_out_deps, sizeof(COIEVENT) * m_vars_total);
-    if (m_out_deps == NULL)
-      LIBOFFLOAD_ERROR(c_malloc);
-
-    // 3. Prepare for reading new var_desc's fields
-    //    EXTENT START
-    if ((flags & (1<<flag_extent_start_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->extent_start);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, ext_start.offset,
-            ext_start.size, tmp_val, ext_start.ranges);
-        ext_start.base = reinterpret_cast<char*>(ap->base);
-        ext_start.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "extent start");
-            return false;
-        }
-    }
-    else if ((flags & (1<<flag_extent_start_is_scalar)) != 0) {
-        ext_start.val = (int64_t)vd3->extent_start;
-    }
-    else {
-        ext_start.val = 0;
-    }
-
-    //    EXTENT ELEMENTS NUMBER
-    if ((flags & (1<<flag_extent_elements_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->extent_elements);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size,
-            ext_elements.offset, ext_elements.size,
-            tmp_val, ext_elements.ranges);
-        ext_elements.base = reinterpret_cast<char*>(ap->base);
-        ext_elements.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "extent elements");
-            return false;
-        }
-    }
-    else if ((flags & (1<<flag_extent_elements_is_scalar)) != 0) {
-        ext_elements.val = (int64_t)vd3->extent_elements;
-    }
-    else {
-        ext_elements.val = m_vars[i].count;
-    }
-
-    //    ALLOC_IF
-    if ((flags & (1<<flag_alloc_if_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->alloc_if_array);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, alloc_if.offset,
-            alloc_if.size, tmp_val, alloc_if.ranges);
-        alloc_if.base = reinterpret_cast<char*>(ap->base);
-        alloc_if.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "alloc_if");
-            return false;
-        }
-    }
-    else {
-        alloc_if.val = m_vars[i].alloc_if;
-    }
-
-    //    FREE_IF
-    if ((flags & (1<<flag_free_if_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->free_if_array);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, free_if.offset,
-            free_if.size, tmp_val, free_if.ranges);
-        free_if.base = reinterpret_cast<char*>(ap->base);
-        free_if.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "free_if");
-            return false;
-        }
-    }
-    else {
-        free_if.val = m_vars[i].free_if;
-    }
-
-    //    ALIGN
-
-    if ((flags & (1<<flag_align_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->align_array);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, align.offset,
-            align.size, tmp_val, align.ranges);
-        align.base = reinterpret_cast<char*>(ap->base);
-        align.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "align");
-            return false;
-        }
-    }
-    else {
-        align.val = m_vars[i].align;
-    }
-
-    // 3.1 INTO
-
-    if (m_vars[i].into) {
-        ap = static_cast<const Arr_Desc*>(m_vars[i].into);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, into.offset,
-            into.size, tmp_val, into.ranges);
-        into.base = reinterpret_cast<char*>(ap->base);
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "into");
-            return false;
-        }
-    }
-
-    // 3.2 INTO_START
-
-    if ((flags & (1<<flag_into_start_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->into_start);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, into_start.offset,
-            into_start.size, tmp_val, into_start.ranges);
-        into_start.base = reinterpret_cast<char*>(ap->base);
-        into_start.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "into_extent start");
-            return false;
-        }
-    }
-    else if ((flags & (1<<flag_into_start_is_scalar)) != 0) {
-        into_start.val = (int64_t)vd3->into_start;
-    }
-    else {
-        into_start.val = 0;
-    }
-
-    // 3.3 INTO_ELEMENTS
-
-    if ((flags & (1<<flag_into_elements_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->into_elements);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, into_elem.offset,
-            into_elem.size, tmp_val, into_elem.ranges);
-        into_elem.base = reinterpret_cast<char*>(ap->base);
-        into_elem.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "into_extent elements");
-            return false;
-        }
-    }
-    else if ((flags & (1<<flag_into_elements_is_scalar)) != 0) {
-        into_elem.val = (int64_t)vd3->into_elements;
-    }
-    else {
-        into_elem.val = m_vars[i].count;
-    }
-
-    //    alloc_start
-
-    if ((flags & (1<<flag_alloc_start_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->alloc_start);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size,
-            alloc_start.offset, alloc_start.size, tmp_val,
-            alloc_start.ranges);
-        alloc_start.base = reinterpret_cast<char*>(ap->base);
-        alloc_start.el_size = ap->dim[ap->rank - 1].size;
-
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "alloc_extent start");
-            return false;
-        }
-    }
-    else if ((flags & (1<<flag_alloc_start_is_scalar)) != 0) {
-        alloc_start.val = (int64_t)vd3->alloc_start;
-    }
-    else {
-        alloc_start.val = 0;
-    }
-
-    //    alloc_elem
-
-    if ((flags & (1<<flag_alloc_elements_is_array)) != 0) {
-        ap = static_cast<const Arr_Desc*>(vd3->alloc_elements);
-        get_arr_desc_numbers(ap, ap->dim[ap->rank - 1].size, alloc_elem.offset,
-            alloc_elem.size, tmp_val, alloc_elem.ranges);
-        alloc_elem.base = reinterpret_cast<char*>(ap->base);
-        alloc_elem.el_size = ap->dim[ap->rank - 1].size;
-        if (tmp_val < pointers_number) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch,
-                             "alloc_extent elements");
-            return false;
-        }
-    }
-    else if ((flags & (1<<flag_alloc_elements_is_scalar)) != 0) {
-        alloc_elem.val = (int64_t)vd3->alloc_elements;
-    }
-    else {
-        alloc_elem.val = 0;
-    }
-
-    for (int k = 0; k < pointers_number; k++) {
-        int type = flags & 0x3f;
-        int type_src, type_dst;
-        //  Get new values
-        // type_src, type_dst
-        type_src = type_dst = (type == c_data_ptr_array) ?
-                              c_data_ptr   : (type == c_func_ptr_array) ?
-                              c_func_ptr   : (type == c_void_ptr_array) ?
-                              c_void_ptr   : (type == c_string_ptr_array) ?
-                              c_string_ptr : 0;
-
-        // Get ptr val
-        if (!ptr.read_next(true)) {
-            break;
-        }
-        else {
-            ptr.val = (void*)(ptr.base + ptr.offset);
-        }
-
-        // !!! If we got error at phase of reading - it's an internal
-        // !!! error, as we must detect mismatch before
-
-        // Get into val
-        if (m_vars[i].into) {
-            if (!into.read_next(true)) {
-                LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "into");
-                LIBOFFLOAD_ABORT;
-            }
-            else {
-                into.val = (void*)(into.base + into.offset);
-            }
-        }
-
-        // Get other components of the clause
-        if (!ext_start.read_next(flags & (1<<flag_extent_start_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "extent start");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!ext_elements.read_next(
-                flags & (1<<flag_extent_elements_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "extent elements");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!alloc_if.read_next(flags & (1<<flag_alloc_if_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "alloc_if");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!free_if.read_next(flags & (1<<flag_free_if_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "free_if");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!align.read_next(flags & (1<<flag_align_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "align");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!into_start.read_next(flags & (1<<flag_into_start_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "into_extent start");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!into_elem.read_next(flags & (1<<flag_into_elements_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "into_extent elements");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!alloc_start.read_next(flags & (1<<flag_alloc_start_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "alloc_extent start");
-            LIBOFFLOAD_ABORT;
-        }
-        if (!alloc_elem.read_next(
-                 flags & (1<<flag_alloc_elements_is_array))) {
-            LIBOFFLOAD_ERROR(c_pointer_array_mismatch, "alloc_extent elements");
-            LIBOFFLOAD_ABORT;
-        }
-
-        m_vars[new_index + k].direction.bits = m_vars[i].direction.bits;
-        m_vars[new_index + k].alloc_if = alloc_if.val;
-        m_vars[new_index + k].free_if = free_if.val;
-        m_vars[new_index + k].align = align.val;
-        m_vars[new_index + k].mic_offset = 0;
-        m_vars[new_index + k].flags.bits = m_vars[i].flags.bits;
-        m_vars[new_index + k].flags.is_pointer = 0;
-        m_vars[new_index + k].offset = 0;
-        m_vars[new_index + k].size = m_vars[i].size;
-        m_vars[new_index + k].flags.targetptr = m_vars[i].flags.targetptr;
-        m_vars[new_index + k].flags.preallocated =
-                                             m_vars[i].flags.preallocated;
-
-        if (ext_start.val == 0) {
-            m_vars[new_index + k].count = ext_elements.val;
-            m_vars[new_index + k].ptr = ptr.val;
-            if (type_src == c_string_ptr) {
-                m_vars[new_index + k].size = 0;
-            }
-        }
-        else {
-            m_vars[new_index + k].count = 0;
-            m_vars[new_index + k].ptr =
-                static_cast<void*>(make_arr_desc(
-                ptr.val,
-                ext_start.val,
-                ext_elements.val,
-                m_vars[i].size));
-
-            type_src = type_src == c_data_ptr ? c_cean_var_ptr :
-                                   c_string_ptr ? c_cean_var_ptr :
-                                   type_src;
-            if (!m_vars[i].into) {
-                type_dst = type_src;
-            }
-        }
-
-        if (m_vars[i].into && into_elem.val != 0) {
-            m_vars[new_index + k].into =
-                static_cast<void*>(make_arr_desc(
-                into.val,
-                into_start.val,
-                into_elem.val,
-                m_vars[i].size));
-            type_dst = (type == c_data_ptr_array) ? c_cean_var_ptr :
-                       (type == c_string_ptr_array) ? c_cean_var_ptr :
-                        type_src;
-        }
-        else {
-            m_vars[new_index + k].into = NULL;
-        }
-
-        if (alloc_elem.val != 0) {
-            m_vars[new_index + k].alloc =
-                static_cast<void*>(make_arr_desc(
-                ptr.val,
-                alloc_start.val,
-                alloc_elem.val,
-                m_vars[i].size));
-        }
-        else {
-            m_vars[new_index + k].alloc = NULL;
-        }
-
-        m_vars[new_index + k].type.src =
-            m_vars_extra[new_index + k].type_src = type_src;
-        m_vars[new_index + k].type.dst =
-            m_vars_extra[new_index + k].type_dst = type_dst;
-
-        m_vars_extra[new_index + k].alloc = m_vars[new_index + k].alloc;
-        m_vars_extra[new_index + k].is_arr_ptr_el = 1;
-        m_vars_extra[new_index + k].ptr_arr_offset =
-            src_is_for_mic ? ptr.offset : into.offset;
-    }
-    // count and alloc fields are useless at target. They can be reused
-    // for pointer arrays.
-    m_vars[i].count = pointers_number;
-    m_vars[i].ptr_arr_offset = new_index;
-    return true;
-}
-
-// Gets in dependencies of the previous offload via the stream "m_stream".
-// Out argument in_deps_amount - address of amount of the dependencies
-// Out argument in_deps - address of array of dependencies.
-// Description of the dependencies scheme for streams :
-// ----------------------------------------------------
-// Every offload forms DAG consisted of 3 nodes:
-// for in-transfers, runfunction and out-transfers.
-// Every node has in-dependencies and out-dependencies
-// Out-dependencies of previous node forms in-dependencies of current node.
-// In-dependencies of 1-st node (of in-transfers) without streams is equal
-// to NULL. For streams in-dependencies of 1-st node is equal to list of out
-// dependencies of last node of previous offload via this stream.
-// So we can say that DAGs of 2 consequent offloads via the same stream are
-// connected by the way described above.
-void OffloadDescriptor::get_stream_in_dependencies(
-    uint32_t &in_deps_amount,
-    COIEVENT* &in_deps
-)
-{
-    if (m_stream != no_stream && m_stream != 0) {
-        Stream * stream = Stream::find_stream(m_stream, false);
-        if (!stream) {
-            LIBOFFLOAD_ERROR(c_offload_no_stream,
-                             m_device.get_logical_index());
-            LIBOFFLOAD_ABORT;
-        }
-        OffloadDescriptor* offload = stream->get_last_offload();
-
-        // if it's the first offload in the stream
-        if (!offload) {
-            return;
-        }
-        // if last offload has out-tranfers
-        if (offload->m_out_deps_total) {
-            in_deps_amount = offload->m_out_deps_total;
-            in_deps = offload->m_out_deps;
-        }
-        // last offload only sends pointer data or run function or both of them
-        // and has no out-transfers
-        else if (offload->m_in_deps_total) {
-            in_deps_amount = offload->m_in_deps_total;
-            in_deps = offload->m_in_deps;
-        }
-    }
-}
-
-static void __offload_fini_library(void)
-{
-    OFFLOAD_DEBUG_TRACE(2, "Cleanup offload library ...\n");
-    if (mic_engines_total > 0) {
-        delete[] mic_engines;
-        mic_engines_total = 0;
-
-        if (mic_proxy_fs_root != 0) {
-            free(mic_proxy_fs_root);
-            mic_proxy_fs_root = 0;
-        }
-
-        if (knc_library_path != 0) {
-            free(knc_library_path);
-            knc_library_path = 0;
-        }
-
-        if (knl_library_path != 0) {
-            free(knl_library_path);
-            knl_library_path = 0;
-        }
-
-        // destroy thread key
-        thread_key_delete(mic_thread_key);
-    }
-
-    // unload COI library
-    if (COI::is_available) {
-        COI::fini();
-    }
-
-    OFFLOAD_DEBUG_TRACE(2, "Cleanup offload library ... done\n");
-}
-
-typedef std::pair<int, micLcpuMask*> deviceLcpu;
-typedef std::list<deviceLcpu> deviceLcpuList;
-
-static int process_offload_devices(
-    const char *env_var,
-    uint32_t num_devices,
-    deviceLcpuList &device_cpu_list
-)
-{
-    // Value is composed of comma separated physical device index
-    // optionally qualified by logical CPU subset, e.g. 0[60,70-80]
-    char *buf = strdup(env_var);
-    if (buf == NULL)
-        LIBOFFLOAD_ERROR(c_malloc);
-    char *str = buf;
-    bool device_set_finished = false;
-    int num_devices_specified = 0;
-    do {
-        char *dev_ptr = str;
-        int dev_len = strcspn(str, "[,");
-        micLcpuMask* cpu_mask = 0;
-        if (str[dev_len] == '[') {
-            // CPU subset specified
-            cpu_mask = new micLcpuMask;
-            cpu_mask->reset();
-            char *cpu_ptr = str + dev_len + 1;
-            do {
-                int64_t cnum;
-                bool cpu_set_finished = false;
-                int cpu_len = strcspn(cpu_ptr, ",-]");
-                if (cpu_ptr[cpu_len] == ',' || cpu_ptr[cpu_len] == ']') {
-                    // A single CPU specified
-                    cpu_set_finished = cpu_ptr[cpu_len] == ']';
-                    cpu_ptr[cpu_len] = '\0';
-                    // Convert cpu string to an int
-                    if (!__offload_parse_int_string(cpu_ptr, cnum)) {
-                        LIBOFFLOAD_ERROR(c_mic_init7);
-                        delete cpu_mask;
-                        free(buf);
-                        return 0;
-                    } else {
-                        OFFLOAD_DEBUG_TRACE(3,
-                            "Single CPU %d selected\n", cnum);
-                        cpu_mask->set(cnum);
-                    }
-                    cpu_ptr = cpu_ptr + cpu_len + 1;
-                    if (cpu_set_finished) {
-                        break;
-                    }
-                } else if (cpu_ptr[cpu_len] == '-') {
-                    int64_t range_start, range_end;
-                    // A range of CPUs specified
-                    cpu_ptr[cpu_len] = '\0';
-                    // Convert cpu string to an int
-                    if (!__offload_parse_int_string(cpu_ptr, range_start)) {
-                        LIBOFFLOAD_ERROR(c_mic_init8);
-                        delete cpu_mask;
-                        free(buf);
-                        return 0;
-                    } else {
-                        OFFLOAD_DEBUG_TRACE(3,
-                            "Start of CPU range specified as %d\n",
-                            range_start);
-                        cpu_ptr = cpu_ptr + cpu_len + 1;
-                        cpu_len = strcspn(cpu_ptr, ",]");
-                        if (cpu_ptr[cpu_len] == ',' ||
-                            cpu_ptr[cpu_len] == ']') {
-                            cpu_set_finished = cpu_ptr[cpu_len] == ']';
-                            cpu_ptr[cpu_len] = '\0';
-                            // Convert cpu string to an int
-                            if (!__offload_parse_int_string(
-                                cpu_ptr, range_end)) {
-                                LIBOFFLOAD_ERROR(c_mic_init9);
-                                delete cpu_mask;
-                                free(buf);
-                                return 0;
-                            } else {
-                                OFFLOAD_DEBUG_TRACE(3,
-                                    "End of CPU range specified as %d\n",
-                                    range_end);
-                                if (range_end < range_start) {
-                                    LIBOFFLOAD_ERROR(c_mic_init10);
-                                    delete cpu_mask;
-                                    free(buf);
-                                    return 0;
-                                } else {
-                                    for (int i=range_start; i<=range_end; i++)
-                                    {
-                                        OFFLOAD_DEBUG_TRACE(3,
-                                          "CPU %d selected as part of range\n",
-                                          i);
-                                        cpu_mask->set(i);
-                                    }
-                                    cpu_ptr = cpu_ptr + cpu_len + 1;
-                                    if (cpu_set_finished) {
-                                        break;
-                                    }
-                                }
-                            }
-                        } else {
-                            LIBOFFLOAD_ERROR(c_mic_init10);
-                            delete cpu_mask;
-                            free(buf);
-                            return 0;
-                        }
-                    }
-                } else {
-                    // Error: expected , or - or ]
-                    LIBOFFLOAD_ERROR(c_mic_init11);
-                    delete cpu_mask;
-                    free(buf);
-                    return 0;
-                }
-            } while (true);
-            // Point to next device specification
-            str = cpu_ptr;
-            if (*str == '\0') {
-                device_set_finished = true;
-            } else {
-                // Skip the comma after a device specification
-                str++;
-            }
-        } else if (str[dev_len] == ',') {
-            // CPU subset not specified
-            // Point to next device specification
-            str = str + dev_len + 1;
-        } else {
-            // No more device specifications
-            device_set_finished = true;
-        }
-        dev_ptr[dev_len] = '\0';
-        // Convert device string to an int
-        int64_t num;
-        if (!__offload_parse_int_string(dev_ptr, num)) {
-            LIBOFFLOAD_ERROR(c_mic_init5);
-            delete cpu_mask;
-            free(buf);
-            return 0;
-        }
-        if (num < 0 || num >= num_devices) {
-            LIBOFFLOAD_ERROR(c_mic_init6, num);
-            delete cpu_mask;
-            free(buf);
-            return 0;
-        }
-           OFFLOAD_DEBUG_TRACE(3, "Offloadable MIC = %d\n", num);
-        // Save the specified physical device and cpu mask
-        device_cpu_list.push_back(make_pair(num, cpu_mask));
-        num_devices_specified++;
-
-        if (device_set_finished) {
-            break;
-        }
-    } while (true);
-
-    free(buf);
-    return num_devices_specified;
-}
-
-static void __offload_init_library_once(void)
-{
-    COIRESULT res;
-    uint32_t num_devices;
-    deviceLcpuList device_cpu_list;
-    prefix = report_get_message_str(c_report_host);
-
-    // initialize trace
-    const char *env_var = getenv(htrace_envname);
-    if (env_var != 0 && *env_var != '\0') {
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val)) {
-            console_enabled = new_val & 0x0f;
-        }
-    }
-    
-       OFFLOAD_DEBUG_TRACE(2, "---- Start of environment variable processing\n");
-    env_var = getenv(offload_report_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            offload_report_envname, env_var);
-        int64_t env_val;
-        if (__offload_parse_int_string(env_var, env_val)) {
-            if (env_val == OFFLOAD_REPORT_1 ||
-                env_val == OFFLOAD_REPORT_2 ||
-                env_val == OFFLOAD_REPORT_3) {
-                offload_report_level = env_val;
-                   OFFLOAD_DEBUG_TRACE(2, "Offload report level set to %d\n",
-                    offload_report_level);
-            }
-            else {
-                LIBOFFLOAD_ERROR(c_invalid_env_report_value,
-                                 offload_report_envname);
-            }
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_int_value,
-                             offload_report_envname);
-        }
-    }
-    else if (!offload_report_level) {
-        env_var = getenv(timer_envname);
-        if (env_var != 0 && *env_var != '\0') {
-               OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n", timer_envname, env_var);
-            timer_enabled = atoi(env_var);
-               OFFLOAD_DEBUG_TRACE(2, "Timer enable flag set to %d\n",
-                timer_enabled);
-        }
-    }
-
-    // initialize COI
-    if (!COI::init()) {
-        return;
-    }
-
-    // Process OFFLOAD_NODES, specification of physical MICs available
-    env_var = getenv("OFFLOAD_NODES");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- OFFLOAD_NODES=%s\n", env_var);
-               // Pass env var on to COI
-        char * new_env_var =
-                   (char*) malloc(sizeof("COI_OFFLOAD_NODES=") +
-                                  strlen(env_var) + 1);
-        if (new_env_var == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        sprintf(new_env_var, "COI_OFFLOAD_NODES=%s", env_var);
-        putenv(new_env_var);
-           OFFLOAD_DEBUG_TRACE(2, "Setting COI_OFFLOAD_NODES = %s \n", getenv("COI_OFFLOAD_NODES"));
-
-        // value is composed of comma separated physical device indexes
-        char *buf = strdup(env_var);
-        if (buf == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        char *str, *ptr;
-               int num_mics = 0;
-        for (str = strtok_r(buf, ",", &ptr); str != 0;
-            str = strtok_r(0, ",", &ptr)) {
-            // count this MIC
-            num_mics++;
-        }
-           OFFLOAD_DEBUG_TRACE(2, "Number of offloadable MICs = %d\n", num_mics);
-        free(buf);
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "OFFLOAD_NODES is not set\n");
-    }
-
-    // get number of devices installed in the system
-    res = COI::EngineGetCount(COI_ISA_MIC, &num_devices);
-    if (res != COI_SUCCESS) {
-        return;
-    }
-
-    if (num_devices > MIC_ENGINES_MAX) {
-        num_devices = MIC_ENGINES_MAX;
-    }
-
-    // Determine devices & cpus that can be used for offloading
-    env_var = getenv("OFFLOAD_DEVICES");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- OFFLOAD_DEVICES=%s\n", env_var);
-        if (strcasecmp(env_var, "none") != 0) {
-            mic_engines_total =
-                process_offload_devices(
-                    env_var, num_devices, device_cpu_list);
-            if (mic_engines_total > 0) {
-                OFFLOAD_DEBUG_TRACE(2, "Valid value, %d device(s) specified\n",
-                       mic_engines_total);
-            }
-            else {
-                OFFLOAD_DEBUG_TRACE(2, "Invalid value, will not offload\n");
-                return;
-            }
-        }
-        else {
-            // No need to continue since no offload devices
-            return;
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "OFFLOAD_DEVICES is not set\n");
-    }
-    if (mic_engines_total == 0) {
-        // Fallback to using all available devices and all CPUs on each
-        OFFLOAD_DEBUG_TRACE(2, "Fallback to all devices\n");
-        device_cpu_list.clear();
-        mic_engines_total = 0;
-        for (int i = 0; i < num_devices; i++) {
-            COIENGINE engine;
-            res = COI::EngineGetHandle(COI_ISA_MIC, i, &engine);
-            if (res == COI_SUCCESS) {
-                device_cpu_list.push_back(make_pair(i, (micLcpuMask*)0));
-                OFFLOAD_DEBUG_TRACE(2, "Device %d is available\n", i);
-                mic_engines_total++;
-            }
-        }
-    }
-   
-    // no need to continue if there are no devices to offload to
-    if (mic_engines_total <= 0) {
-        return;
-    }
-
-    // Initialize indexes for available devices
-    mic_engines = new Engine[mic_engines_total];
-    std::list<deviceLcpu>::iterator deviceIterator;
-    int l_idx = 0;
-    for (deviceIterator = device_cpu_list.begin();
-         deviceIterator != device_cpu_list.end();
-         deviceIterator++)
-    {
-        deviceLcpu device_mask_pair = *deviceIterator;
-        int device_num = device_mask_pair.first;
-        micLcpuMask *device_mask = device_mask_pair.second;
-        
-        mic_engines[l_idx].set_indexes(l_idx, device_num);
-        mic_engines[l_idx].set_cpu_mask(device_mask);
-        OFFLOAD_DEBUG_TRACE(2,
-            "Logical MIC%d => Physical MIC%d\n", l_idx, device_num);
-        if (device_mask != NULL) {
-            std::string cpu_string =
-                device_mask->to_string<
-                    char,
-                    std::string::traits_type,
-                    std::string::allocator_type>();
-            OFFLOAD_DEBUG_TRACE(2, "    CPUs: %s\n", cpu_string.data());
-        }
-        else {
-            OFFLOAD_DEBUG_TRACE(2, "    CPUs: all\n");
-        }
-        l_idx++;
-    }
-    
-    // Get DMA channel count to pass it to COI
-    env_var = getenv("OFFLOAD_DMA_CHANNEL_COUNT");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- OFFLOAD_DMA_CHANNEL_COUNT=%s\n", env_var);
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val)) {
-            mic_dma_channel_count = new_val;
-               OFFLOAD_DEBUG_TRACE(2, "Using %d DMA channels\n",
-                mic_dma_channel_count);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value,
-                             "OFFLOAD_DMA_CHANNEL_COUNT");
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "OFFLOAD_DMA_CHANNEL_COUNT is not set\n");
-    }
-
-    // Set COI_HOST_THREAD_AFFINITY if OFFLOAD_HOST_THREAD_AFFINITY is set.
-    // Use putenv instead of setenv as Windows has no setenv.
-    // Note: putenv requires its argument can't be freed or modified.
-    // So no free after call to putenv or elsewhere.
-    env_var = getenv("OFFLOAD_HOST_THREAD_AFFINITY");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- OFFLOAD_HOST_THREAD_AFFINITY=%s\n", env_var);
-        char * new_env_var =
-                   (char*) malloc(sizeof("COI_HOST_THREAD_AFFINITY=") +
-                                  strlen(env_var) + 1);
-        if (new_env_var == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        sprintf(new_env_var, "COI_HOST_THREAD_AFFINITY=%s", env_var);
-        putenv(new_env_var);
-           OFFLOAD_DEBUG_TRACE(2, "Setting COI_HOST_THREAD_AFFINITY = %s \n",
-                                                getenv("COI_HOST_THREAD_AFFINITY"));
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "OFFLOAD_HOST_THREAD_AFFINITY is not set\n");
-    }
-
-    // library search path for KNC device binaries
-    env_var = getenv("MIC_LD_LIBRARY_PATH");
-    if (env_var != 0) {
-        OFFLOAD_DEBUG_TRACE(2, "---- MIC_LD_LIBRARY_PATH=%s\n", env_var);
-        knc_library_path = strdup(env_var);
-        if (knc_library_path == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        OFFLOAD_DEBUG_TRACE(2, "KNC library path set to %s\n", knc_library_path);
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE(2, "MIC_LD_LIBRARY_PATH is not set\n");
-    }
-
-    // library search path for KNL device binaries
-    env_var = getenv("LD_LIBRARY_PATH");
-    if (env_var != 0) {
-        OFFLOAD_DEBUG_TRACE(2, "---- LD_LIBRARY_PATH=%s\n", env_var);
-        knl_library_path = strdup(env_var);
-        if (knl_library_path == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-        OFFLOAD_DEBUG_TRACE(2, "KNL library path set to %s\n", knl_library_path);
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE(2, "LD_LIBRARY_PATH is not set\n");
-    }
-
-    // memory size reserved for COI buffers
-    env_var = getenv("MIC_BUFFERSIZE");
-    if (env_var != 0 && *env_var != '\0') {
-        OFFLOAD_DEBUG_TRACE(2, "---- MIC_BUFFERSIZE=%s\n", env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            mic_buffer_size = new_size;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Reserved memory for COI buffers set to %lld bytes\n",
-                mic_buffer_size);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value, "MIC_BUFFERSIZE");
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "MIC_BUFFERSIZE is not set\n");
-    }
-
-    // memory size reserved for 4K pages for COI buffers
-    env_var = getenv("MIC_4K_BUFFER_RESERVE_SIZE");
-    if (env_var != 0 && *env_var != '\0') {
-        OFFLOAD_DEBUG_TRACE(2, "---- MIC_4K_BUFFER_RESERVE_SIZE=%s\n", env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            mic_4k_buffer_size = new_size;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Reserved memory for 4K COI buffers set to %lld bytes\n",
-                mic_4k_buffer_size);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value, "MIC_4K_BUFFER_RESERVE_SIZE");
-        }
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE(2, "MIC_4K_BUFFER_RESERVE_SIZE is not set\n");
-    }
-
-    // memory size reserved for 2M pages for COI buffers
-    env_var = getenv("MIC_2M_BUFFER_RESERVE_SIZE");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- MIC_2M_BUFFER_RESERVE_SIZE=%s\n", env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            mic_2m_buffer_size = new_size;
-            OFFLOAD_DEBUG_TRACE(2,
-                "Reserved memory for 2M COI buffers set to %lld bytes\n",
-                mic_2m_buffer_size);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value,
-                "MIC_2M_BUFFER_RESERVE_SIZE");
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "MIC_2M_BUFFER_RESERVE_SIZE is not set\n");
-    }
-
-    // determine stacksize for the pipeline on the device
-    env_var = getenv("MIC_STACKSIZE");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- MIC_STACKSIZE=%s\n", env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size) &&
-            (new_size >= 16384) && ((new_size & 4095) == 0)) {
-            mic_stack_size = new_size;
-            OFFLOAD_DEBUG_TRACE(2, "MIC stack size set to %lld bytes\n",
-                mic_stack_size);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_mic_init3);
-        }
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE(2, "MIC_STACKSIZE is not set\n");
-    }
-
-    // proxy I/O
-    env_var = getenv("MIC_PROXY_IO");
-    if (env_var != 0 && *env_var != '\0') {
-        OFFLOAD_DEBUG_TRACE(2, "---- MIC_PROXY_IO=%s\n", env_var);
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val)) {
-            mic_proxy_io = new_val;
-            OFFLOAD_DEBUG_TRACE(2, "MIC proxy i/o set to %s\n",
-                mic_proxy_io);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_int_value, "MIC_PROXY_IO");
-        }
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE(2, "MIC_PROXY_IO is not set\n");
-    }
-
-    
-    env_var = getenv("MIC_PROXY_FS_ROOT");
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- MIC_PROXY_FS_ROOT=%s\n", env_var);
-        mic_proxy_fs_root = strdup(env_var);
-        if (mic_proxy_fs_root == NULL)
-            LIBOFFLOAD_ERROR(c_malloc);
-       OFFLOAD_DEBUG_TRACE(2, "MIC proxy fs root set to %s\n",
-            mic_proxy_fs_root);
-    }
-    else {
-       OFFLOAD_DEBUG_TRACE(2, "MIC_PROXY_FS_ROOT is not set\n");
-    }
-
-    // Prepare environment for the target process using the following
-    // rules
-    // - If MIC_ENV_PREFIX is set then any environment variable on the
-    //   host which has that prefix are copied to the device without
-    //   the prefix.
-    //   All other host environment variables are ignored.
-    // - If MIC_ENV_PREFIX is not set or if MIC_ENV_PREFIX="" then host
-    //   environment is duplicated.
-    env_var = getenv("MIC_ENV_PREFIX");
-    if (env_var != 0 && *env_var != '\0') {
-       OFFLOAD_DEBUG_TRACE(2, "---- MIC_ENV_PREFIX=%s\n", env_var);
-        mic_env_vars.set_prefix(env_var);
-
-        int len = strlen(env_var);
-        for (int i = 0; environ[i] != 0; i++) {
-            if (strncmp(environ[i], env_var, len) == 0 &&
-                strncmp(environ[i], "MIC_LD_LIBRARY_PATH", 19) != 0 &&
-                environ[i][len] != '=') {
-                mic_env_vars.analyze_env_var(environ[i]);
-            }
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "MIC_ENV_PREFIX is not set\n");
-    }
-
-    // create key for thread data
-    if (thread_key_create(&mic_thread_key, Engine::destroy_thread_data)) {
-        LIBOFFLOAD_ERROR(c_mic_init4, errno);
-        return;
-    }
-
-    // cpu frequency
-    cpu_frequency = COI::PerfGetCycleFrequency();
-    
-    env_var = getenv(mic_use_2mb_buffers_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            mic_use_2mb_buffers_envname, env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            __offload_use_2mb_buffers = new_size;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Threshold for use of 2M buffers set to %lld\n",
-                __offload_use_2mb_buffers);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value,
-                             mic_use_2mb_buffers_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n", mic_use_2mb_buffers_envname);
-    }
-    
-    env_var = getenv(mic_use_async_buffer_write_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            mic_use_async_buffer_write_envname, env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            __offload_use_async_buffer_write = new_size;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Threshold for async buffer write set to %lld\n",
-                __offload_use_async_buffer_write);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n",
-            mic_use_async_buffer_write_envname);
-    }
-    
-    env_var = getenv(mic_use_async_buffer_read_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            mic_use_async_buffer_read_envname, env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            __offload_use_async_buffer_read = new_size;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Threshold for async buffer read set to %lld\n",
-                __offload_use_async_buffer_read);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n",
-            mic_use_async_buffer_read_envname);
-    }
-
-    // mic initialization type
-    env_var = getenv(offload_init_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            offload_init_envname, env_var);
-        if (strcmp(env_var, "on_offload") == 0) {
-            __offload_init_type = c_init_on_offload;
-               OFFLOAD_DEBUG_TRACE(2,
-                "A MIC device will be initialized "
-                "on first offload to that device\n");
-        }
-        else if (strcmp(env_var, "on_offload_all") == 0) {
-            __offload_init_type = c_init_on_offload_all;
-               OFFLOAD_DEBUG_TRACE(2,
-                "All MIC devices will be initialized "
-                "on first offload to any device\n");
-        }
-        else if (strcmp(env_var, "on_start") == 0) {
-            __offload_init_type = c_init_on_start;
-               OFFLOAD_DEBUG_TRACE(2,
-                "All MIC devices will be initialized "
-                "at program start\n");
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value, offload_init_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n", offload_init_envname);
-    }
-
-    // active wait
-    env_var = getenv(offload_active_wait_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            offload_active_wait_envname, env_var);
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val)) {
-            __offload_active_wait = new_val;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Flag to poll on event completion is set to %d\n",
-                __offload_active_wait);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_int_value,
-                             offload_active_wait_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n", offload_active_wait_envname);
-    }
-
-    // always wait
-    env_var = getenv(offload_always_wait_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            offload_always_wait_envname, env_var);
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val)) {
-            __offload_always_wait = new_val;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Flag to poll on event completion is set to %d\n",
-                __offload_active_wait);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_int_value,
-                             offload_always_wait_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n", offload_always_wait_envname);
-    }
-
-    // omp device num
-    env_var = getenv(omp_device_num_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            omp_device_num_envname, env_var);
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val) && new_val >= 0) {
-            __omp_device_num = new_val;
-               OFFLOAD_DEBUG_TRACE(2, "OpenMP default device number is set to %d\n",
-                __omp_device_num);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_omp_invalid_device_num_env,
-                             omp_device_num_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n", omp_device_num_envname);
-    }
-
-    // parallel copy of offload_transfer
-    env_var = getenv(parallel_copy_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            parallel_copy_envname, env_var);
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val) && new_val >= 0) {
-            __offload_parallel_copy = new_val;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Flag for using async buffer copy is set to %d\n",
-                __offload_parallel_copy);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value,
-                             parallel_copy_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n", parallel_copy_envname);
-    }
-
-    // use COI interface for noncontiguous arrays transfer
-    env_var = getenv(use_coi_noncontiguous_transfer_envname);
-    if (env_var != 0 && *env_var != '\0') {
-           OFFLOAD_DEBUG_TRACE(2, "---- %s=%s\n",
-            use_coi_noncontiguous_transfer_envname, env_var);
-        uint64_t new_size;
-        if (__offload_parse_size_string(env_var, new_size)) {
-            __offload_use_coi_noncontiguous_transfer = new_size;
-               OFFLOAD_DEBUG_TRACE(2,
-                "Flag for using new COI noncontiguous API is set to %d\n",
-                __offload_use_coi_noncontiguous_transfer);
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_value,
-                             use_coi_noncontiguous_transfer_envname);
-        }
-    }
-    else {
-           OFFLOAD_DEBUG_TRACE(2, "%s is not set\n",
-            use_coi_noncontiguous_transfer_envname);
-    }
-
-    OFFLOAD_DEBUG_TRACE(2, "---- End of environment variable processing\n");
-
-    // init ORSL
-    ORSL::init();
-}
-
-extern int __offload_init_library(void)
-{
-    // do one time intialization
-    static OffloadOnceControl ctrl = OFFLOAD_ONCE_CONTROL_INIT;
-    __offload_run_once(&ctrl, __offload_init_library_once);
-
-    // offload is available if COI is available and the number of devices > 0
-    bool is_available = COI::is_available && (mic_engines_total > 0);
-
-    // register pending libraries if there are any
-    if (is_available && __target_libs) {
-        mutex_locker_t locker(__target_libs_lock);
-
-        for (TargetImageList::iterator it = __target_libs_list.begin();
-             it != __target_libs_list.end(); it++) {
-            // Register library in COI
-            COI::ProcessRegisterLibraries(1, &it->data, &it->size,
-                                          &it->origin, &it->offset);
-
-            // add lib to all engines
-            for (int i = 0; i < mic_engines_total; i++) {
-                mic_engines[i].add_lib(*it);
-            }
-        }
-
-        __target_libs = false;
-        __target_libs_list.clear();
-    }
-
-    return is_available;
-}
-
-extern "C" bool __offload_target_image_is_executable(const void *target_image)
-{
-    const struct Image *image = static_cast<const struct Image*>(target_image);
-
-    // decode image
-    const char *name = image->data;
-    const void *data = image->data + strlen(image->data) + 1;
-
-    // determine image type
-    const Elf64_Ehdr *hdr = static_cast<const Elf64_Ehdr*>(data);
-    return (hdr->e_type == ET_EXEC);
-}
-
-extern "C" bool __offload_register_image(const void *target_image)
-{
-    const struct Image *image = static_cast<const struct Image*>(target_image);
-    const void *data = image->data + strlen(image->data) + 1;
-    uint64_t    size = image->size;
-    uint64_t    offset = 0;
-
-    // decode image
-    const char *fat_name = image->data;
-    char *mic_name   = (char *) malloc(strlen(image->data) + 1);
-    char *host_name  = (char *) malloc(strlen(image->data));
-    int        i;
-
-    if ((mic_name == NULL) || (host_name == NULL))
-        LIBOFFLOAD_ERROR(c_malloc);
-
-    // The origin name is the name of the file on the host
-    // this is used by Vtune, since it is a fat binary we
-    // use the host file name of the fat binary.
-    // Driver prepends the host file name ending with "?"
-    // to the image->data name so need to extract the string
-    // name format:  <mic_name>?<origin>
-
-    // Get <mic_name>
-    i = 0;
-    while ((*fat_name != '\0') && (*fat_name != '?')) {
-       mic_name[i] = *fat_name;
-       fat_name++;
-       i++;
-    }
-
-    // Remove the host file name by inserting end of string marker
-    mic_name[i]  = '\0';
-   
-    // Get <host_name>
-    if (*fat_name == '?') {
-       // The string following "?" is the name of the host file name.
-       fat_name++;
-       i = 0;
-       while (*fat_name != '\0') {
-          host_name[i] = *fat_name;
-          fat_name++;
-          i++;
-       }
-       host_name[i] = '\0';
-    }
-    else {
-    // Windows current does not have host name 
-       free(host_name);
-       host_name = 0;
-    }
-
-    // our actions depend on the image type
-    const Elf64_Ehdr *hdr = static_cast<const Elf64_Ehdr*>(data);
-    switch (hdr->e_type) {
-        case ET_EXEC:
-            __current_image_is_dll = false;
-            // Each offload application is supposed to have only one target
-            // image representing target executable.
-            // No thread synchronization is required here as the initialization
-            // code is always executed in a single thread.
-            if (__target_exe != 0) {
-                LIBOFFLOAD_ERROR(c_multiple_target_exes);
-                exit(1);
-            }
-            __target_exe = new TargetImage(mic_name, data, size, host_name, offset);
-
-            // Registration code for execs is always called from the context
-            // of main and thus we can safely call any function here,
-            // including LoadLibrary API on windows. This is the place where
-            // we do the offload library initialization.
-            if (__offload_init_library()) {
-                // initialize engine if init_type is on_start
-                if (__offload_init_type == c_init_on_start) {
-                    for (int i = 0; i < mic_engines_total; i++) {
-                        mic_engines[i].init();
-                    }
-                }
-            }
-            return mic_engines_total > 0;
-
-        case ET_DYN:
-        {
-            char * fullname = NULL;
-            __current_image_is_dll = true;
-            // We add the library to a list of pending libraries
-            __target_libs_lock.lock();
-            __target_libs = true;
-            __target_libs_list.push_back(
-            TargetImage(mic_name, data, size, fullname, offset));
-            __target_libs_lock.unlock();
-            // If __target_exe is set, then main has started running
-            // If not main, then we can't do anything useful here
-            // because this registration code is called from DllMain
-            // context (on windows).
-            if (__target_exe != 0) {
-                // There is no need to delay loading the library
-                if (!__offload_init_library()) {
-                    // Couldn't validate library as a fat offload library
-                    LIBOFFLOAD_ERROR(c_unknown_binary_type);
-                    exit(1);
-                }
-            }
-            return true;
-        }
-
-        default:
-            // something is definitely wrong, issue an error and exit
-            LIBOFFLOAD_ERROR(c_unknown_binary_type);
-            exit(1);
-    }
-}
-
-// When dlopen is used dlclose may happen after the COI process
-// is destroyed.  In which case images cannot be unloaded and should
-// be skipped.  So track if coi has been unloaded.
-static bool coi_may_have_been_unloaded = false;
-
-extern "C" void __offload_unregister_image(const void *target_image)
-{
-    // Target image is packed as follows:
-    //      8 bytes                - size of the target binary
-    //      null-terminated string - binary name
-    //      <size> bytes           - binary contents
-    const struct Image {
-         int64_t size;
-         char data[];
-    } *image = static_cast<const struct Image*>(target_image);
-
-    // decode image
-    const char *name = image->data;
-    const void *data = image->data + strlen(image->data) + 1;
-
-    // our actions depend on the image type
-    const Elf64_Ehdr *hdr = static_cast<const Elf64_Ehdr*>(data);
-    if (hdr->e_type == ET_EXEC) {
-        // We are executing exec's desctructors.
-        // It is time to do a library cleanup.
-        if (timer_enabled) {
-            Offload_Timer_Print();
-        }
-
-        coi_may_have_been_unloaded = true;
-
-        // Do not unload the MYO library if it loaded in dll.
-        if (!__myo_init_in_so)
-        {
-#ifdef MYO_SUPPORT
-            __offload_myoFini();
-#endif // MYO_SUPPORT
-
-            __offload_fini_library();
-       }
-    }
-    else if ((hdr->e_type == ET_DYN) && !coi_may_have_been_unloaded) {
-        for (int i = 0; i < mic_engines_total; i++) {
-           mic_engines[i].unload_library(data, name);
-        }
-
-    }
-}
-
-extern "C" void __offload_register_task_callback(void (*cb)(void *))
-{
-    task_completion_callback = cb;
-}
-
-// Runtime trace interface for user programs
-
-void __offload_console_trace(int level)
-{
-    console_enabled = level;
-}
-
-// User-visible offload API
-
-int _Offload_number_of_devices(void)
-{
-    __offload_init_library();
-    return mic_engines_total;
-}
-
-int _Offload_get_device_number(void)
-{
-    return -1;
-}
-
-int _Offload_get_physical_device_number(void)
-{
-    return -1;
-}
-
-int _Offload_signaled(int index, void *signal)
-{
-    __offload_init_library();
-
-    // check index value
-    if (index < 0) {
-        LIBOFFLOAD_ERROR(c_offload_signaled1, index);
-        LIBOFFLOAD_ABORT;
-    }
-
-    index %= mic_engines_total;
-
-    // find associated async task
-    OffloadDescriptor *task =
-        mic_engines[index].find_signal(signal, false);
-    if (task == 0) {
-        LIBOFFLOAD_ERROR(c_offload_signaled2, signal);
-        LIBOFFLOAD_ABORT;
-    }
-    // if signal is removed by wait completing
-    else if (task == SIGNAL_HAS_COMPLETED) {
-        return (true);
-    }
-    return task->is_signaled();
-}
-
-void _Offload_report(int val)
-{
-    if (val == OFFLOAD_REPORT_ON ||
-        val == OFFLOAD_REPORT_OFF) {
-        offload_report_enabled = val;
-    }
-}
-
-int _Offload_find_associated_mic_memory(
-    int          target,
-    const void*  cpu_addr,
-    void**       cpu_base_addr,
-    uint64_t*    buf_length,
-    void**       mic_addr,
-    uint64_t*    mic_buf_start_offset,
-    int*         is_static
-)
-{
-    __offload_init_library();
-
-    // check target value
-    if (target < 0) {
-        LIBOFFLOAD_ERROR(c_offload_signaled1, target);
-        LIBOFFLOAD_ABORT;
-    }
-    target %= mic_engines_total;
-
-    // find existing association in pointer table
-    PtrData* ptr_data = mic_engines[target].find_ptr_data(cpu_addr);
-    if (ptr_data == 0) {
-        OFFLOAD_TRACE(3, "Association does not exist\n");
-        return 0;
-    }
-
-    OFFLOAD_TRACE(3, "Found association: base %p, length %lld, is_static %d\n",
-                  ptr_data->cpu_addr.start(), ptr_data->cpu_addr.length(),
-                  ptr_data->is_static);
-
-    if (ptr_data->mic_buf != 0 && ptr_data->mic_addr == 0) {
-        COIRESULT res = COI::BufferGetSinkAddress(ptr_data->mic_buf,
-                                                  &ptr_data->mic_addr);
-        if (res != COI_SUCCESS) {
-            return 0;
-        }
-    }
-    *cpu_base_addr = const_cast<void *>(ptr_data->cpu_addr.start());
-    *buf_length = ptr_data->cpu_addr.length() - ptr_data->alloc_disp;
-    *mic_addr = (void *)(ptr_data->mic_addr + ptr_data->mic_offset);
-    *mic_buf_start_offset = ptr_data->alloc_disp;
-    *is_static = ptr_data->is_static;
-    return ptr_data->is_static ? 1 : ptr_data->get_reference();
-}
-
-_Offload_stream _Offload_stream_create(
-    int device,           // MIC device number
-    int number_of_cpus    // Cores allocated to the stream
-    )
-{
-    __offload_init_library();
-
-    // check target value
-    if (device < 0) {
-        LIBOFFLOAD_ERROR(c_offload_signaled1, device);
-        LIBOFFLOAD_ABORT;
-    }
-    device %= mic_engines_total;
-
-    // Create new stream and get its handle
-    _Offload_stream handle = Stream::add_stream(device, number_of_cpus);
-    if (handle == 0) {
-        OFFLOAD_TRACE(3, "Can't create stream\n");
-        return 0;
-    }
-
-    // create pipeline associated with the new stream
-    mic_engines[device].get_pipeline(handle);
-
-    return(handle);
-}
-
-int _Offload_stream_destroy(
-    int             device,   // MIC device number
-    _Offload_stream handle    // stream to destroy
-    )
-{
-    if (Stream::get_streams_count() == 0) {
-        LIBOFFLOAD_ERROR(c_offload_streams_are_absent);
-        LIBOFFLOAD_ABORT;
-    }
-    // check target value
-    if (device < 0) {
-        LIBOFFLOAD_ERROR(c_offload_signaled1, device);
-        LIBOFFLOAD_ABORT;
-    }
-    device %= mic_engines_total;
-
-    mic_engines[device].stream_destroy(handle);
-
-    return(true);
-}
-
-int _Offload_stream_delete(
-    _Offload_stream handle    // stream to destroy
-    )
-{
-    int device;    // MIC device number
-    Stream * stream;
-
-    if (Stream::get_streams_count() == 0) {
-        LIBOFFLOAD_ERROR(c_offload_streams_are_absent);
-        LIBOFFLOAD_ABORT;
-    }
-
-    stream = Stream::find_stream(handle, false);
-    // the stream was not created or was destroyed
-    if (!stream) {
-        LIBOFFLOAD_ERROR(c_offload_no_stream, device);
-        LIBOFFLOAD_ABORT;
-    }
-
-    device = stream->get_device();
-
-    mic_engines[device].stream_destroy(handle);
-
-    return(true);
-}
-
-int _Offload_stream_completed(int device, _Offload_stream handler)
-{
-    if (Stream::get_streams_count() == 0) {
-        LIBOFFLOAD_ERROR(c_offload_streams_are_absent);
-        LIBOFFLOAD_ABORT;
-    }
-    // check device index value
-    if (device < -1) {
-        LIBOFFLOAD_ERROR(c_offload_signaled1, device);
-        LIBOFFLOAD_ABORT;
-    }
-    else if (device > -1) {
-        device %= mic_engines_total;
-    }
-    // get stream
-    Stream * stream;
-
-    if (handler != 0) {
-        stream =  Stream::find_stream(handler, false);
-
-        // the stream was not created or was destroyed
-        if (!stream) {
-            LIBOFFLOAD_ERROR(c_offload_no_stream, device);
-            LIBOFFLOAD_ABORT;
-        }
-
-        if (device != stream->get_device()) {
-            LIBOFFLOAD_ERROR(c_offload_device_doesnt_match_to_stream,
-                             stream->get_device());
-            LIBOFFLOAD_ABORT;
-        }
-        // find associated async task
-        OffloadDescriptor *task = stream->get_last_offload();
-
-        // offload was completed by offload_wait pragma or wait clause
-        if (task == 0) {
-            return(true);
-        }
-        return task->is_signaled();
-    }
-    // zero handler is for all streams at the device
-    else {
-        StreamMap stream_map = Stream::all_streams;
-        for (StreamMap::iterator it = stream_map.begin();
-            it != stream_map.end(); it++) {
-            Stream * stream = it->second;
-            if (device != -1 && device != stream->get_device()) {
-                continue;
-            }
-            // find associated async task
-            OffloadDescriptor *task = stream->get_last_offload();
-
-            // offload was completed by offload_wait pragma or wait clause
-            if (task == 0) {
-                continue;
-            }
-            // if even one stream is not completed result is false
-            if (!task->is_signaled()) {
-                return false;
-            }
-        }
-        // no uncompleted streams
-        return true;
-    }
-}
-
-int _Offload_stream_is_empty(_Offload_stream handle)
-{
-    int device;
-
-    if (Stream::get_streams_count() == 0) {
-        LIBOFFLOAD_ERROR(c_offload_streams_are_absent);
-        LIBOFFLOAD_ABORT;
-    }
-    if (handle != 0) {
-        Stream * stream =  Stream::find_stream(handle, false);
-
-        // the stream was not created or was destroyed
-        if (!stream) {
-            LIBOFFLOAD_ERROR(c_offload_no_stream, device);
-            LIBOFFLOAD_ABORT;
-        }
-        device = stream->get_device();
-    }
-    else {
-        device = -1;
-    }
-    // Use 0 for device index as _Offload_stream_completed
-    // ignores this value while defining streams completion
-    return _Offload_stream_completed(device, handle);
-}
-
-int _Offload_device_streams_completed(int device)
-{
-    if (Stream::get_streams_count() == 0) {
-        LIBOFFLOAD_ERROR(c_offload_streams_are_absent);
-        LIBOFFLOAD_ABORT;
-    }
-    // check index value
-    if (device < -1) {
-        LIBOFFLOAD_ERROR(c_offload_signaled1, device);
-        LIBOFFLOAD_ABORT;
-    }
-    else if (device > -1) {
-        device %= mic_engines_total;
-    }
-
-    StreamMap stream_map = Stream::all_streams;
-    for (StreamMap::iterator it = stream_map.begin();
-        it != stream_map.end(); it++)
-    {
-        Stream * stream = it->second;
-
-        if (device != -1 && device != stream->get_device()) {
-            continue;
-        }
-        // find associated async task
-        OffloadDescriptor *task = stream->get_last_offload();
-
-        // offload was completed by offload_wait pragma or wait clause
-        if (task == 0) {
-            continue;
-        }
-        // if even one stream is not completed result is false
-        if (!task->is_signaled()) {
-            return false;
-        }
-    }
-    // no uncompleted streams
-    return true;
-}
-
-// IDB support
-int   __dbg_is_attached = 0;
-int   __dbg_target_id = -1;
-pid_t __dbg_target_so_pid = -1;
-char  __dbg_target_exe_name[MAX_TARGET_NAME] = {0};
-const int __dbg_api_major_version = 1;
-const int __dbg_api_minor_version = 0;
-
-void __dbg_target_so_loaded()
-{
-}
-void __dbg_target_so_unloaded()
-{
-}
diff --git a/liboffloadmic/runtime/offload_host.h b/liboffloadmic/runtime/offload_host.h
deleted file mode 100644 (file)
index 4f1ef13..0000000
+++ /dev/null
@@ -1,541 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*! \file
-    \brief The parts of the runtime library used only on the host
-*/
-
-#ifndef OFFLOAD_HOST_H_INCLUDED
-#define OFFLOAD_HOST_H_INCLUDED
-
-#ifndef TARGET_WINNT
-#include <unistd.h>
-#endif // TARGET_WINNT
-#include "offload_common.h"
-#include "offload_util.h"
-#include "offload_engine.h"
-#include "offload_env.h"
-#include "offload_orsl.h"
-#include "coi/coi_client.h"
-
-// MIC engines.
-DLL_LOCAL extern Engine*  mic_engines;
-DLL_LOCAL extern uint32_t mic_engines_total;
-
-// DMA channel count used by COI and set via
-// OFFLOAD_DMA_CHANNEL_COUNT environment variable
-DLL_LOCAL extern uint32_t mic_dma_channel_count;
-
-//! The target image is packed as follows.
-/*!      1. 8 bytes containing the size of the target binary          */
-/*!      2. a null-terminated string which is the binary name         */
-/*!      3. <size> number of bytes that are the contents of the image */
-/*!      The address of symbol __offload_target_image
-             is the address of this structure.                        */
-struct Image {
-     int64_t size; //!< Size in bytes of the target binary name and contents
-     char data[];  //!< The name and contents of the target image
-};
-
-// The offload descriptor.
-class OffloadDescriptor
-{
-public:
-    enum  OmpAsyncLastEventType {
-        c_last_not,     // not last event
-        c_last_write,   // the last event that is write
-        c_last_read,    // the last event that is read
-        c_last_runfunc  // the last event that is runfunction
-    };
-    
-    OffloadDescriptor(
-        int index,
-        _Offload_status *status,
-        bool is_mandatory,
-        bool is_openmp,
-        OffloadHostTimerData * timer_data
-    ) :
-        m_device(mic_engines[index == -1 ? 0 : index % mic_engines_total]),
-        m_is_mandatory(is_mandatory),
-        m_is_openmp(is_openmp),
-        m_inout_buf(0),
-        m_func_desc(0),
-        m_func_desc_size(0),
-        m_num_in_dependencies(0),
-        m_p_in_dependencies(0),
-        m_in_deps(0),
-        m_in_deps_total(0),
-        m_in_deps_allocated(0),        
-        m_out_deps(0),
-        m_out_deps_total(0),
-        m_out_deps_allocated(0),
-        m_vars(0),
-        m_vars_extra(0),
-        m_status(status),
-        m_timer_data(timer_data),
-        m_out_with_preallocated(false),
-        m_preallocated_alloc(false),
-        m_traceback_called(false),
-        m_stream(-1),
-        m_signal(0),
-        m_has_signal(0),
-        m_omp_async_last_event_type(c_last_not)
-    {
-        m_wait_all_devices = index == -1;
-    }
-
-    ~OffloadDescriptor()
-    {
-        if (m_in_deps != 0) {
-            free(m_in_deps);
-        }
-        if (m_out_deps != 0) {
-            free(m_out_deps);
-        }
-        if (m_func_desc != 0) {
-            free(m_func_desc);
-        }
-        if (m_vars != 0) {
-            free(m_vars);
-            free(m_vars_extra);
-        }
-    }
-
-    bool offload(const char *name, bool is_empty,
-                 VarDesc *vars, VarDesc2 *vars2, int vars_total,
-                 const void **waits, int num_waits, const void **signal,
-                 int entry_id, const void *stack_addr,
-                 OffloadFlags offload_flags);
-
-    bool offload_finish(bool is_traceback);
-
-    bool is_signaled();
-
-    OffloadHostTimerData* get_timer_data() const {
-        return m_timer_data;
-    }
-
-    void set_stream(_Offload_stream stream) {
-        m_stream = stream;
-    }
-
-    _Offload_stream get_stream() {
-        return(m_stream);
-    }
-
-    Engine& get_device() {
-        return m_device;
-    }
-
-    void* get_signal() {
-        return(m_signal);
-    }
-
-    void set_signal(const void* signal) {
-        m_has_signal = 1;
-        m_signal = const_cast<void*>(signal);
-    }
-
-    void cleanup();
-
-    uint32_t  m_event_count;
-    bool      m_has_signal;
-
-private:
-    bool offload_wrap(const char *name, bool is_empty,
-                 VarDesc *vars, VarDesc2 *vars2, int vars_total,
-                 const void **waits, int num_waits, const void **signal,
-                 int entry_id, const void *stack_addr,
-                 OffloadFlags offload_flags);
-    bool wait_dependencies(const void **waits, int num_waits,
-                           _Offload_stream stream);
-    bool setup_descriptors(VarDesc *vars, VarDesc2 *vars2, int vars_total,
-                           int entry_id, const void *stack_addr);
-    bool setup_misc_data(const char *name);
-    bool send_pointer_data(bool is_async, void* info);
-    bool send_noncontiguous_pointer_data(
-        int i,
-        PtrData* src_buf,
-        PtrData* dst_buf,
-        COIEVENT *event,
-        uint64_t  &sent_data,
-        uint32_t in_deps_amount,
-        COIEVENT *in_deps
-        );
-    bool receive_noncontiguous_pointer_data(
-        int i,
-        COIBUFFER dst_buf,
-        COIEVENT *event,
-        uint64_t  &received_data,
-        uint32_t in_deps_amount,
-        COIEVENT *in_deps
-        );
-
-    bool gather_copyin_data();
-
-    bool compute(void *);
-
-    bool receive_pointer_data(bool is_async, bool first_run, void * info);
-    bool scatter_copyout_data();
-
-    bool find_ptr_data(PtrData* &ptr_data, void *base, int64_t disp,
-                       int64_t length, bool is_targptr,
-                       bool error_does_not_exist = true);
-
-    void find_device_ptr( int64_t* &device_ptr,
-                       void *host_ptr);
-
-    bool alloc_ptr_data(PtrData* &ptr_data, void *base, int64_t disp,
-                        int64_t length, int64_t alloc_disp, int align,
-                        bool is_targptr, bool is_prealloc, bool pin);
-    bool create_preallocated_buffer(PtrData* ptr_data, void *base);
-    bool init_static_ptr_data(PtrData *ptr_data);
-    bool init_mic_address(PtrData *ptr_data);
-    bool offload_stack_memory_manager(
-        const void * stack_begin,
-        int routine_id,
-        int buf_size,
-        int align,
-        bool thread_specific_function_locals,
-        bool *is_new);
-    char *get_this_threads_cpu_stack_addr(
-        const void * stack_begin,
-        int routine_id,
-        bool thread_specific_function_locals);
-    PtrData *get_this_threads_mic_stack_addr(
-        const void * stack_begin,
-        int routine_id,
-        bool thread_specific_function_locals);
-    bool nullify_target_stack(COIBUFFER targ_buf, uint64_t size);
-
-    bool gen_var_descs_for_pointer_array(int i);
-
-    void get_stream_in_dependencies(uint32_t &in_deps_amount,
-                                    COIEVENT* &in_deps);
-
-    void report_coi_error(error_types msg, COIRESULT res);
-    _Offload_result translate_coi_error(COIRESULT res) const;
-
-    void setup_omp_async_info();
-
-    void setup_use_device_ptr(int i);
-
-    void register_event_call_back(void (*)(
-                                      COIEVENT,
-                                      const COIRESULT,
-                                      const void*),
-                                  const COIEVENT *event,
-                                  const void *info);
-
-    void register_omp_event_call_back(const COIEVENT *event, const void *info);
-
-private:
-    typedef std::list<COIBUFFER> BufferList;
-
-    // extra data associated with each variable descriptor
-    struct VarExtra {
-        PtrData* src_data;
-        PtrData* dst_data;
-        AutoData* auto_data;
-        int64_t cpu_disp;
-        int64_t cpu_offset;
-        void *alloc;
-        union {
-            CeanReadRanges *read_rng_src;
-            NonContigDesc  *noncont_desc;
-        };
-        CeanReadRanges *read_rng_dst;
-        int64_t ptr_arr_offset;
-        bool is_arr_ptr_el;
-        OmpAsyncLastEventType omp_last_event_type;
-        int64_t pointer_offset;
-        uint16_t type_src;
-        uint16_t type_dst;
-    };
-
-    template<typename T> class ReadArrElements {
-    public:
-        ReadArrElements():
-            ranges(NULL),
-            el_size(sizeof(T)),
-            offset(0),
-            count(0),
-            is_empty(true),
-            base(NULL)
-        {}
-
-        bool read_next(bool flag)
-        {
-            if (flag != 0) {
-                if (is_empty) {
-                    if (ranges) {
-                        if (!get_next_range(ranges, &offset)) {
-                            // ranges are over
-                            return false;
-                        }
-                    }
-                    // all contiguous elements are over
-                    else if (count != 0) {
-                        return false;
-                    }
-
-                    length_cur = size;
-                }
-                else {
-                    offset += el_size;
-                }
-                val = (T)get_el_value(base, offset, el_size);
-                length_cur -= el_size;
-                count++;
-                is_empty = length_cur == 0;
-            }
-            return true;
-        }
-    public:
-        CeanReadRanges * ranges;
-        T       val;
-        int     el_size;
-        int64_t size,
-                offset,
-                length_cur;
-        bool    is_empty;
-        int     count;
-        char   *base;
-    };
-
-    // ptr_data for persistent auto objects
-    PtrData*    m_stack_ptr_data;
-    PtrDataList m_destroy_stack;
-
-    // Engine
-    Engine& m_device;
-
-    // true for offload_wait target(mic) stream(0)
-    bool m_wait_all_devices;
-
-    // if true offload is mandatory
-    bool m_is_mandatory;
-
-    // if true offload has openmp origin
-    const bool m_is_openmp;
-
-    // The Marshaller for the inputs of the offloaded region.
-    Marshaller m_in;
-
-    // The Marshaller for the outputs of the offloaded region.
-    Marshaller m_out;
-
-    // List of buffers that are passed to dispatch call
-    BufferList m_compute_buffers;
-
-    // List of buffers that need to be destroyed at the end of offload
-    BufferList m_destroy_buffers;
-
-    // Variable descriptors
-    VarDesc*  m_vars;
-    VarExtra* m_vars_extra;
-    int       m_vars_total;
-
-    // Pointer to a user-specified status variable
-    _Offload_status *m_status;
-
-    // Function descriptor
-    FunctionDescriptor* m_func_desc;
-    uint32_t            m_func_desc_size;
-
-    // Buffer for transferring copyin/copyout data
-    COIBUFFER m_inout_buf;
-
-
-    // Dependencies
-    COIEVENT *m_in_deps;
-    uint32_t  m_in_deps_total;
-    uint32_t  m_in_deps_allocated;    
-    COIEVENT *m_out_deps;
-    uint32_t  m_out_deps_total;
-    uint32_t  m_out_deps_allocated;
-
-    // 2 variables defines input dependencies for current COI API.
-    // The calls to routines as BufferWrite/PipelineRunFunction/BufferRead
-    // is supposed to have input dependencies.
-    // 2 variables below defines the number and vector of dependencies
-    // in every current moment of offload.
-    // So any phase of offload can use its values as input dependencies 
-    // for the COI API that the phase calls.
-    // It means that all phases (of Write, RunFunction,Read) must keep
-    // the variables correct to be used by following phase.
-    // If some consequent offloads are connected (i.e. by the same stream)
-    // the final 2 variables of the offload is used as initial inputs
-    // for the next offload.
-    uint32_t  m_num_in_dependencies;
-    COIEVENT *m_p_in_dependencies;
-
-    // Stream
-    _Offload_stream m_stream;
-
-    // Signal
-    void* m_signal;
-
-    // Timer data
-    OffloadHostTimerData *m_timer_data;
-
-    // copyin/copyout data length
-    uint64_t m_in_datalen;
-    uint64_t m_out_datalen;
-
-    // a boolean value calculated in setup_descriptors. If true we need to do
-    // a run function on the target. Otherwise it may be optimized away.
-    bool m_need_runfunction;
-
-    // initialized value of m_need_runfunction;
-    // is used to recognize offload_transfer
-    bool m_initial_need_runfunction;
-
-    // a Boolean value set to true when OUT clauses with preallocated targetptr
-    // is encountered to indicate that call receive_pointer_data needs to be
-    // invoked again after call to scatter_copyout_data.
-    bool m_out_with_preallocated;
-
-    // a Boolean value set to true if an alloc_if(1) is used with preallocated
-    // targetptr to indicate the need to scatter_copyout_data even for
-    // async offload
-    bool m_preallocated_alloc;
-
-    // a Boolean value set to true if traceback routine is called
-    bool m_traceback_called;  
-
-    OmpAsyncLastEventType m_omp_async_last_event_type;
-};
-
-// Initialization types for MIC
-enum OffloadInitType {
-    c_init_on_start,         // all devices before entering main
-    c_init_on_offload,       // single device before starting the first offload
-    c_init_on_offload_all    // all devices before starting the first offload
-};
-
-// Determines if MIC code is an executable or a shared library
-extern "C" bool __offload_target_image_is_executable(const void *target_image);
-
-// Initializes library and registers specified offload image.
-extern "C" bool __offload_register_image(const void* image);
-extern "C" void __offload_unregister_image(const void* image);
-
-// Registers asynchronous task completion callback
-extern "C" void __offload_register_task_callback(void (*cb)(void *));
-
-// Initializes offload runtime library.
-DLL_LOCAL extern int __offload_init_library(void);
-
-// thread data for associating pipelines with threads
-DLL_LOCAL extern pthread_key_t mic_thread_key;
-
-// location of offload_main executable
-// To be used if the main application has no offload and is not built
-// with -offload but dynamic library linked in has offload pragma
-DLL_LOCAL extern char* mic_device_main;
-
-// Environment variables for devices
-DLL_LOCAL extern MicEnvVar mic_env_vars;
-
-// CPU frequency
-DLL_LOCAL extern uint64_t cpu_frequency;
-
-// LD_LIBRARY_PATH for KNC libraries
-DLL_LOCAL extern char* knc_library_path;
-
-// LD_LIBRARY_PATH for KNL libraries
-DLL_LOCAL extern char* knl_library_path;
-
-// stack size for target
-DLL_LOCAL extern uint32_t mic_stack_size;
-
-// Preallocated memory size for buffers on MIC
-DLL_LOCAL extern uint64_t mic_buffer_size;
-
-// Preallocated 4K page memory size for buffers on MIC
-DLL_LOCAL extern uint64_t mic_4k_buffer_size;
-
-// Preallocated 2M page memory size for buffers on MIC
-DLL_LOCAL extern uint64_t mic_2m_buffer_size;
-
-// Setting controlling inout proxy
-DLL_LOCAL extern bool  mic_proxy_io;
-DLL_LOCAL extern char* mic_proxy_fs_root;
-
-// Threshold for creating buffers with large pages
-DLL_LOCAL extern uint64_t __offload_use_2mb_buffers;
-
-// offload initialization type
-DLL_LOCAL extern OffloadInitType __offload_init_type;
-
-// Device number to offload to when device is not explicitly specified.
-DLL_LOCAL extern int __omp_device_num;
-
-// target executable
-DLL_LOCAL extern TargetImage* __target_exe;
-
-// is true if last loaded image is dll
-DLL_LOCAL extern bool __current_image_is_dll;
-// is true if myo library is loaded when dll is loaded
-DLL_LOCAL extern bool __myo_init_in_so;
-
-// IDB support
-
-// Called by the offload runtime after initialization of offload infrastructure
-// has been completed.
-extern "C" void  __dbg_target_so_loaded();
-
-// Called by the offload runtime when the offload infrastructure is about to be
-// shut down, currently at application exit.
-extern "C" void  __dbg_target_so_unloaded();
-
-// Null-terminated string containing path to the process image of the hosting
-// application (offload_main)
-#define MAX_TARGET_NAME 512
-extern "C" char  __dbg_target_exe_name[MAX_TARGET_NAME];
-
-// Integer specifying the process id
-extern "C" pid_t __dbg_target_so_pid;
-
-// Integer specifying the 0-based device number
-extern "C" int   __dbg_target_id;
-
-// Set to non-zero by the host-side debugger to enable offload debugging
-// support
-extern "C" int   __dbg_is_attached;
-
-// Major version of the debugger support API
-extern "C" const int __dbg_api_major_version;
-
-// Minor version of the debugger support API
-extern "C" const int __dbg_api_minor_version;
-
-#endif // OFFLOAD_HOST_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_iterator.h b/liboffloadmic/runtime/offload_iterator.h
deleted file mode 100644 (file)
index baf25af..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*! \file
-    \brief Iterator of Variable tables list used by the runtime library
-*/
-
-#ifndef OFFLOAD_ITERATOR_H_INCLUDED
-#define OFFLOAD_ITERATOR_H_INCLUDED
-
-#include <iterator>
-#include "offload_table.h"
-
-// The following class is for iteration over var table.
-// It was extracted and moved to this offload_iterator.h file from offload_table.h
-// to solve the problem with compiling with VS 2010. The problem was in incompatibility
-// of STL objects in VS 2010 with ones in later VS versions.
-
-// var table list iterator
-class Iterator : public std::iterator<std::input_iterator_tag,
-                                          VarTable::Entry> {
-    public:
-        Iterator() : m_node(0), m_entry(0) {}
-
-        explicit Iterator(TableList<VarTable>::Node *node) {
-            new_node(node);
-        }
-
-        Iterator& operator++() {
-            if (m_entry != 0) {
-                m_entry++;
-                while (m_entry->name == 0) {
-                    m_entry++;
-                }
-                if (m_entry->name == reinterpret_cast<const char*>(-1)) {
-                    new_node(m_node->next);
-                }
-            }
-            return *this;
-        }
-
-        bool operator==(const Iterator &other) const {
-            return m_entry == other.m_entry;
-        }
-
-        bool operator!=(const Iterator &other) const {
-            return m_entry != other.m_entry;
-        }
-
-        const VarTable::Entry* operator*() const {
-            return m_entry;
-        }
-
-    private:
-        void new_node(TableList<VarTable>::Node *node) {
-            m_node = node;
-            m_entry = 0;
-            while (m_node != 0) {
-                m_entry = m_node->table.entries;
-                while (m_entry->name == 0) {
-                    m_entry++;
-                }
-                if (m_entry->name != reinterpret_cast<const char*>(-1)) {
-                    break;
-                }
-                m_node = m_node->next;
-                m_entry = 0;
-            }
-        }
-
-    private:
-        TableList<VarTable>::Node                *m_node;
-        const VarTable::Entry  *m_entry;
-};
-
-#endif  // OFFLOAD_ITERATOR_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_omp_host.cpp b/liboffloadmic/runtime/offload_omp_host.cpp
deleted file mode 100644 (file)
index 0439fec..0000000
+++ /dev/null
@@ -1,1267 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include <omp.h>
-//#include <stdlib.h>
-//#include "offload.h"
-#include "compiler_if_host.h"
-
-
-// OpenMP API
-
-void omp_set_default_device(int num) __GOMP_NOTHROW
-{
-    if (num >= 0) {
-        __omp_device_num = num;
-    }
-}
-
-int omp_get_default_device(void) __GOMP_NOTHROW
-{
-    return __omp_device_num;
-}
-
-int omp_get_num_devices() __GOMP_NOTHROW
-{
-    __offload_init_library();
-    return mic_engines_total;
-}
-
-// OpenMP 4.5 APIs
-
-// COI supports 3-dim multiD transfers
-#define MAX_ARRAY_RANK 3
-
-int omp_get_initial_device(
-    void
-) __GOMP_NOTHROW
-{
-    return -1;
-}
-
-void* omp_target_alloc(
-    size_t size, 
-    int    device_num
-) __GOMP_NOTHROW
-{
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_alloc(%lld, %d)\n", size, device_num);
-
-    if (device_num < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    void* result = 0;
-
-    // malloc on CPU
-    if (device_num == -1) {
-        // We do not check for malloc returning NULL because the 
-        // specification of this API includes the possibility of failure.
-        // The user will check the returned result
-        result = malloc(size);
-        return result;
-    }
-
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(
-                       TARGET_MIC, device_num, 0, NULL, __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[2] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_in;
-        vars[0].size = sizeof(size);
-        vars[0].count = 1;
-        vars[0].ptr = &size;
-
-        vars[1].type.src = c_data;
-        vars[1].type.dst = c_data;
-        vars[1].direction.bits = c_parameter_out;
-        vars[1].size = sizeof(result);
-        vars[1].count = 1;
-        vars[1].ptr = &result;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_target_alloc_target",
-                        0, 2, vars, NULL, 0, 0, 0);
-    }
-    return result;
-}
-
-void omp_target_free(
-    void *device_ptr, 
-    int   device_num
-) __GOMP_NOTHROW
-{
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_free(%p, %d)\n", device_ptr, device_num);
-
-    if (device_num < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    // free on CPU
-    if (device_num == -1) {
-        free(device_ptr);
-        return;
-    }
-
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(
-                       TARGET_MIC, device_num, 0, NULL, __func__, 0);
-    if (ofld) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_in;
-        vars[0].size = sizeof(device_ptr);
-        vars[0].count = 1;
-        vars[0].ptr = &device_ptr;
-        
-        OFFLOAD_OFFLOAD(ofld, "omp_target_free_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-int omp_target_is_present(
-    void *ptr,
-    int device_num
-) __GOMP_NOTHROW
-{
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_is_present(%p, %d)\n", ptr, device_num);
-
-    if (device_num < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    if (device_num == -1) {
-        return false;
-    }
-
-    // If OpenMP allows wrap-around for device numbers, enable next line
-    //device_num %= mic_engines_total;
-
-    // lookup existing association in pointer table
-    PtrData* ptr_data = mic_engines[device_num].find_ptr_data(ptr);
-    if (ptr_data == 0) {
-        OFFLOAD_TRACE(3, "Address %p is not mapped on device %d\n",
-                      ptr, device_num);
-        return false;
-    }
-
-    OFFLOAD_TRACE(3, "Address %p found mapped on device %d\n",
-                  ptr, device_num);
-    return true;
-}
-
-int omp_target_memcpy(
-    void   *dst, 
-    void   *src, 
-    size_t  length, 
-    size_t  dst_offset, 
-    size_t  src_offset, 
-    int     dst_device,
-    int     src_device
-) __GOMP_NOTHROW
-{
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_memcpy(%p, %p, %lld, %lld, %lld, %d, %d)\n",
-                  dst, src, length, dst_offset, src_offset, dst_device, src_device);
-
-    if (dst_device < -1 || src_device < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    char* srcp = (char *)src + src_offset;
-    char* dstp = (char *)dst + dst_offset;
-
-    if (src_device == -1) {
-        // Source is CPU
-        if (dst_device == -1) {
-            // CPU -> CPU
-            memcpy(dstp, srcp, length);
-            return 0;
-        } else {
-            // CPU -> MIC
-            // COIBufferWrite
-            // If OpenMP allows wrap-around for device numbers, enable next line
-            //dst_device %= mic_engines_total;
-
-            OFFLOAD_TRACE(3, "Creating buffer from sink memory %llx\n", dstp);
-            COIBUFFER mic_buf;
-            COIRESULT res = COI::BufferCreateFromMemory(length,
-                                COI_BUFFER_NORMAL, COI_SINK_MEMORY, dstp,
-                                1, &mic_engines[dst_device].get_process(),
-                                &mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_create_from_mem, res);
-                return 1;
-            }
-            res = COI::BufferWrite(mic_buf, 0, srcp, length,
-                      COI_COPY_UNSPECIFIED, 0, 0, 0);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_write, res);
-                return 1;
-            }
-            res = COI::BufferDestroy(mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_destroy, res);
-                return 1;
-            }
-            return 0;
-        }
-    } else {
-        // Source is device
-        if (dst_device == -1) {
-            // MIC -> CPU
-            // COIBufferRead
-
-            // If OpenMP allows wrap-around for device numbers, enable next line
-            //src_device %= mic_engines_total;
-
-            OFFLOAD_TRACE(3, "Creating buffer from sink memory %llx\n", srcp);
-            COIBUFFER mic_buf;
-            COIRESULT res = COI::BufferCreateFromMemory(length,
-                                COI_BUFFER_NORMAL, COI_SINK_MEMORY, srcp,
-                                1, &mic_engines[src_device].get_process(),
-                                &mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_create_from_mem, res);
-                return 1;
-            }
-            res = COI::BufferRead(mic_buf, 0, dstp, length,
-                      COI_COPY_UNSPECIFIED, 0, 0, 0);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_read, res);
-                return 1;
-            }
-            res = COI::BufferDestroy(mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_destroy, res);
-                return 1;
-            }
-            return 0;
-        } else {
-            // some MIC -> some MIC
-            if (src_device == dst_device) {
-                // MIC local copy will be done as remote memcpy
-
-                OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(TARGET_MIC, src_device,
-                                                      0, NULL, __func__, 0);
-                if (ofld) {
-                    VarDesc vars[3] = {0};
-
-                    vars[0].type.src = c_data;
-                    vars[0].type.dst = c_data;
-                    vars[0].direction.bits = c_parameter_in;
-                    vars[0].size = sizeof(dstp);
-                    vars[0].count = 1;
-                    vars[0].ptr = &dstp;
-
-                    vars[1].type.src = c_data;
-                    vars[1].type.dst = c_data;
-                    vars[1].direction.bits = c_parameter_in;
-                    vars[1].size = sizeof(srcp);
-                    vars[1].count = 1;
-                    vars[1].ptr = &srcp;
-
-                    vars[2].type.src = c_data;
-                    vars[2].type.dst = c_data;
-                    vars[2].direction.bits = c_parameter_in;
-                    vars[2].size = sizeof(length);
-                    vars[2].count = 1;
-                    vars[2].ptr = &length;
-        
-                    OFFLOAD_OFFLOAD(ofld, "omp_target_memcpy_target",
-                                    0, 3, vars, NULL, 0, 0, 0);
-                    return 0;
-                } else {
-                    return 1;
-                }
-            } else {
-                // MICx -> MICy
-                // Allocate CPU buffer
-                char *cpu_mem = (char *)malloc(length);
-                if (cpu_mem == 0) {
-                    LIBOFFLOAD_ERROR(c_malloc);
-                    return 1;
-                }
-                int retval = 1;
-                if (omp_target_memcpy(
-                        cpu_mem, srcp, length, 0, 0, -1, src_device) == 0) {
-                    retval = omp_target_memcpy(
-                                 dstp, cpu_mem, length, 0, 0, dst_device, -1);
-                }
-                free(cpu_mem);
-                return retval;
-            }
-        }
-    }
-}
-
-static size_t bytesize_at_this_dimension(
-    size_t element_size,
-    int num_dims,
-    const size_t* dimensions
-)
-{
-    if (num_dims > 1) {
-        return dimensions[1] * 
-               bytesize_at_this_dimension(
-                   element_size, num_dims-1, dimensions+1);
-    } else {
-        return element_size;
-    }
-}
-
-static void memcpy_rect(
-    char         *dst,
-    char         *src,
-    size_t        element_size,
-    int           num_dims,
-    const size_t *volume,
-    const size_t *dst_offsets,
-    const size_t *src_offsets,
-    const size_t *dst_dimensions,
-    const size_t *src_dimensions
-)
-{
-    if (num_dims > 1) {
-        int count = volume[0];
-        int dst_index = dst_offsets[0];
-        int src_index = src_offsets[0];
-        size_t dst_element_size =
-            bytesize_at_this_dimension(element_size, num_dims, dst_dimensions);
-        size_t src_element_size =
-            bytesize_at_this_dimension(element_size, num_dims, src_dimensions);
-        for (; count>0; dst_index++, src_index++, count--) {
-            memcpy_rect(dst+dst_element_size*dst_index,
-                        src+src_element_size*src_index,
-                        element_size, num_dims-1, volume+1,
-                        dst_offsets+1, src_offsets+1,
-                        dst_dimensions+1, src_dimensions+1);
-        }
-    } else {
-        memcpy(dst+dst_offsets[0]*element_size,
-               src+src_offsets[0]*element_size,
-               element_size * volume[0]);
-    }
-}
-
-int omp_target_memcpy_rect(
-    void         *dst_,
-    void         *src_,
-    size_t        element_size,
-    int           num_dims,
-    const size_t *volume,
-    const size_t *dst_offsets,
-    const size_t *src_offsets,
-    const size_t *dst_dimensions,
-    const size_t *src_dimensions,
-    int           dst_device,
-    int           src_device
-) __GOMP_NOTHROW
-{
-    char *dst = (char *)dst_;
-    char *src = (char *)src_;
-
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_memcpy_rect(%p, %p, %lld, %d, "
-                  "%p, %p, %p, %p, %p, %d, %d)\n",
-                  dst, src, element_size, num_dims,
-                  volume, dst_offsets, src_offsets,
-                  dst_dimensions, src_dimensions, dst_device, src_device);
-    
-    // MAX_ARRAY_RANK dimensions are supported
-    if (dst == 0 && src == 0) {
-        return MAX_ARRAY_RANK;
-    }
-
-    if (num_dims < 1 || num_dims > MAX_ARRAY_RANK ||
-        element_size < 1 ||
-        volume == 0 || dst_offsets == 0 || src_offsets == 0 ||
-        dst_dimensions == 0 || src_dimensions == 0) {
-        return 1;
-    }
-
-    if (dst_device < -1 || src_device < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    if (src_device == -1) {
-        // Source is CPU
-        if (dst_device == -1) {
-            // CPU -> CPU
-            memcpy_rect((char*)dst, (char*)src, element_size, num_dims, volume,
-                        dst_offsets, src_offsets,
-                        dst_dimensions, src_dimensions);
-            return 0;
-        } else {
-            // CPU -> MIC
-            // COIBufferWriteMultiD
-            struct arr_desc dst_desc;
-            struct arr_desc src_desc;
-
-            dst_desc.base = (int64_t)dst;
-            dst_desc.rank = num_dims;
-            
-            src_desc.base = (int64_t)src;
-            src_desc.rank = num_dims;
-
-            for (int i=0; i<num_dims; i++)
-            {
-                dst_desc.dim[i].size   = bytesize_at_this_dimension(
-                                             element_size,
-                                             num_dims - i,
-                                             dst_dimensions + i);
-                dst_desc.dim[i].lindex = 0;
-                dst_desc.dim[i].lower  = dst_offsets[i];
-                dst_desc.dim[i].upper  = dst_offsets[i] + volume[i] - 1;
-                dst_desc.dim[i].stride = 1;
-                
-                src_desc.dim[i].size   = bytesize_at_this_dimension(
-                                             element_size,
-                                             num_dims - i,
-                                             src_dimensions + i);
-                src_desc.dim[i].lindex = 0;
-                src_desc.dim[i].lower  = src_offsets[i];
-                src_desc.dim[i].upper  = src_offsets[i] + volume[i] - 1;
-                src_desc.dim[i].stride = 1;
-            }
-            __arr_desc_dump("", "dst", (const Arr_Desc*)&dst_desc, false, false);
-            __arr_desc_dump("", "src", (const Arr_Desc*)&src_desc, false, false);
-            
-            // If OpenMP allows wrap-around for device numbers, enable next line
-            //dst_device %= mic_engines_total;
-                
-            // Compute MIC buffer size
-            size_t dst_length = dst_dimensions[0] * bytesize_at_this_dimension(
-                                                        element_size,
-                                                        num_dims,
-                                                        dst_dimensions);
-
-            OFFLOAD_TRACE(3,
-                "Creating buffer from sink memory %llx of size %lld\n",
-                dst, dst_length);
-            COIBUFFER mic_buf;
-            COIRESULT res = COI::BufferCreateFromMemory(dst_length,
-                                COI_BUFFER_NORMAL, COI_SINK_MEMORY, dst,
-                                1, &mic_engines[dst_device].get_process(),
-                                &mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_create_from_mem, res);
-                return 1;
-            }
-            res = COI::BufferWriteMultiD(mic_buf,
-                      mic_engines[dst_device].get_process(),
-                      0, &dst_desc, &src_desc,
-                      COI_COPY_UNSPECIFIED, 0, 0, 0);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_write, res);
-                return 1;
-            }
-            res = COI::BufferDestroy(mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_destroy, res);
-                return 1;
-            }
-            return 0;
-        }
-    } else {
-        // Source is device
-        if (dst_device == -1) {
-            // COIBufferReadMultiD
-            struct arr_desc dst_desc;
-            struct arr_desc src_desc;
-
-            dst_desc.base = (int64_t)dst;
-            dst_desc.rank = num_dims;
-            
-            src_desc.base = (int64_t)src;
-            src_desc.rank = num_dims;
-
-            for (int i=0; i<num_dims; i++)
-            {
-                dst_desc.dim[i].size   = bytesize_at_this_dimension(
-                                             element_size,
-                                             num_dims - i,
-                                             dst_dimensions + i);
-                dst_desc.dim[i].lindex = 0;
-                dst_desc.dim[i].lower  = dst_offsets[i];
-                dst_desc.dim[i].upper  = dst_offsets[i] + volume[i] - 1;
-                dst_desc.dim[i].stride = 1;
-                
-                src_desc.dim[i].size   = bytesize_at_this_dimension(
-                                             element_size,
-                                             num_dims - i,
-                                             src_dimensions + i);
-                src_desc.dim[i].lindex = 0;
-                src_desc.dim[i].lower  = src_offsets[i];
-                src_desc.dim[i].upper  = src_offsets[i] + volume[i] - 1;
-                src_desc.dim[i].stride = 1;
-            }
-            __arr_desc_dump("", "dst", (const Arr_Desc*)&dst_desc, false, false);
-            __arr_desc_dump("", "src", (const Arr_Desc*)&src_desc, false, false);
-            
-            // If OpenMP allows wrap-around for device numbers, enable next line
-            //src_device %= mic_engines_total;
-                
-            // Compute MIC buffer size
-            size_t src_length = src_dimensions[0] * bytesize_at_this_dimension(
-                                                        element_size,
-                                                        num_dims,
-                                                        src_dimensions);
-
-            OFFLOAD_TRACE(3,
-                "Creating buffer from sink memory %llx of size %lld\n",
-                src, src_length);
-            COIBUFFER mic_buf;
-            COIRESULT res = COI::BufferCreateFromMemory(src_length,
-                                COI_BUFFER_NORMAL, COI_SINK_MEMORY, src,
-                                1, &mic_engines[src_device].get_process(),
-                                &mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_create_from_mem, res);
-                return 1;
-            }
-            res = COI::BufferReadMultiD(mic_buf, 0,
-                      &dst_desc, &src_desc,
-                      COI_COPY_UNSPECIFIED, 0, 0, 0);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_write, res);
-                return 1;
-            }
-            res = COI::BufferDestroy(mic_buf);
-            if (res != COI_SUCCESS) {
-                LIBOFFLOAD_ERROR(c_buf_destroy, res);
-                return 1;
-            }
-            return 0;
-        } else {
-            // some MIC -> some MIC
-            if (src_device == dst_device) {
-                // MIC local copy will be done as remote memcpy_rect
-                struct parameters {
-                    void   *dst;
-                    void   *src;
-                    size_t element_size;
-                    int    num_dims;
-                    size_t array_info[MAX_ARRAY_RANK*5];
-                } parameters = {dst, src, element_size, num_dims};
-                int result;
-                
-                for (int i=0; i<num_dims; i++)
-                {
-                    parameters.array_info[i]            = volume[i];
-                    parameters.array_info[i+num_dims]   = dst_offsets[i];
-                    parameters.array_info[i+num_dims*2] = src_offsets[i];
-                    parameters.array_info[i+num_dims*3] = dst_dimensions[i];
-                    parameters.array_info[i+num_dims*4] = src_dimensions[i];
-                }
-
-                OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(TARGET_MIC, src_device,
-                                                      0, NULL, __func__, 0);
-                if (ofld) {
-                    VarDesc vars[1] = {0};
-
-                    vars[0].type.src = c_data;
-                    vars[0].type.dst = c_data;
-                    vars[0].direction.bits = c_parameter_in;
-                    vars[0].size = sizeof(parameters) -
-                                       (MAX_ARRAY_RANK - num_dims) *
-                                       5 * sizeof(size_t);
-                    vars[0].count = 1;
-                    vars[0].ptr = &parameters;
-        
-                    OFFLOAD_OFFLOAD(ofld, "omp_target_memcpy_rect_target",
-                                    0, 1, vars, NULL, 0, 0, 0);
-                    return 0;
-                } else {
-                    return 1;
-                }
-            } else {
-                // MICx -> MICy
-
-                // Compute transfer byte-count
-                size_t dst_length = element_size;
-                for (int i=0; i<num_dims; i++) {
-                    dst_length *= volume[i];
-                }
-
-                // Allocate CPU buffer
-                char *cpu_mem = (char *)malloc(dst_length);
-                if (cpu_mem == 0) {
-                    LIBOFFLOAD_ERROR(c_malloc);
-                    return 1;
-                }
-
-                // Create CPU offset and dimension arrays
-                // The CPU array collects the data in a contiguous block
-                size_t cpu_offsets[MAX_ARRAY_RANK];
-                size_t cpu_dimensions[MAX_ARRAY_RANK];
-                for (int i=0; i<num_dims; i++) {
-                    cpu_offsets[i] = 0;
-                    cpu_dimensions[i] = volume[i];
-                }
-
-                int retval = 1;
-                if (omp_target_memcpy_rect(
-                        cpu_mem, src, element_size, num_dims, volume,
-                        cpu_offsets, src_offsets,
-                        cpu_dimensions, src_dimensions,
-                        -1, src_device) == 0) {
-                    retval = omp_target_memcpy_rect(
-                                 dst, cpu_mem, element_size, num_dims, volume,
-                                 dst_offsets, cpu_offsets,
-                                 dst_dimensions, cpu_dimensions,
-                                 dst_device, -1);
-                }
-                free(cpu_mem);
-                return retval;
-            }
-        }
-    }
-}
-
-// host_ptr is key in table that yields association on device
-// A COIBUFFER of specified size is created from the memory at 
-//     device_ptr+device_offset on device_num
-int omp_target_associate_ptr(
-    void   *host_ptr, 
-    void   *device_ptr,
-    size_t  size,
-    size_t  device_offset,
-    int     device_num
-) __GOMP_NOTHROW
-{
-    COIRESULT res;
-
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_associate_ptr(%p, %p, %lld, %lld, %d)\n",
-                  host_ptr, device_ptr, size, device_offset, device_num);
-
-    if (device_num < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    // Associating to CPU is treated as failure
-    if (device_num == -1) {
-        return 1;
-    }
-
-    // An incorrect size is treated as failure
-    if (size < 0) {
-        return 1;
-    }
-    
-    // If OpenMP allows wrap-around for device numbers, enable next line
-    //Engine& device = mic_engines[device_num % mic_engines_total];
-    Engine& device = mic_engines[device_num];
-    
-    // Does host pointer have association already?
-    // lookup existing association in pointer table
-    PtrData* ptr_data = device.find_ptr_data(host_ptr);
-    if (ptr_data != 0) {
-        OFFLOAD_TRACE(3, "Address %p is already mapped on device %d\n",
-                      host_ptr, device_num);
-        // Is current device pointer and offset same as existing?
-        if ((void*)ptr_data->mic_addr == device_ptr &&
-            (size_t)ptr_data->alloc_disp == device_offset) {
-            return 0;
-        } else {
-            return 1;
-        }
-    }
-
-    // Create association
-    OFFLOAD_TRACE(3, "Creating association for data: addr %p, length %lld\n",
-                  host_ptr, size);
-
-    bool is_new;
-    ptr_data = device.insert_ptr_data(host_ptr, size, is_new);
-    ptr_data->is_omp_associate = true;
-
-    // create CPU buffer
-    OFFLOAD_TRACE(3,
-              "Creating buffer from source memory %p, length %lld\n",
-              host_ptr, size);
-
-    // result is not checked because we can continue without cpu
-    // buffer. In this case we will use COIBufferRead/Write
-    // instead of COIBufferCopy.
-
-    COI::BufferCreateFromMemory(size,
-                            COI_BUFFER_OPENCL,
-                            0,
-                            host_ptr,
-                            1,
-                            &device.get_process(),
-                            &ptr_data->cpu_buf);
-
-    // create MIC buffer
-    OFFLOAD_TRACE(3,
-              "Creating buffer from sink memory: addr %p, size %lld\n",
-              (char *)device_ptr + device_offset, size);
-    res = COI::BufferCreateFromMemory(size,
-                                      COI_BUFFER_NORMAL,
-                                      COI_SINK_MEMORY,
-                                      device_ptr,
-                                      1,
-                                      &device.get_process(),
-                                      &ptr_data->mic_buf);
-    if (res != COI_SUCCESS) {
-        ptr_data->alloc_ptr_data_lock.unlock();
-        return 1;
-    }
-
-    // make buffer valid on the device.
-    res = COI::BufferSetState(ptr_data->mic_buf,
-        device.get_process(),
-        COI_BUFFER_VALID,
-        COI_BUFFER_NO_MOVE,
-        0, 0, 0);
-    if (res != COI_SUCCESS) {
-        ptr_data->alloc_ptr_data_lock.unlock();
-        return 1;
-    }
-
-    res = COI::BufferSetState(ptr_data->mic_buf,
-        COI_PROCESS_SOURCE,
-        COI_BUFFER_INVALID,
-        COI_BUFFER_NO_MOVE,
-        0, 0, 0);
-    if (res != COI_SUCCESS) {
-        ptr_data->alloc_ptr_data_lock.unlock();
-        return 1;
-    }
-    ptr_data->alloc_disp = device_offset;
-    ptr_data->alloc_ptr_data_lock.unlock();
-
-    return 0;
-}
-
-int omp_target_disassociate_ptr(
-    void   *host_ptr,
-    int     device_num
-) __GOMP_NOTHROW
-{
-    COIRESULT res;
-
-    __offload_init_library();
-
-    OFFLOAD_TRACE(2, "omp_target_disassociate_ptr(%p, %d)\n",
-                  host_ptr, device_num);
-
-    if (device_num < -1) {
-        LIBOFFLOAD_ERROR(c_invalid_device_number);
-        exit(1);
-    }
-
-    // Dissociating from CPU is treated as failure
-    if (device_num == -1) {
-        return 1;
-    }
-    
-    // If OpenMP allows wrap-around for device numbers, enable next line
-    //Engine& device = mic_engines[device_num % mic_engines_total];
-    Engine& device = mic_engines[device_num];
-
-    // Lookup existing association in pointer table
-    PtrData* ptr_data = device.find_ptr_data(host_ptr);
-
-    // Attempt to disassociate unassociated pointer is a failure
-    if (ptr_data == 0) {
-        return 1;
-    }
-                    
-    // Destroy buffers
-    if (ptr_data->cpu_buf != 0) {
-        OFFLOAD_TRACE(3, "Destroying CPU buffer %p\n", ptr_data->cpu_buf);
-        COI::BufferDestroy(ptr_data->cpu_buf);
-    }
-    if (ptr_data->mic_buf != 0) {
-        OFFLOAD_TRACE(3, "Destroying MIC buffer %p\n", ptr_data->mic_buf);
-        COI::BufferDestroy(ptr_data->mic_buf);
-    }
-    
-    // Remove association from map
-    OFFLOAD_TRACE(3, "Removing association for addr %p\n",
-                  ptr_data->cpu_addr.start());
-    device.remove_ptr_data(ptr_data->cpu_addr.start());
-
-    return 0;
-}
-
-// End of OpenMP 4.5 APIs
-
-
-// OpenMP API wrappers
-
-static void omp_set_int_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int setting,
-    const char* f_name
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          f_name, 0);
-    if (ofld) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_in;
-        vars[0].size = sizeof(int);
-        vars[0].count = 1;
-        vars[0].ptr = &setting;
-
-        OFFLOAD_OFFLOAD(ofld, f_name, 0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-static int omp_get_int_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    const char * f_name
-)
-{
-    int setting = 0;
-
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          f_name, 0);
-    if (ofld) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_out;
-        vars[0].size = sizeof(int);
-        vars[0].count = 1;
-        vars[0].ptr = &setting;
-
-        OFFLOAD_OFFLOAD(ofld, f_name, 0, 1, vars, NULL, 0, 0, 0);
-    }
-    return setting;
-}
-
-void omp_set_num_threads_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-)
-{
-    omp_set_int_target(target_type, target_number, num_threads,
-                       "omp_set_num_threads_target");
-}
-
-int omp_get_max_threads_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return omp_get_int_target(target_type, target_number,
-                              "omp_get_max_threads_target");
-}
-
-int omp_get_num_procs_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return omp_get_int_target(target_type, target_number,
-                              "omp_get_num_procs_target");
-}
-
-void omp_set_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-)
-{
-    omp_set_int_target(target_type, target_number, num_threads,
-                       "omp_set_dynamic_target");
-}
-
-int omp_get_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return omp_get_int_target(target_type, target_number,
-                              "omp_get_dynamic_target");
-}
-
-void omp_set_nested_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int nested
-)
-{
-    omp_set_int_target(target_type, target_number, nested,
-                       "omp_set_nested_target");
-}
-
-int omp_get_nested_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return omp_get_int_target(target_type, target_number,
-                              "omp_get_nested_target");
-}
-
-void omp_set_schedule_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_sched_t kind,
-    int modifier
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[2] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_in;
-        vars[0].size = sizeof(omp_sched_t);
-        vars[0].count = 1;
-        vars[0].ptr = &kind;
-
-        vars[1].type.src = c_data;
-        vars[1].type.dst = c_data;
-        vars[1].direction.bits = c_parameter_in;
-        vars[1].size = sizeof(int);
-        vars[1].count = 1;
-        vars[1].ptr = &modifier;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_set_schedule_target",
-                        0, 2, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_get_schedule_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_sched_t *kind,
-    int *modifier
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[2] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_out;
-        vars[0].size = sizeof(omp_sched_t);
-        vars[0].count = 1;
-        vars[0].ptr = kind;
-
-        vars[1].type.src = c_data;
-        vars[1].type.dst = c_data;
-        vars[1].direction.bits = c_parameter_out;
-        vars[1].size = sizeof(int);
-        vars[1].count = 1;
-        vars[1].ptr = modifier;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_get_schedule_target",
-                        0, 2, vars, NULL, 0, 0, 0);
-    }
-}
-
-// lock API functions
-
-void omp_init_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_out;
-        vars[0].size = sizeof(omp_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_init_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_destroy_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_in;
-        vars[0].size = sizeof(omp_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_destroy_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_set_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_inout;
-        vars[0].size = sizeof(omp_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_set_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_unset_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_inout;
-        vars[0].size = sizeof(omp_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_unset_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-int omp_test_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-    int result = 0;
-
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[2] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_inout;
-        vars[0].size = sizeof(omp_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        vars[1].type.src = c_data;
-        vars[1].type.dst = c_data;
-        vars[1].direction.bits = c_parameter_out;
-        vars[1].size = sizeof(int);
-        vars[1].count = 1;
-        vars[1].ptr = &result;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_test_lock_target",
-                        0, 2, vars, NULL, 0, 0, 0);
-    }
-    return result;
-}
-
-// nested lock API functions
-
-void omp_init_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_out;
-        vars[0].size = sizeof(omp_nest_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_init_nest_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_destroy_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_in;
-        vars[0].size = sizeof(omp_nest_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_destroy_nest_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_set_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_inout;
-        vars[0].size = sizeof(omp_nest_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_set_nest_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-void omp_unset_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[1] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_inout;
-        vars[0].size = sizeof(omp_nest_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_unset_nest_lock_target",
-                        0, 1, vars, NULL, 0, 0, 0);
-    }
-}
-
-int omp_test_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-    int result = 0;
-
-    OFFLOAD ofld = OFFLOAD_TARGET_ACQUIRE(target_type, target_number, 0, NULL,
-                                          __func__, 0);
-    if (ofld != 0) {
-        VarDesc vars[2] = {0};
-
-        vars[0].type.src = c_data;
-        vars[0].type.dst = c_data;
-        vars[0].direction.bits = c_parameter_inout;
-        vars[0].size = sizeof(omp_nest_lock_target_t);
-        vars[0].count = 1;
-        vars[0].ptr = lock;
-
-        vars[1].type.src = c_data;
-        vars[1].type.dst = c_data;
-        vars[1].direction.bits = c_parameter_out;
-        vars[1].size = sizeof(int);
-        vars[1].count = 1;
-        vars[1].ptr = &result;
-
-        OFFLOAD_OFFLOAD(ofld, "omp_test_nest_lock_target",
-                        0, 2, vars, NULL, 0, 0, 0);
-    }
-    return result;
-}
diff --git a/liboffloadmic/runtime/offload_omp_target.cpp b/liboffloadmic/runtime/offload_omp_target.cpp
deleted file mode 100644 (file)
index 2bcfef5..0000000
+++ /dev/null
@@ -1,736 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include <omp.h>
-#include "offload.h"
-#include "compiler_if_target.h"
-
-// OpenMP API
-
-void omp_set_default_device(int num) __GOMP_NOTHROW
-{
-}
-
-int omp_get_default_device(void) __GOMP_NOTHROW
-{
-    return mic_index;
-}
-
-int omp_get_num_devices() __GOMP_NOTHROW
-{
-    return mic_engines_total;
-}
-
-// OpenMP 4.5 APIs
-
-// COI supports 3-dim multiD transfers
-#define MAX_ARRAY_RANK 3
-
-DLL_LOCAL void omp_target_alloc_target(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[2] = {0};
-    size_t size;
-    void* memory;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &size;
-
-    vars[1].type.src = c_data;
-    vars[1].type.dst = c_data;
-    vars[1].direction.bits = c_parameter_out;
-    vars[1].ptr = &memory;
-
-    OFFLOAD_TARGET_ENTER(ofld, 2, vars, NULL);
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_alloc(%lld)\n", size);
-    // We do not check for malloc returning NULL because the 
-    // specification of this API includes the possibility of failure.
-    // The user will check the returned result
-    memory = malloc(size);
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_alloc allocated at %p\n", memory);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_target_free_target(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    void* memory;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &memory;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_free(%p)\n", memory);
-    free(memory);
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_free freed\n");
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_target_memcpy_target(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[3] = {0};
-    void* dst;
-    void* src;
-    size_t length;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &dst;
-    
-    vars[1].type.src = c_data;
-    vars[1].type.dst = c_data;
-    vars[1].direction.bits = c_parameter_in;
-    vars[1].ptr = &src;
-    
-    vars[2].type.src = c_data;
-    vars[2].type.dst = c_data;
-    vars[2].direction.bits = c_parameter_in;
-    vars[2].ptr = &length;
-
-    OFFLOAD_TARGET_ENTER(ofld, 3, vars, NULL);
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_memcpy(%p, %p, %lld)\n",
-                        dst, src, length);
-    memcpy(dst, src, length);
-
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_memcpy done\n");
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-static size_t bytesize_at_this_dimension(
-    size_t element_size,
-    int num_dims,
-    const size_t* dimensions
-)
-{
-    if (num_dims > 1) {
-        return dimensions[1] * 
-               bytesize_at_this_dimension(
-                   element_size, num_dims-1, dimensions+1);
-    } else {
-        return element_size;
-    }
-}
-
-static void memcpy_rect(
-    char         *dst,
-    char         *src,
-    size_t        element_size,
-    int           num_dims,
-    const size_t *volume,
-    const size_t *dst_offsets,
-    const size_t *src_offsets,
-    const size_t *dst_dimensions,
-    const size_t *src_dimensions
-)
-{
-    if (num_dims > 1) {
-        int count = volume[0];
-        int dst_index = dst_offsets[0];
-        int src_index = src_offsets[0];
-        size_t dst_element_size =
-            bytesize_at_this_dimension(element_size, num_dims, dst_dimensions);
-        size_t src_element_size =
-            bytesize_at_this_dimension(element_size, num_dims, src_dimensions);
-        for (; count>0; dst_index++, src_index++, count--) {
-            memcpy_rect(dst+dst_element_size*dst_index,
-                        src+src_element_size*src_index,
-                        element_size, num_dims-1, volume+1,
-                        dst_offsets+1, src_offsets+1,
-                        dst_dimensions+1, src_dimensions+1);
-        }
-    } else {
-        memcpy(dst+dst_offsets[0]*element_size,
-               src+src_offsets[0]*element_size,
-               element_size * volume[0]);
-    }
-}
-
-DLL_LOCAL void omp_target_memcpy_rect_target(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    struct parameters {
-        void   *dst;
-        void   *src;
-        size_t  element_size;
-        int     num_dims;
-        size_t array_info[MAX_ARRAY_RANK*5];
-    } parameters;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &parameters;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_memcpy_rect(%p, %p, %lld, %d)\n",
-                        parameters.dst, parameters.src,
-                        parameters.element_size, parameters.num_dims);
-    memcpy_rect(
-          (char*)parameters.dst, (char*)parameters.src, parameters.element_size,
-          parameters.num_dims,
-          &parameters.array_info[0],
-          &parameters.array_info[parameters.num_dims],
-          &parameters.array_info[parameters.num_dims*2],
-          &parameters.array_info[parameters.num_dims*3],
-          &parameters.array_info[parameters.num_dims*4]);
-
-    OFFLOAD_DEBUG_TRACE(2, "omp_target_memcpy_rect done\n");
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-// End of OpenMP 4.5 APIs
-
-
-// OpenMP API wrappers
-
-static void omp_send_int_to_host(
-    void *ofld_,
-    int setting
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_out;
-    vars[0].ptr = &setting;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-static int omp_get_int_from_host(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    int setting;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &setting;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    OFFLOAD_TARGET_LEAVE(ofld);
-
-    return setting;
-}
-
-DLL_LOCAL void omp_set_num_threads_lrb(
-    void *ofld
-)
-{
-    int num_threads;
-
-    num_threads = omp_get_int_from_host(ofld);
-    omp_set_num_threads(num_threads);
-}
-
-DLL_LOCAL void omp_get_max_threads_lrb(
-    void *ofld
-)
-{
-    int num_threads;
-
-    num_threads = omp_get_max_threads();
-    omp_send_int_to_host(ofld, num_threads);
-}
-
-DLL_LOCAL void omp_get_num_procs_lrb(
-    void *ofld
-)
-{
-    int num_procs;
-
-    num_procs = omp_get_num_procs();
-    omp_send_int_to_host(ofld, num_procs);
-}
-
-DLL_LOCAL void omp_set_dynamic_lrb(
-    void *ofld
-)
-{
-    int dynamic;
-
-    dynamic = omp_get_int_from_host(ofld);
-    omp_set_dynamic(dynamic);
-}
-
-DLL_LOCAL void omp_get_dynamic_lrb(
-    void *ofld
-)
-{
-    int dynamic;
-
-    dynamic = omp_get_dynamic();
-    omp_send_int_to_host(ofld, dynamic);
-}
-
-DLL_LOCAL void omp_set_nested_lrb(
-    void *ofld
-)
-{
-    int nested;
-
-    nested = omp_get_int_from_host(ofld);
-    omp_set_nested(nested);
-}
-
-DLL_LOCAL void omp_get_nested_lrb(
-    void *ofld
-)
-{
-    int nested;
-
-    nested = omp_get_nested();
-    omp_send_int_to_host(ofld, nested);
-}
-
-DLL_LOCAL void omp_set_schedule_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[2] = {0};
-    omp_sched_t kind;
-    int modifier;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &kind;
-
-    vars[1].type.src = c_data;
-    vars[1].type.dst = c_data;
-    vars[1].direction.bits = c_parameter_in;
-    vars[1].ptr = &modifier;
-
-    OFFLOAD_TARGET_ENTER(ofld, 2, vars, NULL);
-    omp_set_schedule(kind, modifier);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_get_schedule_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[2] = {0};
-    omp_sched_t kind;
-    int modifier;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_out;
-    vars[0].ptr = &kind;
-
-    vars[1].type.src = c_data;
-    vars[1].type.dst = c_data;
-    vars[1].direction.bits = c_parameter_out;
-    vars[1].ptr = &modifier;
-
-    OFFLOAD_TARGET_ENTER(ofld, 2, vars, NULL);
-    omp_get_schedule(&kind, &modifier);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-// lock API functions
-
-DLL_LOCAL void omp_init_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_out;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_init_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_destroy_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_destroy_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_set_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_inout;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_set_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_unset_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_inout;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_unset_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_test_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[2] = {0};
-    omp_lock_target_t lock;
-    int result;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_inout;
-    vars[0].ptr = &lock;
-
-    vars[1].type.src = c_data;
-    vars[1].type.dst = c_data;
-    vars[1].direction.bits = c_parameter_out;
-    vars[1].ptr = &result;
-
-    OFFLOAD_TARGET_ENTER(ofld, 2, vars, NULL);
-    result = omp_test_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-// nested lock API functions
-
-DLL_LOCAL void omp_init_nest_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_nest_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_out;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_init_nest_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_destroy_nest_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_nest_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_in;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_destroy_nest_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_set_nest_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_nest_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_inout;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_set_nest_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_unset_nest_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[1] = {0};
-    omp_nest_lock_target_t lock;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_inout;
-    vars[0].ptr = &lock;
-
-    OFFLOAD_TARGET_ENTER(ofld, 1, vars, NULL);
-    omp_unset_nest_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-DLL_LOCAL void omp_test_nest_lock_lrb(
-    void *ofld_
-)
-{
-    OFFLOAD ofld = (OFFLOAD) ofld_;
-    VarDesc vars[2] = {0};
-    omp_nest_lock_target_t lock;
-    int result;
-
-    vars[0].type.src = c_data;
-    vars[0].type.dst = c_data;
-    vars[0].direction.bits = c_parameter_inout;
-    vars[0].ptr = &lock;
-
-    vars[1].type.src = c_data;
-    vars[1].type.dst = c_data;
-    vars[1].direction.bits = c_parameter_out;
-    vars[1].ptr = &result;
-
-    OFFLOAD_TARGET_ENTER(ofld, 2, vars, NULL);
-    result = omp_test_nest_lock(&lock.lock);
-    OFFLOAD_TARGET_LEAVE(ofld);
-}
-
-// Target-side stubs for the host functions (to avoid unresolveds)
-// These are needed for the offloadm table
-
-void omp_set_num_threads_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-)
-{
-}
-
-int omp_get_max_threads_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return 0;
-}
-
-int omp_get_num_procs_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return 0;
-}
-
-void omp_set_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-)
-{
-}
-
-int omp_get_dynamic_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return 0;
-}
-
-void omp_set_nested_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    int num_threads
-)
-{
-}
-
-int omp_get_nested_target(
-    TARGET_TYPE target_type,
-    int target_number
-)
-{
-    return 0;
-}
-
-void omp_set_schedule_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_sched_t kind,
-    int modifier
-)
-{
-}
-
-void omp_get_schedule_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_sched_t *kind,
-    int *modifier
-)
-{
-}
-
-void omp_init_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-}
-
-void omp_destroy_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-}
-
-void omp_set_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-}
-
-void omp_unset_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-}
-
-int omp_test_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_lock_target_t *lock
-)
-{
-    return 0;
-}
-
-void omp_init_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-}
-
-void omp_destroy_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-}
-
-void omp_set_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-}
-
-void omp_unset_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-}
-
-int omp_test_nest_lock_target(
-    TARGET_TYPE target_type,
-    int target_number,
-    omp_nest_lock_target_t *lock
-)
-{
-    return 0;
-}
diff --git a/liboffloadmic/runtime/offload_orsl.cpp b/liboffloadmic/runtime/offload_orsl.cpp
deleted file mode 100644 (file)
index a2ab674..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_orsl.h"
-#include <stdlib.h>
-#include "offload_host.h"
-#include "orsl-lite/include/orsl-lite.h"
-
-namespace ORSL {
-
-static bool            is_enabled = false;
-static const ORSLTag   my_tag = (const ORSLTag) "Offload";
-
-void init()
-{
-    const char *env_var = getenv("OFFLOAD_ENABLE_ORSL");
-    if (env_var != 0 && *env_var != '\0') {
-        int64_t new_val;
-        if (__offload_parse_int_string(env_var, new_val)) {
-            is_enabled = new_val;
-        }
-        else {
-            LIBOFFLOAD_ERROR(c_invalid_env_var_int_value,
-                             "OFFLOAD_ENABLE_ORSL");
-        }
-    }
-
-    if (is_enabled) {
-        OFFLOAD_DEBUG_TRACE(2, "ORSL is enabled\n");
-    }
-    else {
-        OFFLOAD_DEBUG_TRACE(2, "ORSL is disabled\n");
-    }
-}
-
-bool reserve(int device)
-{
-    if (is_enabled) {
-        int pnum = mic_engines[device].get_physical_index();
-        ORSLBusySet bset;
-
-        bset.type = BUSY_SET_FULL;
-        if (ORSLReserve(1, &pnum, &bset, my_tag) != 0) {
-            return false;
-        }
-    }
-    return true;
-}
-
-bool try_reserve(int device)
-{
-    if (is_enabled) {
-        int pnum = mic_engines[device].get_physical_index();
-        ORSLBusySet bset;
-
-        bset.type = BUSY_SET_FULL;
-        if (ORSLTryReserve(1, &pnum, &bset, my_tag) != 0) {
-            return false;
-        }
-    }
-    return true;
-}
-
-void release(int device)
-{
-    if (is_enabled) {
-        int pnum = mic_engines[device].get_physical_index();
-        ORSLBusySet bset;
-
-        bset.type = BUSY_SET_FULL;
-        if (ORSLRelease(1, &pnum, &bset, my_tag) != 0) {
-            // should never get here
-        }
-    }
-}
-
-} // namespace ORSL
diff --git a/liboffloadmic/runtime/offload_orsl.h b/liboffloadmic/runtime/offload_orsl.h
deleted file mode 100644 (file)
index 4513fcc..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_util.h"
-
-#ifndef OFFLOAD_ORSL_H_INCLUDED
-#define OFFLOAD_ORSL_H_INCLUDED
-
-// ORSL interface
-namespace ORSL {
-
-DLL_LOCAL extern void init();
-
-DLL_LOCAL extern bool reserve(int device);
-DLL_LOCAL extern bool try_reserve(int device);
-DLL_LOCAL extern void release(int device);
-
-} // namespace ORSL
-
-#endif // OFFLOAD_ORSL_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_table.cpp b/liboffloadmic/runtime/offload_table.cpp
deleted file mode 100644 (file)
index 09c4d20..0000000
+++ /dev/null
@@ -1,671 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_table.h"
-#include "offload_common.h"
-
-// Offload Library versioning
-// We initialize version to OFFLOAD_VERSION_16
-// 15.0 application downgrades this to 1500 for MYO to use the older version.
-// 15.0 pragma works without needing version-specific code.
-// 16.0-U2 added a call from ofldbegin.cpp to set the version explicitly.
-// Pre-16.0-U2 application will find pre-initialized version number as 1600.
-// Post 16.0-U2 application will set its own version explicitly.
-int offload_version = OFFLOAD_VERSION_16;
-int offload_version_count = 0;
-
-#if !HOST_LIBRARY
-// Predefined offload entries
-extern void omp_set_num_threads_lrb(void*);
-extern void omp_get_max_threads_lrb(void*);
-extern void omp_get_num_procs_lrb(void*);
-extern void omp_set_dynamic_lrb(void*);
-extern void omp_get_dynamic_lrb(void*);
-extern void omp_set_nested_lrb(void*);
-extern void omp_get_nested_lrb(void*);
-extern void omp_set_schedule_lrb(void*);
-extern void omp_get_schedule_lrb(void*);
-
-extern void omp_init_lock_lrb(void*);
-extern void omp_destroy_lock_lrb(void*);
-extern void omp_set_lock_lrb(void*);
-extern void omp_unset_lock_lrb(void*);
-extern void omp_test_lock_lrb(void*);
-
-extern void omp_init_nest_lock_lrb(void*);
-extern void omp_destroy_nest_lock_lrb(void*);
-extern void omp_set_nest_lock_lrb(void*);
-extern void omp_unset_nest_lock_lrb(void*);
-extern void omp_test_nest_lock_lrb(void*);
-
-// OpenMP 4.5 APIs
-extern void omp_target_alloc_target(void*);
-extern void omp_target_free_target(void*);
-extern void omp_target_memcpy_target(void*);
-extern void omp_target_memcpy_rect_target(void*);
-
-// Predefined entries on the target side
-static FuncTable::Entry predefined_entries[] = {
-    "omp_set_num_threads_target",
-    (void*) &omp_set_num_threads_lrb,
-    "omp_get_max_threads_target",
-    (void*) &omp_get_max_threads_lrb,
-    "omp_get_num_procs_target",
-    (void*) &omp_get_num_procs_lrb,
-    "omp_set_dynamic_target",
-    (void*) &omp_set_dynamic_lrb,
-    "omp_get_dynamic_target",
-    (void*) &omp_get_dynamic_lrb,
-    "omp_set_nested_target",
-    (void*) &omp_set_nested_lrb,
-    "omp_get_nested_target",
-    (void*) &omp_get_nested_lrb,
-    "omp_set_schedule_target",
-    (void*) &omp_set_schedule_lrb,
-    "omp_get_schedule_target",
-    (void*) &omp_get_schedule_lrb,
-
-    "omp_init_lock_target",
-    (void*) &omp_init_lock_lrb,
-    "omp_destroy_lock_target",
-    (void*) &omp_destroy_lock_lrb,
-    "omp_set_lock_target",
-    (void*) &omp_set_lock_lrb,
-    "omp_unset_lock_target",
-    (void*) &omp_unset_lock_lrb,
-    "omp_test_lock_target",
-    (void*) &omp_test_lock_lrb,
-
-    "omp_init_nest_lock_target",
-    (void*) &omp_init_nest_lock_lrb,
-    "omp_destroy_nest_lock_target",
-    (void*) &omp_destroy_nest_lock_lrb,
-    "omp_set_nest_lock_target",
-    (void*) &omp_set_nest_lock_lrb,
-    "omp_unset_nest_lock_target",
-    (void*) &omp_unset_nest_lock_lrb,
-    "omp_test_nest_lock_target",
-    (void*) &omp_test_nest_lock_lrb,
-
-    "omp_target_alloc_target",
-    (void*) &omp_target_alloc_target,
-    "omp_target_free_target",
-    (void*) &omp_target_free_target,
-    "omp_target_memcpy_target",
-    (void*) &omp_target_memcpy_target,
-    "omp_target_memcpy_rect_target",
-    (void*) &omp_target_memcpy_rect_target,
-
-    (const char*) -1,
-    (void*) -1
-};
-
-static FuncList::Node predefined_table = {
-    { predefined_entries, -1 },
-    0, 0
-};
-
-// Entry table
-FuncList __offload_entries(&predefined_table);
-#else
-FuncList __offload_entries;
-#endif // !HOST_LIBRARY
-
-extern "C" {
-
-// Set library version
-void __offload_set_version(int v)
-{
-    offload_version_count++;
-    if (offload_version_count == 1)
-    {
-        offload_version = v;
-    }
-    else
-    {
-        // Mix of versions is not supported
-        if (v != offload_version)
-        {
-            LIBOFFLOAD_ERROR(c_mixed_versions);
-            exit(1);
-        }
-    }
-}
-
-}  // extern "C"
-// Function table. No predefined entries.
-FuncList __offload_funcs;
-
-// Var table
-VarList  __offload_vars;
-
-// Given the function name returns the associtated function pointer
-const void* FuncList::find_addr(const char *name)
-{
-    const void* func = 0;
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->name != (const char*) -1; e++) {
-            if (e->name != 0 && strcmp(e->name, name) == 0) {
-                func = e->func;
-                break;
-            }
-        }
-    }
-
-    m_lock.unlock();
-
-    return func;
-}
-
-// Given the function pointer returns the associtated function name
-const char* FuncList::find_name(const void *func)
-{
-    const char* name = 0;
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->name != (const char*) -1; e++) {
-            if (e->func == func) {
-                name = e->name;
-                break;
-            }
-        }
-    }
-
-    m_lock.unlock();
-
-    return name;
-}
-
-// Returns max name length from all tables
-int64_t FuncList::max_name_length(void)
-{
-    if (m_max_name_len < 0) {
-        m_lock.lock();
-
-        m_max_name_len = 0;
-        for (Node *n = m_head; n != 0; n = n->next) {
-            if (n->table.max_name_len < 0) {
-                n->table.max_name_len = 0;
-
-                // calculate max name length in a single table
-                for (const Table::Entry *e = n->table.entries;
-                     e->name != (const char*) -1; e++) {
-                    if (e->name != 0) {
-                        size_t len = strlen(e->name) + 1;
-                        if (n->table.max_name_len < len) {
-                            n->table.max_name_len = len;
-                        }
-                    }
-                }
-            }
-
-            // select max from all tables
-            if (m_max_name_len < n->table.max_name_len) {
-                m_max_name_len = n->table.max_name_len;
-            }
-        }
-
-        m_lock.unlock();
-    }
-    return m_max_name_len;
-}
-
-// Debugging dump
-void FuncList::dump(void)
-{
-    OFFLOAD_DEBUG_TRACE(2, "Function table:\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->name != (const char*) -1; e++) {
-            if (e->name != 0) {
-                OFFLOAD_DEBUG_TRACE(2, "%p %s\n", e->func, e->name);
-            }
-        }
-    }
-
-    m_lock.unlock();
-}
-
-// Debugging dump
-void VarList::dump(void)
-{
-    OFFLOAD_DEBUG_TRACE(2, "Var table:\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->name != (const char*) -1; e++) {
-            if (e->name != 0) {
-#if HOST_LIBRARY
-                OFFLOAD_DEBUG_TRACE(2, "%s %p %ld\n", e->name, e->addr,
-                                    e->size);
-#else  // HOST_LIBRARY
-                OFFLOAD_DEBUG_TRACE(2, "%s %p\n", e->name, e->addr);
-#endif // HOST_LIBRARY
-            }
-        }
-    }
-
-    m_lock.unlock();
-}
-
-//
-int64_t VarList::table_size(int64_t &nelems)
-{
-    int64_t length = 0;
-
-    nelems = 0;
-
-    // calculate string table size and number of elements
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->name != (const char*) -1; e++) {
-            if (e->name != 0) {
-                length += strlen(e->name) + 1;
-                nelems++;
-            }
-        }
-    }
-
-    return nelems * sizeof(BufEntry) + length;
-}
-
-// copy table to the gven buffer
-void VarList::table_copy(void *buf, int64_t nelems)
-{
-    BufEntry* elems = static_cast<BufEntry*>(buf);
-    char*     names = reinterpret_cast<char*>(elems + nelems);
-
-    // copy entries to buffer
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->name != (const char*) -1; e++) {
-            if (e->name != 0) {
-                // name field contains offset to the name from the beginning
-                // of the buffer
-                elems->name = names - static_cast<char*>(buf);
-                elems->addr = reinterpret_cast<intptr_t>(e->addr);
-
-                // copy name to string table
-                const char *name = e->name;
-                while ((*names++ = *name++) != '\0');
-
-                elems++;
-            }
-        }
-    }
-}
-
-// patch name offsets in a buffer
-void VarList::table_patch_names(void *buf, int64_t nelems)
-{
-    BufEntry* elems = static_cast<BufEntry*>(buf);
-    for (int i = 0; i < nelems; i++) {
-        elems[i].name += reinterpret_cast<intptr_t>(buf);
-    }
-}
-
-#if HOST_LIBRARY
-// 16.0 and earlier compilers used the following VarTable
-struct OldVarTable {
-    const char* name;
-    void*       addr;
-    // uint64_t var_alloc_type  missing in 16.0 and earlier
-    uint64_t    size;
-};
-
-static void convert_OldVarTable_to_NewVarTable(VarList::Node *vt_start)
-{
-    int table_size = 0;
-    char * new_var_table;
-    OldVarTable *old_var_table;
-
-    OFFLOAD_DEBUG_TRACE(2, 
-       "Converting old var table to new var table to support backward compatiblity\n");
-
-    // Calculate size of memory to be malloced
-    old_var_table = (OldVarTable *) vt_start->table.entries;
-    while (old_var_table->name != (const char*) -1) {
-        table_size++;
-        old_var_table++;
-    }
-
-    if (table_size != 0) {
-       // Add 1 to table_size for end of table signature 
-       VarTable::Entry *new_var_table = 
-           new VarTable::Entry[table_size+1];
-
-       if (new_var_table  == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-
-      old_var_table = (OldVarTable *) vt_start->table.entries;
-
-      // Update VarList with new table
-      vt_start->table.entries = new_var_table;
-
-      // Fix up the new table value from old table
-      for (int i=0; i< table_size; i++) {
-         new_var_table->name = old_var_table->name;
-         new_var_table->addr = old_var_table->addr;
-         new_var_table->size = old_var_table->size;
-         // Assign value of 0 for the missing field.
-         // Implying it is neither IMPLICIT or LINK variable as
-         // they were not supported in earlier compilers
-         new_var_table->var_alloc_type  = 0;
-         old_var_table++;
-         new_var_table++;
-      }
-      new_var_table->name = (const char *)-1;
-   }
-
-}
-#endif //HOST_LIBRARY
-
-// Adds given list element to the global lookup table list
-extern "C" void __offload_register_tables(
-    FuncList::Node *entry_table,
-    FuncList::Node *func_table,
-    VarList::Node *var_table
-)
-{
-    OFFLOAD_DEBUG_TRACE(2, "Registering offload function entry table %p\n",
-                           entry_table);
-    __offload_entries.add_table(entry_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Registering function table %p\n", func_table);
-    __offload_funcs.add_table(func_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Registering var table %p\n", var_table);
-
-    // Compiler earlier than 17.0 used a different var_table.
-    // Convert the old table to new var_table format.
-    // Only the host table for LINUX has changed.
-#ifndef  TARGET_WINNT
-#if HOST_LIBRARY
-    if (offload_version < OFFLOAD_VERSION_17) {
-       convert_OldVarTable_to_NewVarTable(var_table);
-    }
-#endif
-#endif
-    __offload_vars.add_table(var_table);
-}
-
-// Removes given list element from the global lookup table list
-extern "C" void __offload_unregister_tables(
-    FuncList::Node *entry_table,
-    FuncList::Node *func_table,
-    VarList::Node *var_table
-)
-{
-    OFFLOAD_DEBUG_TRACE(2, "Unregistering offload function entry table %p\n",
-                           entry_table);
-    __offload_entries.remove_table(entry_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Unregistering function table %p\n", func_table);
-    __offload_funcs.remove_table(func_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Unregistering var table %p\n", var_table);
-#ifndef  TARGET_WINNT
-#if HOST_LIBRARY
-    if (offload_version < OFFLOAD_VERSION_17) {
-       // Free the malloced var_table created for backward compatiblity
-       delete var_table->table.entries;
-    }
-#endif
-#endif
-    __offload_vars.remove_table(var_table);
-}
-
-#ifdef MYO_SUPPORT
-
-MYOVarTableList  __offload_myo_var_tables;
-MYOVarTableList  __offload_myo_vtable_tables;
-MYOFuncTableList __offload_myo_func_tables;
-MYOInitTableList __offload_myo_init_tables;
-
-// Debugging dump
-void MYOVarTableList::dump(void)
-{
-    OFFLOAD_DEBUG_TRACE(2, "MYO Var tables:\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        OFFLOAD_DEBUG_TRACE(2, "    MYO Var table:\n");
-        for (const Table::Entry *e = n->table.entries;
-             e->varName != MYO_TABLE_END_MARKER(); e++) {
-#ifdef TARGET_WINNT
-            if (e->varName == 0) {
-                continue;
-            }
-#endif // TARGET_WINNT
-            OFFLOAD_DEBUG_TRACE(2, "        %s %p\n",
-                e->varName, e->sharedAddr);
-        }
-    }
-
-    m_lock.unlock();
-}
-
-// check if any shared variables
-bool MYOVarTableList::is_empty()
-{
-    OFFLOAD_DEBUG_TRACE(3, "Are MYO Var tables empty?\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-             e->varName != MYO_TABLE_END_MARKER(); e++) {
-#ifdef TARGET_WINNT
-            if (e->varName == 0) {
-                continue;
-            }
-#endif // TARGET_WINNT
-            m_lock.unlock();
-            OFFLOAD_DEBUG_TRACE(3, "No\n");
-            return false;
-        }
-    }
-
-    m_lock.unlock();
-    OFFLOAD_DEBUG_TRACE(3, "Yes\n");
-    return true;
-}
-
-void MYOFuncTableList::dump(void)
-{
-    OFFLOAD_DEBUG_TRACE(2, "MYO Func tables:\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        OFFLOAD_DEBUG_TRACE(2, "    MYO Func table:\n");
-        for (const Table::Entry *e = n->table.entries;
-             e->funcName != MYO_TABLE_END_MARKER(); e++) {
-#ifdef TARGET_WINNT
-            if (e->funcName == 0) {
-                continue;
-            }
-#endif // TARGET_WINNT
-#if HOST_LIBRARY
-            OFFLOAD_DEBUG_TRACE(2, "        %s %p %p\n",
-                e->funcName, e->funcAddr, e->localThunkAddr);
-#else // HOST_LIBRARY
-            OFFLOAD_DEBUG_TRACE(2, "        %s %p %p %p\n",
-                e->funcName, e->funcAddr, e->wrapFuncAddr, e->localThunkAddr);
-#endif // HOST_LIBRARY
-        }
-    }
-
-    m_lock.unlock();
-}
-
-// check if any shared functions
-bool MYOFuncTableList::is_empty()
-{
-    OFFLOAD_DEBUG_TRACE(3, "Are MYO Func tables empty?\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        int count = 0;
-        for (const Table::Entry *e = n->table.entries;
-             e->funcName != MYO_TABLE_END_MARKER(); e++) {
-#ifdef TARGET_WINNT
-            if (e->funcName == 0) {
-                continue;
-            }
-#endif // TARGET_WINNT
-            count++;
-            if (count > 1) {
-                m_lock.unlock();
-                OFFLOAD_DEBUG_TRACE(3, "No\n");
-                return false;
-            }
-        }
-    }
-
-    m_lock.unlock();
-    OFFLOAD_DEBUG_TRACE(3, "Yes\n");
-    return true;
-}
-
-void MYOInitTableList::dump(void)
-{
-    OFFLOAD_DEBUG_TRACE(2, "MYO Init tables:\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        OFFLOAD_DEBUG_TRACE(2, "    MYO Init table:\n");
-        for (const Table::Entry *e = n->table.entries;
-#ifdef TARGET_WINNT
-             e->funcName != MYO_TABLE_END_MARKER(); e++) {
-            if (e->funcName == 0) {
-                continue;
-            }
-            OFFLOAD_DEBUG_TRACE(2, "        %s %p\n", e->funcName, e->func);
-#else // TARGET_WINNT
-             e->func != 0; e++) {
-            OFFLOAD_DEBUG_TRACE(2, "        %p\n", e->func);
-#endif // TARGET_WINNT
-        }
-    }
-
-    m_lock.unlock();
-}
-
-// check if any shared functions
-bool MYOInitTableList::is_empty()
-{
-    OFFLOAD_DEBUG_TRACE(3, "Are MYO Init tables empty?\n");
-
-    m_lock.lock();
-
-    for (Node *n = m_head; n != 0; n = n->next) {
-        for (const Table::Entry *e = n->table.entries;
-#ifdef TARGET_WINNT
-             e->funcName != MYO_TABLE_END_MARKER(); e++) {
-            if (e->funcName == 0) {
-                continue;
-            }
-            m_lock.unlock();
-            OFFLOAD_DEBUG_TRACE(3, "No\n");
-            return false;
-#else // TARGET_WINNT
-             e->func != 0; e++) {
-#endif // TARGET_WINNT
-        }
-    }
-
-    m_lock.unlock();
-    OFFLOAD_DEBUG_TRACE(3, "Yes\n");
-    return true;
-}
-
-extern "C" void __offload_myoRegisterTables1(
-    MYOInitTableList::Node *init_table,
-    MYOVarTableList::Node  *shared_table,
-    MYOVarTableList::Node  *shared_vtable,
-    MYOFuncTableList::Node *fptr_table
-)
-{
-    OFFLOAD_DEBUG_TRACE(2, "Registering MYO shared var table %p\n",
-                        shared_table);
-    __offload_myo_var_tables.add_table(shared_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Registering MYO shared vtable table %p\n",
-                        shared_vtable);
-    __offload_myo_vtable_tables.add_table(shared_vtable);
-
-    OFFLOAD_DEBUG_TRACE(2, "Registering MYO function table %p\n", fptr_table);
-    __offload_myo_func_tables.add_table(fptr_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Registering MYO init table %p\n", init_table);
-    __offload_myo_init_tables.add_table(init_table);
-}
-
-extern "C" void __offload_myoRemoveTables(
-    MYOInitTableList::Node *init_table,
-    MYOVarTableList::Node  *shared_table,
-    MYOVarTableList::Node  *shared_vtable,
-    MYOFuncTableList::Node *fptr_table
-)
-{
-    OFFLOAD_DEBUG_TRACE(3, "%s\n", __func__);
-
-    OFFLOAD_DEBUG_TRACE(2, "Removing MYO shared var table %p\n",
-                        shared_table);
-    __offload_myo_var_tables.remove_table(shared_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Removing MYO shared vtable table %p\n",
-                        shared_vtable);
-    __offload_myo_vtable_tables.remove_table(shared_vtable);
-
-    OFFLOAD_DEBUG_TRACE(2, "Removing MYO function table %p\n", fptr_table);
-    __offload_myo_func_tables.remove_table(fptr_table);
-
-    OFFLOAD_DEBUG_TRACE(2, "Removing MYO init table %p\n", init_table);
-    __offload_myo_init_tables.remove_table(init_table);
-}
-
-#endif // MYO_SUPPORT
diff --git a/liboffloadmic/runtime/offload_table.h b/liboffloadmic/runtime/offload_table.h
deleted file mode 100644 (file)
index 9f9f932..0000000
+++ /dev/null
@@ -1,468 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-/*! \file
-    \brief Function and Variable tables used by the runtime library
-*/
-
-#ifndef OFFLOAD_TABLE_H_INCLUDED
-#define OFFLOAD_TABLE_H_INCLUDED
-
-#include "offload_util.h"
-
-#define OFFLOAD_VERSION_16   1600
-#define OFFLOAD_VERSION_17   1700
-
-// Template representing double linked list of tables
-template <typename T> class TableList {
-public:
-    // table type
-    typedef T Table;
-
-    // List node
-    struct Node {
-        Table   table;
-        Node*   prev;
-        Node*   next;
-    };
-
-public:
-    explicit TableList(Node *node = 0) : m_head(node) {}
-
-    void add_table(Node *node) {
-        m_lock.lock();
-        if (m_head != 0) {
-            node->next = m_head;
-            m_head->prev = node;
-        }
-        m_head = node;
-
-        m_lock.unlock();
-    }
-
-    void remove_table(Node *node) {
-        if (node->next != 0) {
-            node->next->prev = node->prev;
-        }
-        if (node->prev != 0) {
-            node->prev->next = node->next;
-        }
-        if (m_head == node) {
-            m_head = node->next;
-        }
-    }
-
-protected:
-    Node*           m_head;
-    mutex_t         m_lock;
-};
-
-// Function lookup table.
-struct FuncTable {
-    //! Function table entry
-    /*! This table contains functions created from offload regions.   */
-    /*! Each entry consists of a pointer to the function's "key"
-        and the function address.                                     */
-    /*! Each shared library or executable may contain one such table. */
-    /*! The end of the table is marked with an entry whose name field
-        has value -1.                                                 */
-    struct Entry {
-        const char* name; //!< Name of the function
-        void*       func; //!< Address of the function
-    };
-
-    // entries
-    const Entry *entries;
-
-    // max name length
-    int64_t max_name_len;
-};
-
-// Function table
-class DLL_LOCAL FuncList : public TableList<FuncTable> {
-public:
-    explicit FuncList(Node *node = 0) : TableList<Table>(node),
-                                        m_max_name_len(-1)
-    {}
-
-    // add table to the list
-    void add_table(Node *node) {
-        // recalculate max function name length
-        m_max_name_len = -1;
-
-        // add table
-        TableList<Table>::add_table(node);
-    }
-
-    // find function address for the given name
-    const void* find_addr(const char *name);
-
-    // find function name for the given address
-    const char* find_name(const void *addr);
-
-    // max name length from all tables in the list
-    int64_t max_name_length(void);
-
-    // debug dump
-    void dump(void);
-
-private:
-    // max name length within from all tables
-    int64_t m_max_name_len;
-};
-
-#define VAR_ALLOC_TYPE  uint64_t
-#define OPENMP_IMPLICIT   1    // Compiler promoted openmp declare var
-                               // due to implicit use without openmp declare 
-#define OPENMP_LINK       2    // Openmp link clause in openmp declare
-
-#define IS_OPENMP_IMPLICIT(var_alloc_type)         (var_alloc_type & 1)
-#define IS_OPENMP_LINK(var_alloc_type)             (var_alloc_type & 2)
-#define IS_OPENMP_IMPLICIT_OR_LINK(var_alloc_type) (var_alloc_type & 3)
-
-// Table entry for static variables
-struct VarTable {
-    //! Variable table entry
-    /*! This table contains statically allocated variables marked with
-        __declspec(target(mic) or #pragma omp declare target.           */
-    /*! Each entry consists of a pointer to the variable's "key",
-        the variable address and its size in bytes.                     */
-    /*! Because memory allocation is done from the host,
-        the MIC table does not need the size of the variable.           */
-    /*! Padding to make the table entry size a power of 2 is necessary
-        to avoid "holes" between table contributions from different object
-        files on Windows when debug information is specified with /Zi.  */
-    struct Entry {
-        const char* name; //!< Name of the variable
-        void*       addr; //!< Address of the variable
-
-#if HOST_LIBRARY
-        VAR_ALLOC_TYPE  var_alloc_type;
-        uint64_t    size;
-#endif
-    };
-
-    // Table terminated by an entry with name == -1
-    const Entry *entries;
-};
-
-// List of var tables
-class DLL_LOCAL VarList : public TableList<VarTable> {
-public:
-    VarList() : TableList<Table>()
-    {}
-
-    // debug dump
-    void dump();
-
-public:
-
-    Node * get_head() {
-        return m_head;
-    }
-
-public:
-    // Entry representation in a copy buffer
-    struct BufEntry {
-        intptr_t name;
-        intptr_t addr;
-    };
-
-    // Calculate the number of elements in the table and
-    // returns the size of buffer for the table
-    int64_t table_size(int64_t &nelems);
-
-    // Copy table contents to given buffer. It is supposed to be large
-    // enough to hold all elements as string table.
-    void table_copy(void *buf, int64_t nelems);
-
-    // Patch name offsets in a table after it's been copied to other side
-    static void table_patch_names(void *buf, int64_t nelems);
-};
-
-DLL_LOCAL extern FuncList __offload_entries;
-DLL_LOCAL extern FuncList __offload_funcs;
-DLL_LOCAL extern VarList  __offload_vars;
-
-// Section names where the lookup tables are stored
-#ifdef TARGET_WINNT
-#define OFFLOAD_ENTRY_TABLE_SECTION_START   ".OffloadEntryTable$a"
-#define OFFLOAD_ENTRY_TABLE_SECTION_END     ".OffloadEntryTable$z"
-
-#define OFFLOAD_FUNC_TABLE_SECTION_START    ".OffloadFuncTable$a"
-#define OFFLOAD_FUNC_TABLE_SECTION_END      ".OffloadFuncTable$z"
-
-#define OFFLOAD_VAR_TABLE_SECTION_START     ".OffloadVarTable$a"
-#define OFFLOAD_VAR_TABLE_SECTION_END       ".OffloadVarTable$z"
-
-#define OFFLOAD_CRTINIT_SECTION_START       ".CRT$XCT"
-
-#pragma section(OFFLOAD_CRTINIT_SECTION_START, read)
-
-#else  // TARGET_WINNT
-
-#define OFFLOAD_ENTRY_TABLE_SECTION_START   ".OffloadEntryTable."
-#define OFFLOAD_ENTRY_TABLE_SECTION_END     ".OffloadEntryTable."
-
-#define OFFLOAD_FUNC_TABLE_SECTION_START    ".OffloadFuncTable."
-#define OFFLOAD_FUNC_TABLE_SECTION_END      ".OffloadFuncTable."
-
-#define OFFLOAD_VAR_TABLE_SECTION_START     ".OffloadVarTable."
-#define OFFLOAD_VAR_TABLE_SECTION_END       ".OffloadVarTable."
-#endif // TARGET_WINNT
-
-#pragma section(OFFLOAD_ENTRY_TABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_ENTRY_TABLE_SECTION_END, read, write)
-
-#pragma section(OFFLOAD_FUNC_TABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_FUNC_TABLE_SECTION_END, read, write)
-
-#pragma section(OFFLOAD_VAR_TABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_VAR_TABLE_SECTION_END, read, write)
-
-
-// Set library version
-extern "C" void __offload_set_version(int v);
-
-// register/unregister given tables
-extern "C" void __offload_register_tables(
-    FuncList::Node *entry_table,
-    FuncList::Node *func_table,
-    VarList::Node *var_table
-);
-
-extern "C" void __offload_unregister_tables(
-    FuncList::Node *entry_table,
-    FuncList::Node *func_table,
-    VarList::Node *var_table
-);
-
-
-#ifdef MYO_SUPPORT
-
-#include <myotypes.h>
-#include <myoimpl.h>
-#include <myo.h>
-
-#ifdef TARGET_WINNT
-#define MYO_TABLE_END_MARKER() reinterpret_cast<const char*>(-1)
-#else // TARGET_WINNT
-#define MYO_TABLE_END_MARKER() reinterpret_cast<const char*>(0)
-#endif // TARGET_WINNT
-
-// Host and Target-side MYO shared variable table entry layout
-typedef MyoiSharedVarEntry SharedTableEntry;
-
-#if HOST_LIBRARY
-
-// Host-side MYO function table entry layout
-typedef struct {
-    //! Function Name
-    const char *funcName;
-    //! Function Address
-    void *funcAddr;
-    //! Local Thunk Address
-    void *localThunkAddr;
-#ifdef TARGET_WINNT
-    // Dummy to pad up to 32 bytes
-    void *dummy;
-#endif // TARGET_WINNT
-} FptrTableEntry;
-
-// Host-side MYO init routine table entry layout
-typedef struct {
-#ifdef TARGET_WINNT
-    // Dummy to pad up to 16 bytes
-    // Function Name
-    const char *funcName;
-#endif // TARGET_WINNT
-    void (*func)(MyoArena);
-} InitTableEntry;
-
-#else // HOST_LIBRARY
-
-// Target-side MYO function table entry layout
-typedef MyoiTargetSharedFptrEntry   FptrTableEntry;
-
-// Target-side MYO init routine table entry layout
-struct InitTableEntry {
-    void (*func)(void);
-};
-
-#endif // HOST_LIBRARY
-
-#ifdef TARGET_WINNT
-
-#define OFFLOAD_MYO_SHARED_TABLE_SECTION_START          ".MyoSharedTable$a"
-#define OFFLOAD_MYO_SHARED_TABLE_SECTION_END            ".MyoSharedTable$z"
-
-#define OFFLOAD_MYO_SHARED_VTABLE_SECTION_START         ".MyoSharedVTable$a"
-#define OFFLOAD_MYO_SHARED_VTABLE_SECTION_END           ".MyoSharedVTable$z"
-
-#define OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_START     ".MyoSharedInitTable$a"
-#define OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_END       ".MyoSharedInitTable$z"
-
-#define OFFLOAD_MYO_FPTR_TABLE_SECTION_START            ".MyoFptrTable$a"
-#define OFFLOAD_MYO_FPTR_TABLE_SECTION_END              ".MyoFptrTable$z"
-
-#else  // TARGET_WINNT
-
-#define OFFLOAD_MYO_SHARED_TABLE_SECTION_START          ".MyoSharedTable."
-#define OFFLOAD_MYO_SHARED_TABLE_SECTION_END            ".MyoSharedTable."
-
-#define OFFLOAD_MYO_SHARED_VTABLE_SECTION_START         ".MyoSharedVTable."
-#define OFFLOAD_MYO_SHARED_VTABLE_SECTION_END           ".MyoSharedVTable."
-
-#define OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_START     ".MyoSharedInitTable."
-#define OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_END       ".MyoSharedInitTable."
-
-#define OFFLOAD_MYO_FPTR_TABLE_SECTION_START            ".MyoFptrTable."
-#define OFFLOAD_MYO_FPTR_TABLE_SECTION_END              ".MyoFptrTable."
-
-#endif // TARGET_WINNT
-
-#pragma section(OFFLOAD_MYO_SHARED_TABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_MYO_SHARED_TABLE_SECTION_END, read, write)
-
-#pragma section(OFFLOAD_MYO_SHARED_VTABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_MYO_SHARED_VTABLE_SECTION_END, read, write)
-
-#pragma section(OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_END, read, write)
-
-#pragma section(OFFLOAD_MYO_FPTR_TABLE_SECTION_START, read, write)
-#pragma section(OFFLOAD_MYO_FPTR_TABLE_SECTION_END, read, write)
-
-// List of MYO shared variable tables
-struct MYOVarTable {
-    typedef SharedTableEntry Entry;
-    const Entry *entries;
-};
-
-class MYOVarTableList : public TableList<MYOVarTable> {
-public:
-    MYOVarTableList() : TableList<Table>()
-    {}
-
-    // add table to the list
-    void add_table(Node *node) {
-        // add table
-        TableList<Table>::add_table(node);
-    }
-
-    // debug dump
-    void dump(void);
-
-    // check if any shared variables
-    bool is_empty();
-
-    // process the table contents for ordinary variables
-    void process();
-
-    // process the table contents for vtable objects
-    void process_vtable();
-};
-
-// List of MYO shared function tables
-struct MYOFuncTable {
-    typedef FptrTableEntry Entry;
-    const Entry *entries;
-};
-
-class MYOFuncTableList : public TableList<MYOFuncTable> {
-public:
-    MYOFuncTableList() : TableList<Table>()
-    {}
-
-    // add table to the list
-    void add_table(Node *node) {
-        // add table
-        TableList<Table>::add_table(node);
-    }
-
-    // debug dump
-    void dump(void);
-
-    // check if any shared functions
-    bool is_empty();
-
-    // process the table contents
-    void process();
-};
-
-// List of MYO shared variable initialization routine tables
-struct MYOInitTable {
-    typedef InitTableEntry Entry;
-    const Entry *entries;
-};
-
-class MYOInitTableList : public TableList<MYOInitTable> {
-public:
-    MYOInitTableList() : TableList<Table>()
-    {}
-
-    // add table to the list
-    void add_table(Node *node) {
-        // add table
-        TableList<Table>::add_table(node);
-    }
-
-    // debug dump
-    void dump(void);
-
-    // check if any init routines
-    bool is_empty();
-
-    // process the table contents
-    void process();
-};
-
-extern MYOVarTableList  __offload_myo_var_tables;
-extern MYOVarTableList  __offload_myo_vtable_tables;
-extern MYOFuncTableList __offload_myo_func_tables;
-extern MYOInitTableList __offload_myo_init_tables;
-
-extern "C" void __offload_myoRegisterTables1(
-    MYOInitTableList::Node *init_table,
-    MYOVarTableList::Node  *shared_table,
-    MYOVarTableList::Node  *shared_vtable,
-    MYOFuncTableList::Node *fptr_table
-); 
-
-extern "C" void __offload_myoRemoveTables(
-    MYOInitTableList::Node *init_table,
-    MYOVarTableList::Node  *shared_table,
-    MYOVarTableList::Node  *shared_vtable,
-    MYOFuncTableList::Node *fptr_table
-);
-
-#endif // MYO_SUPPORT
-
-#endif  // OFFLOAD_TABLE_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_target.cpp b/liboffloadmic/runtime/offload_target.cpp
deleted file mode 100644 (file)
index 16ba4a3..0000000
+++ /dev/null
@@ -1,878 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_target.h"
-#include <stdlib.h>
-#include <unistd.h>
-#ifdef SEP_SUPPORT
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#endif // SEP_SUPPORT
-#include <omp.h>
-#include <map>
-
-// typedef offload_func_with_parms.
-// Pointer to function that represents an offloaded entry point.
-// The parameters are a temporary fix for parameters on the stack.
-typedef void (*offload_func_with_parms)(void *);
-
-// Target console and file logging
-const char *prefix;
-int console_enabled = 0;
-int offload_report_level = 0;
-
-// Trace information
-static const char* vardesc_direction_as_string[] = {
-    "NOCOPY",
-    "IN",
-    "OUT",
-    "INOUT"
-};
-static const char* vardesc_type_as_string[] = {
-    "unknown",
-    "data",
-    "data_ptr",
-    "func_ptr",
-    "void_ptr",
-    "string_ptr",
-    "dv",
-    "dv_data",
-    "dv_data_slice",
-    "dv_ptr",
-    "dv_ptr_data",
-    "dv_ptr_data_slice",
-    "cean_var",
-    "cean_var_ptr",
-    "c_data_ptr_array",
-    "c_extended_type",
-    "c_func_ptr_array",
-    "c_void_ptr_array",
-    "c_string_ptr_array",
-    "c_data_ptr_ptr",
-    "c_func_ptr_ptr",
-    "c_void_ptr_ptr",
-    "c_string_ptr_ptr",
-    "c_cean_var_ptr_ptr",
-};
-
-int mic_index = -1;
-int mic_engines_total = -1;
-uint64_t mic_frequency = 0;
-int offload_number = 0;
-static std::map<void*, RefInfo*> ref_data;
-static mutex_t add_ref_lock;
-
-#ifdef SEP_SUPPORT
-static const char*  sep_monitor_env = "SEP_MONITOR";
-static bool         sep_monitor = false;
-static const char*  sep_device_env = "SEP_DEVICE";
-static const char*  sep_device =  "/dev/sep3.8/c";
-static int          sep_counter = 0;
-
-#define SEP_API_IOC_MAGIC   99
-#define SEP_IOCTL_PAUSE     _IO (SEP_API_IOC_MAGIC, 31)
-#define SEP_IOCTL_RESUME    _IO (SEP_API_IOC_MAGIC, 32)
-
-static void add_ref_count(void * buf, bool created)
-{
-    mutex_locker_t locker(add_ref_lock);
-    RefInfo * info = ref_data[buf];
-
-    if (info) {
-        info->count++;
-    }
-    else {
-        info = new RefInfo((int)created,(long)1);
-    }
-    info->is_added |= created;
-    ref_data[buf] = info;
-}
-
-static void BufReleaseRef(void * buf)
-{
-    mutex_locker_t locker(add_ref_lock);
-    RefInfo * info = ref_data[buf];
-
-    if (info) {
-        --info->count;
-        if (info->count == 0 && info->is_added) {
-            OFFLOAD_TRACE(1, "Calling COIBufferReleaseRef AddRef count = %d\n",
-                             ((RefInfo *) ref_data[buf])->count);
-            BufferReleaseRef(buf);
-            info->is_added = 0;
-        }
-    }
-}
-
-static int VTPauseSampling(void)
-{
-    int ret = -1;
-    int handle = open(sep_device, O_RDWR);
-    if (handle > 0) {
-        ret = ioctl(handle, SEP_IOCTL_PAUSE);
-        close(handle);
-    }
-    return ret;
-}
-
-static int VTResumeSampling(void)
-{
-    int ret = -1;
-    int handle = open(sep_device, O_RDWR);
-    if (handle > 0) {
-        ret = ioctl(handle, SEP_IOCTL_RESUME);
-        close(handle);
-    }
-    return ret;
-}
-#endif // SEP_SUPPORT
-
-void OffloadDescriptor::offload(
-    uint32_t  buffer_count,
-    void**    buffers,
-    void*     misc_data,
-    uint16_t  misc_data_len,
-    void*     return_data,
-    uint16_t  return_data_len
-)
-{
-    FunctionDescriptor *func = (FunctionDescriptor*) misc_data;
-    const char *name = func->data;
-    OffloadDescriptor ofld;
-    char *in_data = 0;
-    char *out_data = 0;
-    char *timer_data = 0;
-
-    console_enabled = func->console_enabled;
-    timer_enabled = func->timer_enabled;
-    offload_report_level = func->offload_report_level;
-    offload_number = func->offload_number;
-    ofld.set_offload_number(func->offload_number);
-
-#ifdef SEP_SUPPORT
-    if (sep_monitor) {
-        if (__sync_fetch_and_add(&sep_counter, 1) == 0) {
-            OFFLOAD_DEBUG_TRACE(2, "VTResumeSampling\n");
-            VTResumeSampling();
-        }
-    }
-#endif // SEP_SUPPORT
-
-    OFFLOAD_DEBUG_TRACE_1(2, ofld.get_offload_number(),
-                          c_offload_start_target_func,
-                          "Offload \"%s\" started\n", name);
-
-    // initialize timer data
-    OFFLOAD_TIMER_INIT();
-
-    OFFLOAD_TIMER_START(c_offload_target_total_time);
-
-    OFFLOAD_TIMER_START(c_offload_target_descriptor_setup);
-
-    // get input/output buffer addresses
-    if (func->in_datalen > 0 || func->out_datalen > 0) {
-        if (func->data_offset != 0) {
-            in_data = (char*) misc_data + func->data_offset;
-            out_data = (char*) return_data;
-        }
-        else {
-            char *inout_buf = (char*) buffers[--buffer_count];
-            in_data = inout_buf;
-            out_data = inout_buf;
-        }
-    }
-
-    // assign variable descriptors
-    ofld.m_vars_total = func->vars_num;
-    if (ofld.m_vars_total > 0) {
-        uint64_t var_data_len = ofld.m_vars_total * sizeof(VarDesc);
-
-        ofld.m_vars = (VarDesc*) malloc(var_data_len);
-        if (ofld.m_vars == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-        memcpy(ofld.m_vars, in_data, var_data_len);
-
-        ofld.m_vars_extra =
-            (VarExtra*) malloc(ofld.m_vars_total * sizeof(VarExtra));
-        if (ofld.m_vars == NULL)
-          LIBOFFLOAD_ERROR(c_malloc);
-
-        in_data += var_data_len;
-        func->in_datalen -= var_data_len;
-    }
-
-    // timer data
-    if (func->timer_enabled) {
-        uint64_t timer_data_len = OFFLOAD_TIMER_DATALEN();
-
-        timer_data = out_data;
-        out_data += timer_data_len;
-        func->out_datalen -= timer_data_len;
-    }
-
-    // init Marshallers
-    ofld.m_in.init_buffer(in_data, func->in_datalen);
-    ofld.m_out.init_buffer(out_data, func->out_datalen);
-
-    // copy buffers to offload descriptor
-    std::copy(buffers, buffers + buffer_count,
-              std::back_inserter(ofld.m_buffers));
-
-    OFFLOAD_TIMER_STOP(c_offload_target_descriptor_setup);
-
-    // find offload entry address
-    OFFLOAD_TIMER_START(c_offload_target_func_lookup);
-
-    offload_func_with_parms entry = (offload_func_with_parms)
-        __offload_entries.find_addr(name);
-
-    if (entry == NULL) {
-#if OFFLOAD_DEBUG > 0
-        if (console_enabled > 2) {
-            __offload_entries.dump();
-        }
-#endif
-        LIBOFFLOAD_ERROR(c_offload_descriptor_offload, name);
-        exit(1);
-    }
-
-    OFFLOAD_TIMER_STOP(c_offload_target_func_lookup);
-
-    OFFLOAD_TIMER_START(c_offload_target_func_time);
-
-    // execute offload entry
-    entry(&ofld);
-
-    OFFLOAD_TIMER_STOP(c_offload_target_func_time);
-
-    OFFLOAD_TIMER_STOP(c_offload_target_total_time);
-
-    // copy timer data to the buffer
-    OFFLOAD_TIMER_TARGET_DATA(timer_data);
-
-    OFFLOAD_DEBUG_TRACE(2, "Offload \"%s\" finished\n", name);
-
-#ifdef SEP_SUPPORT
-    if (sep_monitor) {
-        if (__sync_sub_and_fetch(&sep_counter, 1) == 0) {
-            OFFLOAD_DEBUG_TRACE(2, "VTPauseSampling\n");
-            VTPauseSampling();
-        }
-    }
-#endif // SEP_SUPPORT
-}
-
-void OffloadDescriptor::merge_var_descs(
-    VarDesc *vars,
-    VarDesc2 *vars2,
-    int vars_total
-)
-{
-    // number of variable descriptors received from host and generated
-    // locally should match
-    if (m_vars_total < vars_total) {
-        LIBOFFLOAD_ERROR(c_merge_var_descs1);
-        exit(1);
-    }
-
-    for (int i = 0; i < m_vars_total; i++) {
-        // instead of m_vars[i].type.src we will use m_vars_extra[i].type_src
-
-        if (i < vars_total) {
-            // variable type must match
-            if (m_vars[i].type.bits != vars[i].type.bits) {
-                OFFLOAD_TRACE(2,
-                    "m_vars[%d].type.bits=%08x, vars[%d].type.bits=%08x\n",
-                    i, m_vars[i].type.bits, i, vars[i].type.bits);
-                LIBOFFLOAD_ERROR(c_merge_var_descs2);
-                exit(1);
-            }
-
-            if (m_vars[i].type.src == c_extended_type) {
-                VarDescExtendedType *etype =
-                    reinterpret_cast<VarDescExtendedType*>(vars[i].ptr);
-                m_vars_extra[i].type_src = etype->extended_type;
-                m_vars[i].ptr            = etype->ptr;
-            }
-            else {
-                m_vars_extra[i].type_src = m_vars[i].type.src;
-                if (!(m_vars[i].flags.use_device_ptr &&
-                      m_vars[i].type.src == c_dv)) {
-                    m_vars[i].ptr = vars[i].ptr;
-                }
-            }
-            // instead of m_vars[i].type.dst we will use m_vars_extra[i].type_dst
-            if (i < vars_total && m_vars[i].type.dst == c_extended_type) {
-                VarDescExtendedType *etype =
-                    reinterpret_cast<VarDescExtendedType*>(vars[i].into);
-                m_vars_extra[i].type_dst = etype->extended_type;
-                m_vars[i].into           = etype->ptr;
-            }
-            else {
-                m_vars_extra[i].type_dst = m_vars[i].type.dst;
-                m_vars[i].into = vars[i].into;
-            }
-
-            const char *var_sname = "";
-            if (vars2 != NULL) {
-                if (vars2[i].sname != NULL) {
-                    var_sname = vars2[i].sname;
-                }
-            }
-            OFFLOAD_DEBUG_TRACE_1(2, get_offload_number(), c_offload_var,
-                "   VarDesc %d, var=%s, %s, %s\n",
-                i, var_sname,
-                vardesc_direction_as_string[m_vars[i].direction.bits],
-                vardesc_type_as_string[m_vars_extra[i].type_src]);
-            if (vars2 != NULL && vars2[i].dname != NULL) {
-                OFFLOAD_TRACE(2, "              into=%s, %s\n", vars2[i].dname,
-                    vardesc_type_as_string[m_vars_extra[i].type_dst]);
-            }
-        }
-        else {
-            m_vars_extra[i].type_src = m_vars[i].type.src;
-            m_vars_extra[i].type_dst = m_vars[i].type.dst;
-        }
-
-        OFFLOAD_TRACE(2,
-            "              type_src=%d, type_dstn=%d, direction=%d, "
-            "alloc_if=%d, free_if=%d, align=%d, mic_offset=%d, flags=0x%x, "
-            "offset=%lld, size=%lld, count/disp=%lld, ptr=%p into=%p\n",
-            m_vars_extra[i].type_src,
-            m_vars_extra[i].type_dst,
-            m_vars[i].direction.bits,
-            m_vars[i].alloc_if,
-            m_vars[i].free_if,
-            m_vars[i].align,
-            m_vars[i].mic_offset,
-            m_vars[i].flags.bits,
-            m_vars[i].offset,
-            m_vars[i].size,
-            m_vars[i].count,
-            m_vars[i].ptr,
-            m_vars[i].into);
-    }
-}
-
-void OffloadDescriptor::scatter_copyin_data()
-{
-    OFFLOAD_TIMER_START(c_offload_target_scatter_inputs);
-
-    OFFLOAD_DEBUG_TRACE(2, "IN  buffer @ %p size %lld\n",
-                        m_in.get_buffer_start(),
-                        m_in.get_buffer_size());
-    OFFLOAD_DEBUG_DUMP_BYTES(2, m_in.get_buffer_start(),
-                             m_in.get_buffer_size());
-
-    // receive data
-    for (int i = 0; i < m_vars_total; i++) {
-        bool src_is_for_mic = (m_vars[i].direction.out ||
-                               m_vars[i].into == NULL);
-        void** ptr_addr = src_is_for_mic ?
-                          static_cast<void**>(m_vars[i].ptr) :
-                          static_cast<void**>(m_vars[i].into);
-        int type = src_is_for_mic ? m_vars_extra[i].type_src :
-                                    m_vars_extra[i].type_dst;
-        bool is_static = src_is_for_mic ?
-                         m_vars[i].flags.is_static :
-                         m_vars[i].flags.is_static_dstn;
-        void *ptr = NULL;
-
-        if (m_vars[i].flags.alloc_disp) {
-            int64_t offset = 0;
-            m_in.receive_data(&offset, sizeof(offset));
-        }
-        if (VAR_TYPE_IS_DV_DATA_SLICE(type) ||
-            VAR_TYPE_IS_DV_DATA(type)) {
-            ArrDesc *dvp = (type == c_dv_data_slice || type == c_dv_data)?
-                  reinterpret_cast<ArrDesc*>(ptr_addr) :
-                  *reinterpret_cast<ArrDesc**>(ptr_addr);
-            ptr_addr = reinterpret_cast<void**>(&dvp->Base);
-        }
-        // Set pointer values
-        switch (type) {
-            case c_data_ptr_array:
-                {
-                    int j = m_vars[i].ptr_arr_offset;
-                    int max_el = j + m_vars[i].count;
-                    char *dst_arr_ptr = (src_is_for_mic)?
-                        *(reinterpret_cast<char**>(m_vars[i].ptr)) :
-                        reinterpret_cast<char*>(m_vars[i].into);
-
-                    // if is_pointer is 1 it means that pointer array itself
-                    // is defined either via pointer or as class member.
-                    // i.e. arr_ptr[0:5] or this->ARR[0:5]
-                    if (m_vars[i].flags.is_pointer) {
-                        int64_t offset = 0;
-                        m_in.receive_data(&offset, sizeof(offset));
-                        dst_arr_ptr = *((char**)dst_arr_ptr) + offset;
-                    }
-                    for (; j < max_el; j++) {
-                        if (src_is_for_mic) {
-                            m_vars[j].ptr =
-                                dst_arr_ptr + m_vars[j].ptr_arr_offset;
-                        }
-                        else {
-                            m_vars[j].into =
-                                dst_arr_ptr + m_vars[j].ptr_arr_offset;
-                        }
-                    }
-                }
-                break;
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var:
-            case c_dv:
-                break;
-
-            case c_string_ptr:
-            case c_data_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr:
-                // Don't need ptr_addr value for variables from stack buffer.
-                // Stack buffer address is set at var_desc with #0.
-                if (i != 0 && m_vars[i].flags.is_stack_buf) {
-                    break;
-                }
-                if (TYPE_IS_PTR_TO_PTR(m_vars_extra[i].type_src) ||
-                    TYPE_IS_PTR_TO_PTR(m_vars_extra[i].type_dst)) {
-                    int64_t offset;
-
-                    m_in.receive_data(&offset, sizeof(offset));
-                    ptr_addr = reinterpret_cast<void**>(
-                                 reinterpret_cast<char*>(*ptr_addr) + offset);
-
-                }
-
-                if (m_vars[i].alloc_if && !m_vars[i].flags.preallocated) {
-                    void *buf = NULL;
-                    if (m_vars[i].flags.sink_addr) {
-                        m_in.receive_data(&buf, sizeof(buf));
-                    }
-                    else {
-                        buf = m_buffers.front();
-                        m_buffers.pop_front();
-                    }
-                    if (buf) {
-                        if (!is_static) {
-                            if (!m_vars[i].flags.sink_addr) {
-                                // increment buffer reference
-                                OFFLOAD_TIMER_START(c_offload_target_add_buffer_refs);
-                                BufferAddRef(buf);
-                                OFFLOAD_TRACE(1, "Calling COIBufferAddRef %p\n", buf);
-                                OFFLOAD_TIMER_STOP(c_offload_target_add_buffer_refs);
-                            }
-                            add_ref_count(buf, 0 == m_vars[i].flags.sink_addr);
-                            OFFLOAD_TRACE(1, "    AddRef count = %d\n",
-                                              ((RefInfo *) ref_data[buf])->count);
-                        }
-                        ptr = static_cast<char*>(buf) +
-                                  m_vars[i].mic_offset +
-                                  (m_vars[i].flags.is_stack_buf ?
-                                   0 : m_vars[i].offset);
-
-                    }
-                    *ptr_addr = ptr;
-                }
-                else if (m_vars[i].flags.sink_addr) {
-                    void *buf;
-                    m_in.receive_data(&buf, sizeof(buf));
-                    void *ptr = static_cast<char*>(buf) +
-                                    m_vars[i].mic_offset +
-                                    (m_vars[i].flags.is_stack_buf ?
-                                     0 : m_vars[i].offset);
-                    *ptr_addr = ptr;
-                }
-                break;
-
-            case c_func_ptr:
-            case c_func_ptr_ptr:
-                break;
-
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-                if (m_vars[i].alloc_if) {
-                    void *buf;
-                    if (m_vars[i].flags.sink_addr) {
-                        m_in.receive_data(&buf, sizeof(buf));
-                    }
-                    else {
-                        buf = m_buffers.front();
-                        m_buffers.pop_front();
-                    }
-                    if (buf) {
-                        if (!is_static) {
-                            if (!m_vars[i].flags.sink_addr) {
-                                // increment buffer reference
-                                OFFLOAD_TIMER_START(c_offload_target_add_buffer_refs);
-                                BufferAddRef(buf);
-                                OFFLOAD_TIMER_STOP(c_offload_target_add_buffer_refs);
-                            }
-                            add_ref_count(buf, 0 == m_vars[i].flags.sink_addr);
-                        }
-                        ptr = static_cast<char*>(buf) +
-                            m_vars[i].mic_offset + m_vars[i].offset;
-                    }
-                    *ptr_addr = ptr;
-                }
-                else if (m_vars[i].flags.sink_addr) {
-                    void *buf;
-                    m_in.receive_data(&buf, sizeof(buf));
-                    ptr = static_cast<char*>(buf) +
-                          m_vars[i].mic_offset + m_vars[i].offset;
-                    *ptr_addr = ptr;
-                }
-                break;
-
-            default:
-                LIBOFFLOAD_ERROR(c_unknown_var_type, type);
-                abort();
-        }
-        // Release obsolete buffers for stack of persistent objects.
-        // The vardesc with i==0 and flags.is_stack_buf==TRUE is always for
-        // stack buffer pointer.
-        if (i == 0 &&
-            m_vars[i].flags.is_stack_buf &&
-            !m_vars[i].direction.bits &&
-            m_vars[i].alloc_if &&
-            m_vars[i].size != 0) {
-                for (int j=0; j < m_vars[i].size; j++) {
-                    void *buf;
-                    m_in.receive_data(&buf, sizeof(buf));
-                    OFFLOAD_TRACE(4, "Releasing stack buffer %p\n", buf);
-                    BufferReleaseRef(buf);
-                    ref_data.erase(buf);
-                }
-        }
-        // Do copyin
-        switch (m_vars_extra[i].type_dst) {
-            case c_data_ptr_array:
-                break;
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var:
-                if (m_vars[i].direction.in &&
-                    !m_vars[i].flags.is_static_dstn) {
-                    int64_t size;
-                    int64_t disp;
-                    char* ptr = m_vars[i].into ?
-                                 static_cast<char*>(m_vars[i].into) :
-                                 static_cast<char*>(m_vars[i].ptr);
-                    if (m_vars_extra[i].type_dst == c_cean_var) {
-                        m_in.receive_data((&size), sizeof(int64_t));
-                        m_in.receive_data((&disp), sizeof(int64_t));
-                    }
-                    else {
-                        size = m_vars[i].size;
-                        disp = 0;
-                    }
-                    m_in.receive_data(ptr + disp, size);
-                }
-                break;
-
-            case c_dv:
-                if (m_vars[i].direction.bits ||
-                    m_vars[i].alloc_if ||
-                    m_vars[i].free_if) {
-                    char* ptr = m_vars[i].into ?
-                                 static_cast<char*>(m_vars[i].into) :
-                                 static_cast<char*>(m_vars[i].ptr);
-                    m_in.receive_data(ptr + sizeof(uint64_t),
-                                      m_vars[i].size - sizeof(uint64_t));
-                }
-                break;
-
-            case c_string_ptr:
-            case c_data_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr:
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-                break;
-
-            case c_func_ptr:
-            case c_func_ptr_ptr:
-                if (m_vars[i].direction.in) {
-                    m_in.receive_func_ptr((const void**) m_vars[i].ptr);
-                }
-                break;
-
-            default:
-                LIBOFFLOAD_ERROR(c_unknown_var_type, m_vars_extra[i].type_dst);
-                abort();
-        }
-    }
-
-    OFFLOAD_TRACE(1, "Total copyin data received from host: [%lld] bytes\n",
-                  m_in.get_tfr_size());
-
-    OFFLOAD_TIMER_STOP(c_offload_target_scatter_inputs);
-
-    OFFLOAD_TIMER_START(c_offload_target_compute);
-}
-
-void OffloadDescriptor::gather_copyout_data()
-{
-    OFFLOAD_TIMER_STOP(c_offload_target_compute);
-
-    OFFLOAD_TIMER_START(c_offload_target_gather_outputs);
-
-    for (int i = 0; i < m_vars_total; i++) {
-        bool src_is_for_mic = (m_vars[i].direction.out ||
-                               m_vars[i].into == NULL);
-        if (m_vars[i].flags.is_stack_buf) {
-            continue;
-        }
-        switch (m_vars_extra[i].type_src) {
-            case c_data_ptr_array:
-                break;
-            case c_data:
-            case c_void_ptr:
-            case c_void_ptr_ptr:
-            case c_cean_var:
-                if (m_vars[i].direction.out &&
-                    !m_vars[i].flags.is_static) {
-                    m_out.send_data(
-                        static_cast<char*>(m_vars[i].ptr) + m_vars[i].disp,
-                        m_vars[i].size);
-                }
-                break;
-
-            case c_dv:
-                break;
-
-            case c_string_ptr:
-            case c_data_ptr:
-            case c_string_ptr_ptr:
-            case c_data_ptr_ptr:
-            case c_cean_var_ptr:
-            case c_cean_var_ptr_ptr:
-            case c_dv_ptr:
-                if (m_vars[i].free_if &&
-                    src_is_for_mic &&
-                    !m_vars[i].flags.preallocated &&
-                    !m_vars[i].flags.is_static) {
-                    void *buf = *static_cast<char**>(m_vars[i].ptr) -
-                                    m_vars[i].mic_offset -
-                                    (m_vars[i].flags.is_stack_buf?
-                                     0 : m_vars[i].offset);
-                    if (buf == NULL) {
-                        break;
-                    }
-                    // decrement buffer reference count
-                    OFFLOAD_TIMER_START(c_offload_target_release_buffer_refs);
-                    BufReleaseRef(buf);
-                    OFFLOAD_TIMER_STOP(c_offload_target_release_buffer_refs);
-                }
-                if (m_vars[i].flags.preallocated && m_vars[i].alloc_if) {
-                    m_out.send_data((void*) m_vars[i].ptr, sizeof(void*));
-                }
-                break;
-
-            case c_func_ptr:
-            case c_func_ptr_ptr:
-                if (m_vars[i].direction.out) {
-                    m_out.send_func_ptr(*((void**) m_vars[i].ptr));
-                }
-                break;
-
-            case c_dv_data:
-            case c_dv_ptr_data:
-            case c_dv_data_slice:
-            case c_dv_ptr_data_slice:
-                if (src_is_for_mic &&
-                    m_vars[i].free_if &&
-                    !m_vars[i].flags.is_static) {
-                    ArrDesc *dvp = (m_vars_extra[i].type_src == c_dv_data ||
-                               m_vars_extra[i].type_src == c_dv_data_slice) ?
-                               static_cast<ArrDesc*>(m_vars[i].ptr) :
-                               *static_cast<ArrDesc**>(m_vars[i].ptr);
-
-                    void *buf = reinterpret_cast<char*>(dvp->Base) -
-                                m_vars[i].mic_offset -
-                                m_vars[i].offset;
-
-                    if (buf == NULL) {
-                        break;
-                    }
-
-                    // decrement buffer reference count
-                    OFFLOAD_TIMER_START(c_offload_target_release_buffer_refs);
-                    BufReleaseRef(buf);
-                    OFFLOAD_TIMER_STOP(c_offload_target_release_buffer_refs);
-                }
-                break;
-
-            default:
-                LIBOFFLOAD_ERROR(c_unknown_var_type, m_vars_extra[i].type_dst);
-                abort();
-        }
-
-        if (m_vars[i].into) {
-            switch (m_vars_extra[i].type_dst) {
-                case c_data_ptr_array:
-                    break;
-                case c_data:
-                case c_void_ptr:
-                case c_void_ptr_ptr:
-                case c_cean_var:
-                case c_dv:
-                    break;
-
-                case c_string_ptr:
-                case c_data_ptr:
-                case c_string_ptr_ptr:
-                case c_data_ptr_ptr:
-                case c_cean_var_ptr:
-                case c_cean_var_ptr_ptr:
-                case c_dv_ptr:
-                    if (m_vars[i].direction.in &&
-                        m_vars[i].free_if &&
-                        !m_vars[i].flags.is_static_dstn) {
-                        void *buf = *static_cast<char**>(m_vars[i].into) -
-                                    m_vars[i].mic_offset -
-                                    (m_vars[i].flags.is_stack_buf?
-                                     0 : m_vars[i].offset);
-
-                        if (buf == NULL) {
-                            break;
-                        }
-                        // decrement buffer reference count
-                        OFFLOAD_TIMER_START(
-                            c_offload_target_release_buffer_refs);
-                        BufReleaseRef(buf);
-                        OFFLOAD_TIMER_STOP(
-                            c_offload_target_release_buffer_refs);
-                    }
-                    break;
-
-                case c_func_ptr:
-                case c_func_ptr_ptr:
-                    break;
-
-                case c_dv_data:
-                case c_dv_ptr_data:
-                case c_dv_data_slice:
-                case c_dv_ptr_data_slice:
-                    if (m_vars[i].free_if &&
-                        m_vars[i].direction.in &&
-                        !m_vars[i].flags.is_static_dstn) {
-                        ArrDesc *dvp =
-                            (m_vars_extra[i].type_dst == c_dv_data_slice ||
-                             m_vars_extra[i].type_dst == c_dv_data) ?
-                            static_cast<ArrDesc*>(m_vars[i].into) :
-                            *static_cast<ArrDesc**>(m_vars[i].into);
-                        void *buf = reinterpret_cast<char*>(dvp->Base) -
-                              m_vars[i].mic_offset -
-                              m_vars[i].offset;
-
-                        if (buf == NULL) {
-                            break;
-                        }
-                        // decrement buffer reference count
-                        OFFLOAD_TIMER_START(
-                            c_offload_target_release_buffer_refs);
-                        BufReleaseRef(buf);
-                        OFFLOAD_TIMER_STOP(
-                            c_offload_target_release_buffer_refs);
-                    }
-                    break;
-
-                default:
-                    LIBOFFLOAD_ERROR(c_unknown_var_type, m_vars_extra[i].type_dst);
-                    abort();
-            }
-        }
-    }
-
-    OFFLOAD_DEBUG_TRACE(2, "OUT buffer @ p %p size %lld\n",
-                        m_out.get_buffer_start(),
-                        m_out.get_buffer_size());
-
-    OFFLOAD_DEBUG_DUMP_BYTES(2,
-                             m_out.get_buffer_start(),
-                             m_out.get_buffer_size());
-
-    OFFLOAD_DEBUG_TRACE_1(1, get_offload_number(), c_offload_copyout_data,
-                  "Total copyout data sent to host: [%lld] bytes\n",
-                  m_out.get_tfr_size());
-
-    OFFLOAD_TIMER_STOP(c_offload_target_gather_outputs);
-}
-
-void __offload_target_init(void)
-{
-#ifdef SEP_SUPPORT
-    const char* env_var = getenv(sep_monitor_env);
-    if (env_var != 0 && *env_var != '\0') {
-        sep_monitor = atoi(env_var);
-    }
-    env_var = getenv(sep_device_env);
-    if (env_var != 0 && *env_var != '\0') {
-        sep_device = env_var;
-    }
-#endif // SEP_SUPPORT
-
-    prefix = report_get_message_str(c_report_mic);
-
-    // init frequency
-    mic_frequency = COIPerfGetCycleFrequency();
-}
-
-// User-visible offload API
-
-int _Offload_number_of_devices(void)
-{
-    return mic_engines_total;
-}
-
-int _Offload_get_device_number(void)
-{
-    return mic_index;
-}
-
-int _Offload_get_physical_device_number(void)
-{
-    uint32_t index;
-    EngineGetIndex(&index);
-    return index;
-}
diff --git a/liboffloadmic/runtime/offload_target.h b/liboffloadmic/runtime/offload_target.h
deleted file mode 100644 (file)
index 8d2971b..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// The parts of the offload library used only on the target
-
-#ifndef OFFLOAD_TARGET_H_INCLUDED
-#define OFFLOAD_TARGET_H_INCLUDED
-
-#include "offload_common.h"
-#include "coi/coi_server.h"
-
-// The offload descriptor.
-class OffloadDescriptor
-{
-public:
-    ~OffloadDescriptor() {
-        if (m_vars != 0) {
-            free(m_vars);
-            free(m_vars_extra);
-        }
-    }
-
-    // Entry point for COI. Synchronously execute offloaded region given
-    // the provided buffers, misc and return data.
-    static void offload(
-        uint32_t  buffer_count,
-        void**    buffers,
-        void*     misc_data,
-        uint16_t  misc_data_len,
-        void*     return_data,
-        uint16_t  return_data_len
-    );
-
-    // scatters input data from in buffer to target variables
-    void scatter_copyin_data();
-
-    // gathers output data to the buffer
-    void gather_copyout_data();
-
-    // merges local variable descriptors with the descriptors received from
-    // host
-    void merge_var_descs(VarDesc *vars, VarDesc2 *vars2, int vars_total);
-
-    int get_offload_number() const {
-        return m_offload_number;
-    }
-
-    void set_offload_number(int number) {
-        m_offload_number = number;
-    }
-
-private:
-    // Constructor
-    OffloadDescriptor() : m_vars(0)
-    {}
-
-private:
-    typedef std::list<void*> BufferList;
-
-    // The Marshaller for the inputs of the offloaded region.
-    Marshaller m_in;
-
-    // The Marshaller for the outputs of the offloaded region.
-    Marshaller m_out;
-
-    // List of buffers that are passed to dispatch call
-    BufferList m_buffers;
-
-    // Variable descriptors received from host
-    VarDesc* m_vars;
-    int      m_vars_total;
-    int      m_offload_number;
-
-    // extra data associated with each variable descriptor
-    struct VarExtra {
-        uint16_t type_src;
-        uint16_t type_dst;
-    };
-
-    VarExtra* m_vars_extra;
-};
-
-// one time target initialization in main
-DLL_LOCAL extern void __offload_target_init(void);
-
-// logical device index
-DLL_LOCAL extern int mic_index;
-
-// total number of available logical devices
-DLL_LOCAL extern int mic_engines_total;
-
-// device frequency (from COI)
-DLL_LOCAL extern uint64_t mic_frequency;
-
-struct RefInfo {
-    RefInfo(bool is_add, long amount):is_added(is_add),count(amount)
-    {}
-    bool is_added;
-    long count;
-};
-
-#endif // OFFLOAD_TARGET_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_target_main.cpp b/liboffloadmic/runtime/offload_target_main.cpp
deleted file mode 100644 (file)
index 68f7c30..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-extern "C" void __offload_target_main(void);
-
-int main(int argc, char ** argv)
-{
-    __offload_target_main();
-    return 0;
-}
diff --git a/liboffloadmic/runtime/offload_timer.h b/liboffloadmic/runtime/offload_timer.h
deleted file mode 100644 (file)
index 30a1149..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef OFFLOAD_TIMER_H_INCLUDED
-#define OFFLOAD_TIMER_H_INCLUDED
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdint.h>
-#include "liboffload_error_codes.h"
-
-DLL_LOCAL extern int timer_enabled;
-
-#ifdef TIMING_SUPPORT
-
-struct OffloadTargetTimerData {
-    uint64_t frequency;
-    struct {
-        uint64_t start;
-        uint64_t total;
-    } phases[c_offload_target_max_phase];
-};
-
-struct OffloadHostTimerData {
-    // source file name and line number
-    const char* file;
-    int         line;
-
-    // host timer data
-    struct {
-        uint64_t start;
-        uint64_t total;
-    } phases[c_offload_host_max_phase];
-
-    uint64_t sent_bytes;
-    uint64_t received_bytes;
-    int card_number;
-    int offload_number;
-
-    // target timer data
-    OffloadTargetTimerData target;
-
-    // next element
-    OffloadHostTimerData *next;
-};
-
-#if HOST_LIBRARY
-
-DLL_LOCAL extern int offload_report_level;
-DLL_LOCAL extern int offload_report_enabled;
-#define OFFLOAD_REPORT_1 1
-#define OFFLOAD_REPORT_2 2
-#define OFFLOAD_REPORT_3 3
-#define OFFLOAD_REPORT_ON 1
-#define OFFLOAD_REPORT_OFF 0
-
-#define OFFLOAD_TIMER_DATALEN() \
-    ((timer_enabled || (offload_report_level && offload_report_enabled)) ? \
-     ((1 + c_offload_target_max_phase) * sizeof(uint64_t)) : 0)
-
-#define OFFLOAD_TIMER_START(timer_data, pnode) \
-    if (timer_enabled || \
-        (offload_report_level && offload_report_enabled)) { \
-        offload_timer_start(timer_data, pnode); \
-    }
-
-#define OFFLOAD_TIMER_STOP(timer_data, pnode) \
-    if (timer_enabled || \
-        (offload_report_level && offload_report_enabled)) { \
-        offload_timer_stop(timer_data, pnode); \
-    }
-
-#define OFFLOAD_TIMER_INIT(file, line) \
-    offload_timer_init(file, line);
-
-#define OFFLOAD_TIMER_TARGET_DATA(timer_data, data) \
-    if (timer_enabled || \
-        (offload_report_level && offload_report_enabled)) { \
-        offload_timer_fill_target_data(timer_data, data); \
-    }
-
-#define OFFLOAD_TIMER_HOST_SDATA(timer_data, data) \
-    if (offload_report_level && offload_report_enabled) { \
-        offload_timer_fill_host_sdata(timer_data, data); \
-    }
-
-#define OFFLOAD_TIMER_HOST_RDATA(timer_data, data) \
-    if (offload_report_level && offload_report_enabled) { \
-        offload_timer_fill_host_rdata(timer_data, data); \
-    }
-
-#define OFFLOAD_TIMER_HOST_MIC_NUM(timer_data, data) \
-    if (offload_report_level && offload_report_enabled) { \
-        offload_timer_fill_host_mic_num(timer_data, data); \
-    }
-
-extern DLL_LOCAL void offload_timer_start(OffloadHostTimerData *,
-                                OffloadHostPhase t_node);
-extern DLL_LOCAL void offload_timer_stop(OffloadHostTimerData *,
-                               OffloadHostPhase t_node);
-extern DLL_LOCAL OffloadHostTimerData * offload_timer_init(const char *file, int line);
-extern DLL_LOCAL void offload_timer_fill_target_data(OffloadHostTimerData *,
-                                           void *data);
-extern DLL_LOCAL void offload_timer_fill_host_sdata(OffloadHostTimerData *,
-                                          uint64_t sent_bytes);
-extern DLL_LOCAL void offload_timer_fill_host_rdata(OffloadHostTimerData *,
-                                          uint64_t sent_bytes);
-extern DLL_LOCAL void offload_timer_fill_host_mic_num(OffloadHostTimerData *,
-                                            int card_number);
-
-// Utility structure for starting/stopping timer
-struct OffloadTimer {
-    OffloadTimer(OffloadHostTimerData *data, OffloadHostPhase phase) :
-        m_data(data),
-        m_phase(phase)
-    {
-        OFFLOAD_TIMER_START(m_data, m_phase);
-    }
-
-    ~OffloadTimer()
-    {
-        OFFLOAD_TIMER_STOP(m_data, m_phase);
-    }
-
-private:
-    OffloadHostTimerData*   m_data;
-    OffloadHostPhase        m_phase;
-};
-
-#else
-
-#define OFFLOAD_TIMER_DATALEN() \
-    ((timer_enabled) ? \
-     ((1 + c_offload_target_max_phase) * sizeof(uint64_t)) : 0)
-
-#define OFFLOAD_TIMER_START(pnode) \
-    if (timer_enabled) offload_timer_start(pnode);
-
-#define OFFLOAD_TIMER_STOP(pnode) \
-    if (timer_enabled) offload_timer_stop(pnode);
-
-#define OFFLOAD_TIMER_INIT() \
-    if (timer_enabled) offload_timer_init();
-
-#define OFFLOAD_TIMER_TARGET_DATA(data) \
-    if (timer_enabled) offload_timer_fill_target_data(data);
-
-extern DLL_LOCAL void offload_timer_start(OffloadTargetPhase t_node);
-extern DLL_LOCAL void offload_timer_stop(OffloadTargetPhase t_node);
-extern DLL_LOCAL void offload_timer_init(void);
-extern DLL_LOCAL void offload_timer_fill_target_data(void *data);
-
-#endif // HOST_LIBRARY
-
-#else // TIMING_SUPPORT
-
-#define OFFLOAD_TIMER_START(...)
-#define OFFLOAD_TIMER_STOP(...)
-#define OFFLOAD_TIMER_INIT(...)
-#define OFFLOAD_TIMER_TARGET_DATA(...)
-#define OFFLOAD_TIMER_DATALEN(...)      (0)
-
-#endif // TIMING_SUPPORT
-
-#endif // OFFLOAD_TIMER_H_INCLUDED
diff --git a/liboffloadmic/runtime/offload_timer_host.cpp b/liboffloadmic/runtime/offload_timer_host.cpp
deleted file mode 100644 (file)
index 3d93508..0000000
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_timer.h"
-
-#ifdef __INTEL_COMPILER
-#include <ia32intrin.h>
-#else // __INTEL_COMPILER
-#include <x86intrin.h>
-#endif // __INTEL_COMPILER
-
-#include "offload_host.h"
-#include <sstream>
-#include <iostream>
-#include <iomanip>
-
-int timer_enabled = 0;
-
-#ifdef TIMING_SUPPORT
-
-int offload_report_level = 0;
-int offload_report_enabled = 1;
-
-static const int host_timer_prefix_spaces[] = {
-    /*c_offload_host_setup_buffers*/         0,
-    /*c_offload_host_initialize*/            2,
-    /*c_offload_host_target_acquire*/        2,
-    /*c_offload_host_wait_deps*/             2,
-    /*c_offload_host_setup_buffers*/         2,
-    /*c_offload_host_alloc_buffers*/         4,
-    /*c_offload_host_setup_misc_data*/       2,
-    /*c_offload_host_alloc_data_buffer*/     4,
-    /*c_offload_host_send_pointers*/         2,
-    /*c_offload_host_gather_inputs*/         2,
-    /*c_offload_host_map_in_data_buffer*/    4,
-    /*c_offload_host_unmap_in_data_buffer*/  4,
-    /*c_offload_host_start_compute*/         2,
-    /*c_offload_host_wait_compute*/          2,
-    /*c_offload_host_start_buffers_reads*/   2,
-    /*c_offload_host_scatter_outputs*/       2,
-    /*c_offload_host_map_out_data_buffer*/   4,
-    /*c_offload_host_unmap_out_data_buffer*/ 4,
-    /*c_offload_host_wait_buffers_reads*/    2,
-    /*c_offload_host_destroy_buffers*/       2
-};
-
-const static int target_timer_prefix_spaces[] = {
-/*c_offload_target_total_time*/          0,
-/*c_offload_target_descriptor_setup*/    2,
-/*c_offload_target_func_lookup*/         2,
-/*c_offload_target_func_time*/           2,
-/*c_offload_target_scatter_inputs*/      4,
-/*c_offload_target_add_buffer_refs*/     6,
-/*c_offload_target_compute*/             4,
-/*c_offload_target_gather_outputs*/      4,
-/*c_offload_target_release_buffer_refs*/ 6
-};
-
-static OffloadHostTimerData* timer_data_head;
-static OffloadHostTimerData* timer_data_tail;
-static mutex_t               timer_data_mutex;
-
-static void offload_host_phase_name(std::stringstream &ss, int p_node);
-static void offload_target_phase_name(std::stringstream &ss, int p_node);
-
-extern void Offload_Timer_Print(void)
-{
-    std::string       buf;
-    std::stringstream ss;
-    const char *stars =
-        "**************************************************************";
-
-    ss << "\n\n" << stars << "\n";
-    ss << "                             ";
-    ss << report_get_message_str(c_report_title) << "\n";
-    ss << stars << "\n";
-    double frequency = cpu_frequency;
-
-    for (OffloadHostTimerData *pnode = timer_data_head;
-         pnode != 0; pnode = pnode->next) {
-        ss << "      ";
-        ss << report_get_message_str(c_report_from_file) << " "<< pnode->file;
-        ss << report_get_message_str(c_report_line) << " " << pnode->line;
-        ss << "\n";
-        for (int i = 0; i < c_offload_host_max_phase ; i++) {
-            ss << "          ";
-            offload_host_phase_name(ss, i);
-            ss << "   " << std::fixed << std::setprecision(5);
-            ss << (double)pnode->phases[i].total / frequency << "\n";
-        }
-
-        for (int i = 0; i < c_offload_target_max_phase ; i++) {
-            double time = 0;
-            if (pnode->target.frequency != 0) {
-                time = (double) pnode->target.phases[i].total /
-                       (double) pnode->target.frequency;
-            }
-            ss << "          ";
-            offload_target_phase_name(ss, i);
-            ss << "   " << std::fixed << std::setprecision(5);
-            ss << time << "\n";
-        }
-    }
-
-    buf = ss.str();
-    fprintf(stdout, buf.data());
-    fflush(stdout);
-}
-
-extern void Offload_Report_Prolog(OffloadHostTimerData *pnode)
-{
-    double frequency = cpu_frequency;
-    std::string       buf;
-    std::stringstream ss;
-
-    if (pnode) {
-        // [Offload] [Mic 0] [File]          file.c
-        ss << "[" << report_get_message_str(c_report_offload) << "] [";
-        ss << report_get_message_str(c_report_mic) << " ";
-        ss << pnode->card_number << "] [";
-        ss << report_get_message_str(c_report_file);
-        ss << "]                    " << pnode->file << "\n";
-
-        // [Offload] [Mic 0] [Line]          1234
-        ss << "[" << report_get_message_str(c_report_offload) << "] [";
-        ss << report_get_message_str(c_report_mic) << " ";
-        ss << pnode->card_number << "] [";
-        ss << report_get_message_str(c_report_line);
-        ss << "]                    " << pnode->line << "\n";
-
-        // [Offload] [Mic 0] [Tag]          Tag 1
-        ss << "[" << report_get_message_str(c_report_offload) << "] [";
-        ss << report_get_message_str(c_report_mic) << " ";
-        ss << pnode->card_number << "] [";
-        ss << report_get_message_str(c_report_tag);
-        ss << "]                     " << report_get_message_str(c_report_tag);
-        ss << " " << pnode->offload_number << "\n";
-
-        buf = ss.str();
-        fprintf(stdout, buf.data());
-        fflush(stdout);
-    }
-}
-
-extern void Offload_Report_Epilog(OffloadHostTimerData * timer_data)
-{
-    double frequency = cpu_frequency;
-    std::string       buf;
-    std::stringstream ss;
-
-    OffloadHostTimerData *pnode = timer_data;
-
-    if (!pnode) {
-        return;
-    }
-    ss << "[" << report_get_message_str(c_report_offload) << "] [";
-    ss << report_get_message_str(c_report_host) << "]  [";
-    ss << report_get_message_str(c_report_tag) <<  " ";
-    ss << pnode->offload_number << "] [";
-    ss << report_get_message_str(c_report_cpu_time) << "]        ";
-    ss << std::fixed << std::setprecision(6);
-    ss << (double) pnode->phases[0].total / frequency;
-    ss << report_get_message_str(c_report_seconds) << "\n";
-
-    if (offload_report_level >= OFFLOAD_REPORT_2) {
-        ss << "[" << report_get_message_str(c_report_offload) << "] [";
-        ss << report_get_message_str(c_report_mic);
-        ss << " " << pnode->card_number;
-        ss << "] [" << report_get_message_str(c_report_tag) << " ";
-        ss <<  pnode->offload_number << "] [";
-        ss << report_get_message_str(c_report_cpu_to_mic_data) << "]   ";
-        ss << pnode->sent_bytes << " ";
-        ss << report_get_message_str(c_report_bytes) << "\n";
-    }
-
-    double time = 0;
-    if (pnode->target.frequency != 0) {
-        time = (double) pnode->target.phases[0].total /
-            (double) pnode->target.frequency;
-    }
-    ss << "[" << report_get_message_str(c_report_offload) << "] [";
-    ss << report_get_message_str(c_report_mic) << " ";
-    ss << pnode->card_number<< "] [";
-    ss << report_get_message_str(c_report_tag) <<  " ";
-    ss << pnode->offload_number << "] [";
-    ss << report_get_message_str(c_report_mic_time) << "]        ";
-    ss << std::fixed << std::setprecision(6) << time;
-    ss << report_get_message_str(c_report_seconds) << "\n";
-
-    if (offload_report_level >= OFFLOAD_REPORT_2) {
-        ss << "[" << report_get_message_str(c_report_offload) << "] [";
-        ss << report_get_message_str(c_report_mic);
-        ss << " " << pnode->card_number;
-        ss << "] [" << report_get_message_str(c_report_tag) << " ";
-        ss <<  pnode->offload_number << "] [";
-        ss << report_get_message_str(c_report_mic_to_cpu_data) << "]   ";
-        ss << pnode->received_bytes << " ";
-        ss << report_get_message_str(c_report_bytes) << "\n";
-    }
-    ss << "\n";
-
-    buf = ss.str();
-    fprintf(stdout, buf.data());
-    fflush(stdout);
-
-    offload_report_free_data(timer_data);
-}
-
-extern void offload_report_free_data(OffloadHostTimerData * timer_data)
-{
-    OffloadHostTimerData *pnode_last = NULL;
-
-    for (OffloadHostTimerData *pnode = timer_data_head;
-         pnode != 0; pnode = pnode->next) {
-        if (timer_data == pnode) {
-            if (pnode_last) {
-                pnode_last->next = pnode->next;
-            }
-            else {
-                timer_data_head = pnode->next;
-            }
-            OFFLOAD_FREE(pnode);
-            break;
-        }
-        pnode_last = pnode;
-    }
-}
-
-static void fill_buf_with_spaces(std::stringstream &ss, int num)
-{
-    for (; num > 0; num--) {
-        ss << " ";
-    }
-}
-
-static void offload_host_phase_name(std::stringstream &ss, int p_node)
-{
-    int prefix_spaces;
-    int str_length;
-    int tail_length;
-    const int message_length = 40;
-    char const *str;
-
-    str = report_get_host_stage_str(p_node);
-    prefix_spaces = host_timer_prefix_spaces[p_node];
-    fill_buf_with_spaces(ss, prefix_spaces);
-    str_length = strlen(str);
-    ss << str;
-    tail_length = message_length - prefix_spaces - str_length;
-    tail_length = tail_length > 0? tail_length : 1;
-    fill_buf_with_spaces(ss, tail_length);
-}
-
-static void offload_target_phase_name(std::stringstream &ss, int p_node)
-{
-    int prefix_spaces;
-    int str_length;
-    const int message_length = 40;
-    int tail_length;
-    char const *str;
-
-    str = report_get_target_stage_str(p_node);
-    prefix_spaces = target_timer_prefix_spaces[p_node];
-    fill_buf_with_spaces(ss, prefix_spaces);
-    str_length = strlen(str);
-    ss << str;
-    tail_length = message_length - prefix_spaces - str_length;
-    tail_length = (tail_length > 0)? tail_length : 1;
-    fill_buf_with_spaces(ss, tail_length);
-}
-
-void offload_timer_start(OffloadHostTimerData * timer_data,
-                         OffloadHostPhase p_type)
-{
-    timer_data->phases[p_type].start = _rdtsc();
-}
-
-void offload_timer_stop(OffloadHostTimerData * timer_data,
-                        OffloadHostPhase p_type)
-{
-    timer_data->phases[p_type].total += _rdtsc() -
-                                        timer_data->phases[p_type].start;
-}
-
-void offload_timer_fill_target_data(OffloadHostTimerData * timer_data,
-                                    void *buf)
-{
-    uint64_t *data = (uint64_t*) buf;
-
-    timer_data->target.frequency = *data++;
-    for (int i = 0; i < c_offload_target_max_phase; i++) {
-        timer_data->target.phases[i].total = *data++;
-    }
-}
-
-void offload_timer_fill_host_sdata(OffloadHostTimerData * timer_data,
-                                   uint64_t sent_bytes)
-{
-    if (timer_data) {
-        timer_data->sent_bytes += sent_bytes;
-    }
-}
-
-void offload_timer_fill_host_rdata(OffloadHostTimerData * timer_data,
-                                   uint64_t received_bytes)
-{
-    if (timer_data) {
-        timer_data->received_bytes += received_bytes;
-    }
-}
-
-void offload_timer_fill_host_mic_num(OffloadHostTimerData * timer_data,
-                                     int card_number)
-{
-    if (timer_data) {
-        timer_data->card_number = card_number;
-    }
-}
-
-OffloadHostTimerData* offload_timer_init(const char *file, int line)
-{
-    static bool first_time = true;
-    OffloadHostTimerData* timer_data = NULL;
-
-    timer_data_mutex.lock();
-    {
-        if (timer_enabled ||
-            (offload_report_level && offload_report_enabled)) {
-            timer_data = (OffloadHostTimerData*)
-                OFFLOAD_MALLOC(sizeof(OffloadHostTimerData), 0);
-            memset(timer_data, 0, sizeof(OffloadHostTimerData));
-
-            timer_data->offload_number = OFFLOAD_DEBUG_INCR_OFLD_NUM() - 1;
-
-            if (timer_data_head == 0) {
-                timer_data_head = timer_data;
-                timer_data_tail = timer_data;
-            }
-            else {
-                timer_data_tail->next = timer_data;
-                timer_data_tail = timer_data;
-            }
-
-            timer_data->file = file;
-            timer_data->line = line;
-        }
-    }
-    timer_data_mutex.unlock();
-    return timer_data;
-}
-
-#endif // TIMING_SUPPORT
diff --git a/liboffloadmic/runtime/offload_timer_target.cpp b/liboffloadmic/runtime/offload_timer_target.cpp
deleted file mode 100644 (file)
index 860f297..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_timer.h"
-#include "offload_target.h"
-
-#ifdef __INTEL_COMPILER
-#include <ia32intrin.h>
-#else // __INTEL_COMPILER
-#include <x86intrin.h>
-#endif // __INTEL_COMPILER
-
-
-
-int timer_enabled = 0;
-
-#ifdef TIMING_SUPPORT
-
-#if defined(LINUX) || defined(FREEBSD)
-static __thread OffloadTargetTimerData timer_data;
-#else // WINNT
-static __declspec(thread) OffloadTargetTimerData timer_data;
-#endif // defined(LINUX) || defined(FREEBSD)
-
-
-void offload_timer_start(
-    OffloadTargetPhase p_type
-)
-{
-    timer_data.phases[p_type].start = _rdtsc();
-}
-
-void offload_timer_stop(
-    OffloadTargetPhase p_type
-)
-{
-    timer_data.phases[p_type].total += _rdtsc() -
-                                       timer_data.phases[p_type].start;
-}
-
-void offload_timer_init()
-{
-    memset(&timer_data, 0, sizeof(OffloadTargetTimerData));
-}
-
-void offload_timer_fill_target_data(
-    void *buf
-)
-{
-    uint64_t *data = (uint64_t*) buf;
-
-    timer_data.frequency = mic_frequency;
-    memcpy(data++, &(timer_data.frequency), sizeof(uint64_t));
-
-    for (int i = 0; i < c_offload_target_max_phase; i++) {
-        memcpy(data++, &(timer_data.phases[i].total), sizeof(uint64_t));
-    }
-}
-
-#endif // TIMING_SUPPORT
diff --git a/liboffloadmic/runtime/offload_trace.cpp b/liboffloadmic/runtime/offload_trace.cpp
deleted file mode 100644 (file)
index 8d69c28..0000000
+++ /dev/null
@@ -1,409 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_trace.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <sstream>
-#include "liboffload_error_codes.h"
-
-extern const char *prefix;
-
-#if !HOST_LIBRARY
-extern int mic_index;
-#endif
-
-// The debug routines
-
-static const char * offload_stage(std::stringstream &ss,
-                                  int offload_number,
-                                  const char *tag,
-                                  const char *text,
-                                  bool print_tag)
-{
-    ss << "[" << report_get_message_str(c_report_offload) << "]";
-#if HOST_LIBRARY
-    ss << " [" << prefix << "]";
-    if (print_tag) {
-        ss << "  [" << report_get_message_str(c_report_tag);
-        ss << " " << offload_number << "]";
-    }
-    else {
-        ss << "         ";
-    }
-    ss << " [" << tag << "]";
-    ss << "           " << text;
-#else
-    ss << " [" << prefix << " " << mic_index << "]";
-    if (print_tag) {
-        ss << " [" << report_get_message_str(c_report_tag);
-        ss << " " << offload_number << "]";
-    }
-    ss << " [" << tag << "]";
-    ss << "           " << text;
-#endif
-    return 0;
-}
-
-static const char * offload_message_2str(std::stringstream &ss,
-                                  int offload_number,
-                                  const char *tag,
-                                  const char *text)
-{
-    ss << "[" << report_get_message_str(c_report_offload) << "]";
-    ss << " [" << prefix << "]";
-    ss << "  [" << report_get_message_str(c_report_tag);
-    ss << " " << offload_number << "]";
-    ss << " [" << tag << "]";
-    ss << "          " << text;
-    return 0;
-}
-
-void offload_stage_print(int stage, int offload_number, ...)
-{
-    std::string buf;
-    std::stringstream ss;
-    char const *str1;
-    char const *str2;
-    va_list va_args;
-    va_start(va_args, offload_number);
-    va_arg(va_args, char*);
-
-    switch (stage) {
-        case c_offload_start:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_start);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_init:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_init);
-            offload_stage(ss, offload_number, str1, str2, false);
-            ss << " " << report_get_message_str(c_report_logical_card);
-            ss << " " << va_arg(va_args, int);
-            ss << " = " << report_get_message_str(c_report_physical_card);
-            ss << " " << va_arg(va_args, int);
-            break;
-        case c_offload_register:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_register);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_init_func:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_init_func);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << ": " << va_arg(va_args, char*);
-            break;
-        case c_offload_create_buf_host:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_create_buf_host);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << ": base=0x" << std::hex << va_arg(va_args, uint64_t);
-            ss << " length=" << std::dec << va_arg(va_args, uint64_t);
-            break;
-        case c_offload_create_buf_mic:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_create_buf_mic);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << ": size=" << va_arg(va_args, uint64_t);
-            ss << " offset=" << va_arg(va_args, int);
-            if (va_arg(va_args,int))
-               ss << " (2M page)";
-            break;
-        case c_offload_send_pointer_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_send_pointer_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_sent_pointer_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_sent_pointer_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << " " << va_arg(va_args, uint64_t);
-            break;
-        case c_offload_gather_copyin_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_gather_copyin_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_copyin_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_copyin_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << " " << va_arg(va_args, uint64_t) << " ";
-            break;
-        case c_offload_compute:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_compute);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_receive_pointer_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_receive_pointer_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_received_pointer_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_received_pointer_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << " " << va_arg(va_args, uint64_t);
-            break;
-        case c_offload_start_target_func:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_start_target_func);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << ": " << va_arg(va_args, char*);
-            break;
-        case c_offload_var:
-            str1 = report_get_message_str(c_report_var);
-            offload_stage(ss, offload_number, str1, "  ", true);
-            va_arg(va_args, int);
-            ss << va_arg(va_args, char*);
-            ss << " " << " " << va_arg(va_args, char*);
-            break;
-        case c_offload_scatter_copyin_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_scatter_copyin_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_gather_copyout_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_gather_copyout_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_scatter_copyout_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_scatter_copyout_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_copyout_data:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_copyout_data);
-            offload_stage(ss, offload_number, str1, str2, true);
-            ss << "   " << va_arg(va_args, uint64_t);
-            break;
-        case c_offload_signal:
-            {
-                uint64_t  *signal;
-                str1 = report_get_message_str(c_report_state_signal);
-                str2 = report_get_message_str(c_report_signal);
-                offload_message_2str(ss, offload_number, str1, str2);
-                signal = va_arg(va_args, uint64_t*);
-                if (signal)
-                    ss << " 0x" << std::hex << *signal;
-                else
-                    ss << " none";
-            }
-            break;
-        case c_offload_stream:
-            {
-                int64_t  stream;
-                str1 = report_get_message_str(c_report_state_stream);
-                str2 = report_get_message_str(c_report_stream);
-                offload_message_2str(ss, offload_number, str1, str2);
-                stream = va_arg(va_args, int64_t);
-                if (stream)
-                    ss << " 0x" << std::hex << stream;
-                else
-                    ss << " none";
-            }
-            break;
-        case c_offload_wait:
-            {
-                int count;
-                OffloadWaitKind kind;
-                uint64_t  **signal;
-                kind = (enum OffloadWaitKind) va_arg(va_args, int);
-                // kind ==  c_offload_wait_signal for signal;
-                // other kinds are for stream
-                if (kind == c_offload_wait_signal) {
-                    str1 = report_get_message_str(c_report_state_signal);
-                }
-                else {
-                    str1 = report_get_message_str(c_report_state_stream);
-                }
-                str2 = report_get_message_str(c_report_wait);
-                offload_message_2str(ss, offload_number, str1, str2);
-                count = va_arg(va_args, int);
-                signal = va_arg(va_args, uint64_t**);
-                if (count) {
-                    if (kind == c_offload_wait_signal) {
-                        while (count) {
-                            ss << " " << std::hex << signal[count-1];
-                            count--;
-                        }
-                    }
-                    else if (kind == c_offload_wait_stream) {
-                        ss << signal;
-                    }
-                    else {
-                        ss << " all";
-                    }
-                }
-                else
-                    ss << " none";
-            }
-            break;
-        case c_offload_unregister:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_unregister);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_destroy:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_destroy);
-            offload_stage(ss, offload_number, str1, str2, true);
-            break;
-        case c_offload_myoinit:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myoinit);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_myoregister:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myoregister);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_myofini:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myofini);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_mic_myo_shared:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_mic_myo_shared);
-            offload_stage(ss, offload_number, str1, str2, false);
-            ss << " " << va_arg(va_args, char*);
-            break;
-        case c_offload_mic_myo_fptr:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_mic_myo_fptr);
-            offload_stage(ss, offload_number, str1, str2, false);
-            ss << " " << va_arg(va_args, char*);
-            break;
-        case c_offload_myosharedmalloc:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedmalloc);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, size_t);
-            break;
-        case c_offload_myosharedfree:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedfree);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_myosharedalignedmalloc:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedalignedmalloc);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, size_t);
-            ss << " " << va_arg(va_args, size_t);
-            break;
-        case c_offload_myosharedalignedfree:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedalignedfree);
-            offload_stage(ss, offload_number, str1, str2, false);
-            ss << " " << va_arg(va_args, size_t);
-            break;
-        case c_offload_myoacquire:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myoacquire);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_myorelease:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myorelease);
-            offload_stage(ss, offload_number, str1, str2, false);
-            break;
-        case c_offload_myosupportsfeature:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosupportsfeature);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, int);
-            ss << " " << va_arg(va_args, int);
-            ss << " " << va_arg(va_args, int);
-            ss << " " << va_arg(va_args, int);
-            break;
-        case c_offload_myosharedarenacreate:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedarenacreate);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, int);
-            ss << " " << va_arg(va_args, int);
-            ss << " " << va_arg(va_args, unsigned int);
-            break;
-        case c_offload_myosharedalignedarenamalloc:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedalignedarenamalloc);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, int);
-            ss << " " << va_arg(va_args, size_t);
-            ss << " " << va_arg(va_args, size_t);
-            break;
-        case c_offload_myosharedalignedarenafree:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myosharedalignedarenafree);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, int);
-            ss << " " << va_arg(va_args, size_t);
-            break;
-        case c_offload_myoarenaacquire:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myoarenaacquire);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, int);
-            break;
-        case c_offload_myoarenarelease:
-            str1 = report_get_message_str(c_report_state);
-            str2 = report_get_message_str(c_report_myoarenarelease);
-            offload_stage(ss, offload_number, str1, str2, false);
-            va_arg(va_args, char*);
-            ss << " " << va_arg(va_args, int);
-            break;
-        default:
-            LIBOFFLOAD_ERROR(c_report_unknown_trace_node);
-            abort();
-    }
-    ss << "\n";
-    buf = ss.str();
-    fprintf(stdout, buf.data());
-    fflush(stdout);
-
-    va_end(va_args);
-    return;
-}
diff --git a/liboffloadmic/runtime/offload_trace.h b/liboffloadmic/runtime/offload_trace.h
deleted file mode 100644 (file)
index e48aa01..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-// The parts of the offload library common to host and target
-#include "offload_util.h"
-
-DLL_LOCAL void offload_stage_print(int stage, int offload_number, ...);
-
-enum OffloadTraceStage {
-    // Total time spent on the target
-    c_offload_start = 0,
-    c_offload_init,
-    c_offload_register,
-    c_offload_init_func,
-    c_offload_create_buf_host,
-    c_offload_create_buf_mic,
-    c_offload_send_pointer_data,
-    c_offload_sent_pointer_data,
-    c_offload_gather_copyin_data,
-    c_offload_copyin_data,
-    c_offload_compute,
-    c_offload_receive_pointer_data,
-    c_offload_received_pointer_data,
-    c_offload_start_target_func,
-    c_offload_var,
-    c_offload_scatter_copyin_data,
-    c_offload_gather_copyout_data,
-    c_offload_scatter_copyout_data,
-    c_offload_copyout_data,
-    c_offload_signal,
-    c_offload_wait,
-    c_offload_unregister,
-    c_offload_destroy,
-    c_offload_finish,
-    c_offload_myoinit,
-    c_offload_myoregister,
-    c_offload_mic_myo_shared,
-    c_offload_mic_myo_fptr,
-    c_offload_myosharedmalloc,
-    c_offload_myosharedfree,
-    c_offload_myosharedalignedmalloc,
-    c_offload_myosharedalignedfree,
-    c_offload_myoacquire,
-    c_offload_myorelease,
-    c_offload_myofini,
-    c_offload_myosupportsfeature,
-    c_offload_myosharedarenacreate,
-    c_offload_myosharedalignedarenamalloc,
-    c_offload_myosharedalignedarenafree,
-    c_offload_myoarenaacquire,
-    c_offload_myoarenarelease,
-    c_offload_stream
-};
-
-enum OffloadWaitKind {
-    c_offload_wait_signal = 0,
-    c_offload_wait_stream,
-    c_offload_wait_all_streams
-};
diff --git a/liboffloadmic/runtime/offload_util.cpp b/liboffloadmic/runtime/offload_util.cpp
deleted file mode 100644 (file)
index bb43487..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include "offload_util.h"
-#include <errno.h>
-#include "liboffload_error_codes.h"
-
-#ifdef TARGET_WINNT
-void *thread_getspecific(pthread_key_t key)
-{
-    if (key == 0) {
-        return NULL;
-    }
-    else {
-        return TlsGetValue(key);
-    }
-}
-
-int thread_setspecific(pthread_key_t key, const void *value)
-{
-    return (TlsSetValue(key, (LPVOID)value)) ? 0 : GetLastError();
-}
-#endif // TARGET_WINNT
-
-bool __offload_parse_size_string(const char *str, uint64_t &new_size)
-{
-    uint64_t val;
-    char *suffix;
-
-    errno = 0;
-#ifdef TARGET_WINNT
-    val = strtoul(str, &suffix, 10);
-#else // TARGET_WINNT
-    val = strtoull(str, &suffix, 10);
-#endif // TARGET_WINNT
-    if (errno != 0 || suffix == str) {
-        return false;
-    }
-
-    if (suffix[0] == '\0') {
-        // default is Kilobytes
-        new_size = val * 1024;
-        return true;
-    }
-    else if (suffix[1] == '\0') {
-        // Optional suffixes: B (bytes), K (Kilobytes), M (Megabytes),
-        // G (Gigabytes), or T (Terabytes) specify the units.
-        switch (suffix[0]) {
-            case 'b':
-            case 'B':
-                new_size = val;
-                break;
-
-            case 'k':
-            case 'K':
-                new_size = val * 1024;
-                break;
-
-            case 'm':
-            case 'M':
-                new_size = val * 1024 * 1024;
-                break;
-
-            case 'g':
-            case 'G':
-                new_size = val * 1024 * 1024 * 1024;
-                break;
-
-            case 't':
-            case 'T':
-                new_size = val * 1024 * 1024 * 1024 * 1024;
-                break;
-
-            default:
-                return false;
-        }
-        return true;
-    }
-
-    return false;
-}
-
-bool __offload_parse_int_string(const char *str, int64_t &value)
-{
-    int64_t val;
-    char *suffix;
-
-    errno = 0;
-#ifdef TARGET_WINNT
-    val = strtol(str, &suffix, 0);
-#else
-    val = strtoll(str, &suffix, 0);
-#endif
-    if (errno == 0 && suffix != str && *suffix == '\0') {
-        value = val;
-        return true;
-    }
-    return false;
-}
-
-#ifdef TARGET_WINNT
-extern void* DL_open(const char *path)
-{
-    void *handle;
-    int error_mode;
-
-    /*
-     * do not display message box with error if it the call below fails to
-     * load dynamic library.
-     */
-    error_mode = SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX);
-
-    /* load dynamic library */
-    handle = (void*) LoadLibrary(path);
-
-    /* restore error mode */
-    SetErrorMode(error_mode);
-
-    return handle;
-}
-
-extern int DL_addr(const void *addr, Dl_info *dl_info)
-{
-    MEMORY_BASIC_INFORMATION mem_info;
-    char mod_name[MAX_PATH];
-    HMODULE mod_handle;
-
-    /* Fill MEMORY_BASIC_INFORMATION struct */
-    if (!VirtualQuery(addr, &mem_info, sizeof(mem_info))) {
-        return 0;
-    }
-    mod_handle = (HMODULE)mem_info.AllocationBase;
-
-    /* ANSI file name for module */
-    if (!GetModuleFileNameA(mod_handle, (char*) mod_name, sizeof(mod_name))) {
-        return 0;
-    }
-    strcpy(dl_info->dli_fname, mod_name);
-    dl_info->dli_fbase = mem_info.BaseAddress;
-    dl_info->dli_saddr = addr;
-    strcpy(dl_info->dli_sname, mod_name);
-    return 1;
-}
-
-// Run once
-static BOOL CALLBACK __offload_run_once_wrapper(
-    PINIT_ONCE initOnce,
-    PVOID parameter,
-    PVOID *context
-)
-{
-    void (*init_routine)(void) = (void(*)(void)) parameter;
-    init_routine();
-    return true;
-}
-
-void __offload_run_once(OffloadOnceControl *ctrl, void (*func)(void))
-{
-    InitOnceExecuteOnce(ctrl, __offload_run_once_wrapper, (void*) func, 0);
-}
-#endif // TARGET_WINNT
-
-/* ARGSUSED */ // version is not used on windows
-void* DL_sym(void *handle, const char *name, const char *version)
-{
-#ifdef TARGET_WINNT
-    return GetProcAddress((HMODULE) handle, name);
-#else // TARGET_WINNT
-    if (version == 0) {
-        return dlsym(handle, name);
-    }
-    else {
-        return dlvsym(handle, name, version);
-    }
-#endif // TARGET_WINNT
-}
-
-int64_t get_el_value(
-                     char *base,
-                     int64_t offset,
-                     int64_t size)
-{
-    int64_t val = 0;
-    switch (size) {
-        case 1:
-            val = static_cast<int64_t>(*((char *)(base + offset)));
-            break;
-        case 2:
-            val = static_cast<int64_t>(*((short *)(base + offset)));
-            break;
-        case 4:
-            val = static_cast<int64_t>(*((int *)(base + offset)));
-            break;
-        default:
-            val = *((int64_t *)(base + offset));
-            break;
-    }
-    return val;
-}
diff --git a/liboffloadmic/runtime/offload_util.h b/liboffloadmic/runtime/offload_util.h
deleted file mode 100644 (file)
index 7898462..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef OFFLOAD_UTIL_H_INCLUDED
-#define OFFLOAD_UTIL_H_INCLUDED
-
-#include <stdlib.h>
-
-#ifdef TARGET_WINNT
-    #define DLL_LOCAL
-#else
-    #define DLL_LOCAL  __attribute__((visibility("hidden")))
-#endif
-
-#ifdef TARGET_WINNT
-// Don't use <stdint.h> as compiling with VS2010 makes ofldbegin.obj
-// incompatible with STL library of versions older than VS2010.
-typedef unsigned long long int  uint64_t;
-typedef signed long long int    int64_t;
-#include <windows.h>
-#include <process.h>
-#else // TARGET_WINNT
-#include <stdint.h>
-#include <dlfcn.h>
-#include <pthread.h>
-#endif // TARGET_WINNT
-
-#ifdef TARGET_WINNT
-typedef unsigned pthread_key_t;
-typedef int pid_t;
-
-#define __func__ __FUNCTION__
-#define strtok_r(s,d,p) strtok_s(s,d,p)
-#define strcasecmp(a,b) stricmp(a,b)
-
-#define thread_key_create(key, destructor) \
-    (((*key = TlsAlloc()) > 0) ? 0 : GetLastError())
-#define thread_key_delete(key) TlsFree(key)
-
-#ifndef S_ISREG
-#define S_ISREG(mode)  (((mode) & S_IFMT) == S_IFREG)
-#endif
-
-void*   thread_getspecific(pthread_key_t key);
-int     thread_setspecific(pthread_key_t key, const void *value);
-#else
-#define thread_key_create(key, destructor) \
-            pthread_key_create((key), (destructor))
-#define thread_key_delete(key)  pthread_key_delete(key)
-#define thread_getspecific(key) pthread_getspecific(key)
-#define thread_setspecific(key, value) pthread_setspecific(key, value)
-#endif // TARGET_WINNT
-
-// Mutex implementation
-struct mutex_t {
-    mutex_t() {
-#ifdef TARGET_WINNT
-        InitializeCriticalSection(&m_lock);
-#else // TARGET_WINNT
-        pthread_mutex_init(&m_lock, 0);
-#endif // TARGET_WINNT
-    }
-
-    ~mutex_t() {
-#ifdef TARGET_WINNT
-        DeleteCriticalSection(&m_lock);
-#else // TARGET_WINNT
-        pthread_mutex_destroy(&m_lock);
-#endif // TARGET_WINNT
-    }
-
-    void lock() {
-#ifdef TARGET_WINNT
-        EnterCriticalSection(&m_lock);
-#else // TARGET_WINNT
-        pthread_mutex_lock(&m_lock);
-#endif // TARGET_WINNT
-    }
-
-    void unlock() {
-#ifdef TARGET_WINNT
-        LeaveCriticalSection(&m_lock);
-#else // TARGET_WINNT
-        pthread_mutex_unlock(&m_lock);
-#endif // TARGET_WINNT
-    }
-
-private:
-#ifdef TARGET_WINNT
-    CRITICAL_SECTION    m_lock;
-#else
-    pthread_mutex_t     m_lock;
-#endif
-};
-
-struct mutex_locker_t {
-    mutex_locker_t(mutex_t &mutex) : m_mutex(mutex) {
-        m_mutex.lock();
-    }
-
-    ~mutex_locker_t() {
-        m_mutex.unlock();
-    }
-
-private:
-    mutex_t &m_mutex;
-};
-
-// Dynamic loader interface
-#ifdef TARGET_WINNT
-struct Dl_info
-{
-    char        dli_fname[MAX_PATH];
-    void       *dli_fbase;
-    char        dli_sname[MAX_PATH];
-    const void *dli_saddr;
-};
-
-void*   DL_open(const char *path);
-#define DL_close(handle)        FreeLibrary((HMODULE) (handle))
-int     DL_addr(const void *addr, Dl_info *info);
-#else
-#define DL_open(path)           dlopen((path), RTLD_NOW)
-#define DL_close(handle)        dlclose(handle)
-#define DL_addr(addr, info)     dladdr((addr), (info))
-#endif // TARGET_WINNT
-
-DLL_LOCAL extern void* DL_sym(void *handle, const char *name, const char *version);
-
-// One-time initialization API
-#ifdef TARGET_WINNT
-typedef INIT_ONCE                   OffloadOnceControl;
-#define OFFLOAD_ONCE_CONTROL_INIT   INIT_ONCE_STATIC_INIT
-
-extern void __offload_run_once(OffloadOnceControl *ctrl, void (*func)(void));
-#else
-typedef pthread_once_t              OffloadOnceControl;
-#define OFFLOAD_ONCE_CONTROL_INIT   PTHREAD_ONCE_INIT
-
-#define __offload_run_once(ctrl, func) pthread_once(ctrl, func)
-#endif // TARGET_WINNT
-
-// Parses size specification string.
-DLL_LOCAL extern bool __offload_parse_size_string(const char *str, uint64_t &new_size);
-
-// Parses string with integer value
-DLL_LOCAL extern bool __offload_parse_int_string(const char *str, int64_t &value);
-
-// get value by its base, offset and size
-DLL_LOCAL int64_t get_el_value(
-    char   *base,
-    int64_t offset,
-    int64_t size
-);
-#endif // OFFLOAD_UTIL_H_INCLUDED
diff --git a/liboffloadmic/runtime/ofldbegin.cpp b/liboffloadmic/runtime/ofldbegin.cpp
deleted file mode 100644 (file)
index 49d4050..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#if HOST_LIBRARY
-#include "offload_table.h"
-#ifdef MYO_SUPPORT
-#include "offload_myo_host.h"
-#endif // MYO_SUPPORT
-#else
-#include "compiler_if_target.h"
-#include "offload_target.h"
-#ifdef MYO_SUPPORT
-#include "offload_myo_target.h"
-#endif // MYO_SUPPORT
-#endif // HOST_LIBRARY
-
-// Initializes library and registers specified offload image.
-// Don't use this declarations from offload_host.h as offload_table.h
-// is used instead of it. Using offload_host.h contradicts with
-// STL library compiled with VS2010.
-extern "C" bool __offload_register_image(const void* image);
-extern "C" void __offload_unregister_image(const void* image);
-extern "C" bool __offload_target_image_is_executable(const void *image);
-
-#ifdef TARGET_WINNT
-#define ALLOCATE(name) __declspec(allocate(name))
-#define DLL_LOCAL
-#else // TARGET_WINNT
-#define ALLOCATE(name) __attribute__((section(name)))
-#define DLL_LOCAL  __attribute__((visibility("hidden")))
-#endif // TARGET_WINNT
-
-#if HOST_LIBRARY
-// the host program/shared library should always have __offload_target_image
-// symbol defined. This symbol specifies the beginning of the target program
-// image.
-extern "C" DLL_LOCAL const void* __offload_target_image;
-#else // HOST_LIBRARY
-// Define a weak main which would be used on target side in case usere's
-// source file containing main does not have offload code.
-#pragma weak main
-int main(void)
-{
-    OFFLOAD_TARGET_MAIN();
-    return 0;
-}
-
-#pragma weak MAIN__
-extern "C" int MAIN__(void)
-{
-    OFFLOAD_TARGET_MAIN();
-    return 0;
-}
-#endif // HOST_LIBRARY
-
-// offload section prolog
-ALLOCATE(OFFLOAD_ENTRY_TABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(FuncTable::Entry)))
-#endif // TARGET_WINNT
-static FuncTable::Entry __offload_entry_table_start = { 0 };
-
-// list element for the current module
-static FuncList::Node __offload_entry_node = {
-    { &__offload_entry_table_start + 1, -1 },
-    0, 0
-};
-
-// offload fp section prolog
-ALLOCATE(OFFLOAD_FUNC_TABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(FuncTable::Entry)))
-#endif // TARGET_WINNT
-static FuncTable::Entry __offload_func_table_start = { 0 };
-
-// list element for the current module
-static FuncList::Node __offload_func_node = {
-    { &__offload_func_table_start + 1, -1 },
-    0, 0
-};
-
-// offload fp section prolog
-ALLOCATE(OFFLOAD_VAR_TABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(VarTable::Entry)))
-#endif // TARGET_WINNT
-static VarTable::Entry __offload_var_table_start = { 0 };
-
-// list element for the current module
-static VarList::Node __offload_var_node = {
-    { &__offload_var_table_start + 1 },
-    0, 0
-};
-
-#ifdef MYO_SUPPORT
-
-// offload myo shared var section prolog
-// first element is empty
-ALLOCATE(OFFLOAD_MYO_SHARED_TABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(SharedTableEntry)))
-#endif // TARGET_WINNT
-static MYOVarTable::Entry __offload_myo_shared_var_start = { 0 };
-
-// list element for the current module
-// table entry pointer skips the empty first entry
-static MYOVarTableList::Node __offload_myo_shared_var_node = {
-    { &__offload_myo_shared_var_start + 1 },
-    0, 0
-};
-
-// offload myo shared vtable section prolog
-// first element is empty
-ALLOCATE(OFFLOAD_MYO_SHARED_VTABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(SharedTableEntry)))
-#endif // TARGET_WINNT
-static MYOVarTable::Entry __offload_myo_shared_vtable_start = { 0 };
-
-// list element for the current module
-// table entry pointer skips the empty first entry
-static MYOVarTableList::Node __offload_myo_shared_vtable_node = {
-    { &__offload_myo_shared_vtable_start + 1 },
-    0, 0
-};
-
-// offload myo shared var init section prolog
-// first element is empty
-ALLOCATE(OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(InitTableEntry)))
-#endif // TARGET_WINNT
-static MYOInitTable::Entry __offload_myo_init_table_start = { 0 };
-
-// list element for the current module
-// table entry pointer skips the empty first entry
-static MYOInitTableList::Node __offload_myo_init_table_node = {
-    { &__offload_myo_init_table_start + 1 },
-    0, 0
-};
-
-// The functions and variables needed for a built-in
-// remote function entry for vtable initialization on MIC
-
-#if !HOST_LIBRARY
-MyoError __offload_init_vtables(void)
-{
-    SharedTableEntry *t_start;
-
-    //OFFLOAD_DEBUG_TRACE(3, "%s\n", __func__);
-    t_start = &__offload_myo_shared_vtable_start + 1;
-    //OFFLOAD_DEBUG_TRACE(3, "%s(%p)\n", __func__, t_start);
-    while (t_start->varName != 0) {
-        //OFFLOAD_DEBUG_TRACE(4,
-        //    "myo shared vtable \"%s\" &myo_ptr = %p myo_ptr = %p\n",
-        //    t_start->varName,
-        //    (void *)(t_start->sharedAddr),
-        //    ((void **)(t_start->sharedAddr))[0]);
-        t_start++;
-    }
-
-    __offload_myo_shared_init_table_process(
-        &__offload_myo_init_table_start + 1);
-    return MYO_SUCCESS;
-}
-#endif  // !HOST_LIBRARY
-
-static void vtable_initializer()
-{
-}
-
-#if !HOST_LIBRARY
-static MyoError vtable_initializer_wrapper()
-{
-    __offload_myoAcquire();
-    __offload_init_vtables();
-    __offload_myoRelease();
-    return MYO_SUCCESS;
-}
-#endif
-
-static void* __offload_vtable_initializer_thunk_ptr = 0;
-
-// offload myo fptr section prolog
-// first element is pre-initialized to the MIC vtable initializer
-ALLOCATE(OFFLOAD_MYO_FPTR_TABLE_SECTION_START)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(FptrTableEntry)))
-#endif // TARGET_WINNT
-static MYOFuncTable::Entry __offload_myo_fptr_table_start = {
-#if HOST_LIBRARY
-    "--vtable_initializer--",
-    (void*)&vtable_initializer,
-    (void*)&__offload_vtable_initializer_thunk_ptr,
-#ifdef TARGET_WINNT
-    // Dummy to pad up to 32 bytes
-    0
-#endif // TARGET_WINNT
-#else  // HOST_LIBRARY
-    "--vtable_initializer--",
-    (void*)&vtable_initializer,
-    (void*)&vtable_initializer_wrapper,
-    &__offload_vtable_initializer_thunk_ptr,
-#endif // HOST_LIBRARY
-};
-
-// list element for the current module
-static MYOFuncTableList::Node __offload_myo_fptr_table_node = {
-    { &__offload_myo_fptr_table_start },
-    0, 0
-};
-
-#endif // MYO_SUPPORT
-
-// init/fini code which adds/removes local lookup data to/from the global list
-
-static void offload_fini();
-static void offload_fini_so();
-
-#ifndef TARGET_WINNT
-static void offload_init() __attribute__((constructor(101)));
-#else // TARGET_WINNT
-static void offload_init();
-
-// Place offload initialization before user constructors
-ALLOCATE(OFFLOAD_CRTINIT_SECTION_START)
-static void (*addressof_offload_init)() = offload_init;
-#endif // TARGET_WINNT
-
-static void offload_init()
-{
-    bool success;
-
-    // Set offload version
-    __offload_set_version(OFFLOAD_VERSION_17);
-
-    // register offload tables
-    __offload_register_tables(&__offload_entry_node,
-                              &__offload_func_node,
-                              &__offload_var_node);
-
-#if HOST_LIBRARY
-    success = __offload_register_image(&__offload_target_image);
-    if (!success)
-    {
-        return;
-    }
-#endif // HOST_LIBRARY
-#ifdef MYO_SUPPORT
-#if HOST_LIBRARY
-    // If this was the main program register main atexit routine
-    if (__offload_myoProcessTables(
-            &__offload_target_image,
-            &__offload_myo_init_table_node,
-            &__offload_myo_shared_var_node,
-            &__offload_myo_shared_vtable_node,
-            &__offload_myo_fptr_table_node))
-    {
-        atexit(offload_fini);
-#ifdef TARGET_WINNT
-    } else {
-        atexit(offload_fini_so);
-#endif
-    }
-#else // HOST_LIBRARY
-    __offload_myoProcessTables(
-        &__offload_myo_init_table_start + 1,
-        &__offload_myo_shared_var_start + 1,
-        &__offload_myo_shared_vtable_start + 1,
-        &__offload_myo_fptr_table_start
-    );
-#endif // HOST_LIBRARY
-#endif // MYO_SUPPORT
-}
-
-#ifndef TARGET_WINNT
-static void offload_fini_so() __attribute__((destructor(101)));
-#endif // TARGET_WINNT
-
-static void offload_fini()
-{
-#if HOST_LIBRARY
-    __offload_unregister_image(&__offload_target_image);
-#endif // HOST_LIBRARY
-}
-
-static void offload_fini_so()
-{
-    // Offload and MYO tables need to be removed from list
-    // to prevent invalid accesses after dlclose
-    // Remove offload tables
-    __offload_unregister_tables(&__offload_entry_node,
-                                &__offload_func_node,
-                                &__offload_var_node);
-#if HOST_LIBRARY
-   if(!__offload_target_image_is_executable(&__offload_target_image)) {
-      __offload_unregister_image(&__offload_target_image);
-   }
-#endif
-#ifdef MYO_SUPPORT
-#if HOST_LIBRARY
-    // Remove MYO tables
-    __offload_myoRemoveTables(
-        &__offload_myo_init_table_node,
-        &__offload_myo_shared_var_node,
-        &__offload_myo_shared_vtable_node,
-        &__offload_myo_fptr_table_node);
-#endif // HOST_LIBRARY
-#endif // MYO_SUPPORT
-}
diff --git a/liboffloadmic/runtime/ofldend.cpp b/liboffloadmic/runtime/ofldend.cpp
deleted file mode 100644 (file)
index 3cabc1a..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#if HOST_LIBRARY
-#include "offload_table.h"
-#ifdef MYO_SUPPORT
-#include "offload_myo_host.h"
-#endif // MYO_SUPPORT
-#else
-#include "offload_target.h"
-#ifdef MYO_SUPPORT
-#include "offload_myo_target.h"
-#endif // MYO_SUPPORT
-#endif // HOST_LIBRARY
-
-#ifdef TARGET_WINNT
-#define ALLOCATE(name) __declspec(allocate(name))
-#else // TARGET_WINNT
-#define ALLOCATE(name) __attribute__((section(name)))
-#endif // TARGET_WINNT
-
-// offload entry table
-ALLOCATE(OFFLOAD_ENTRY_TABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(FuncTable::Entry)))
-#endif // TARGET_WINNT
-static FuncTable::Entry __offload_entry_table_end = { (const char*)-1 };
-
-// offload function table
-ALLOCATE(OFFLOAD_FUNC_TABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(FuncTable::Entry)))
-#endif // TARGET_WINNT
-static FuncTable::Entry __offload_func_table_end = { (const char*)-1 };
-
-// data table
-ALLOCATE(OFFLOAD_VAR_TABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(VarTable::Entry)))
-#endif // TARGET_WINNT
-static VarTable::Entry __offload_var_table_end = { (const char*)-1 };
-
-#ifdef MYO_SUPPORT
-
-// offload myo shared var section epilog
-ALLOCATE(OFFLOAD_MYO_SHARED_TABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(SharedTableEntry)))
-static MYOVarTable::Entry __offload_myo_shared_var_end =
-    { (const char*)-1, 0 };
-#else // TARGET_WINNT
-static MYOVarTable::Entry __offload_myo_shared_var_end = { 0 };
-#endif // TARGET_WINNT
-
-// offload myo shared vtable section epilog
-ALLOCATE(OFFLOAD_MYO_SHARED_VTABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(SharedTableEntry)))
-static MYOVarTable::Entry __offload_myo_shared_vtable_end =
-    { (const char*)-1, 0 };
-#else // TARGET_WINNT
-static MYOVarTable::Entry __offload_myo_shared_vtable_end = { 0 };
-#endif // TARGET_WINNT
-
-//#if HOST_LIBRARY
-// offload myo shared var init section epilog
-ALLOCATE(OFFLOAD_MYO_SHARED_INIT_TABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(InitTableEntry)))
-static MYOInitTable::Entry __offload_myo_init_table_end =
-    { (const char*)-1, 0 };
-#else // TARGET_WINNT
-static MYOInitTable::Entry __offload_myo_init_table_end = { 0 };
-#endif // TARGET_WINNT
-//#endif // HOST_LIBRARY
-
-// offload myo fptr section epilog
-ALLOCATE(OFFLOAD_MYO_FPTR_TABLE_SECTION_END)
-#ifdef TARGET_WINNT
-__declspec(align(sizeof(FptrTableEntry)))
-static MYOFuncTable::Entry __offload_myo_fptr_table_end =
-    { (const char*)-1, 0, 0 };
-#else // TARGET_WINNT
-static MYOFuncTable::Entry __offload_myo_fptr_table_end = { 0 };
-#endif // TARGET_WINNT
-
-#endif // MYO_SUPPORT
diff --git a/liboffloadmic/runtime/orsl-lite/include/orsl-lite.h b/liboffloadmic/runtime/orsl-lite/include/orsl-lite.h
deleted file mode 100644 (file)
index 867bae5..0000000
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#ifndef _ORSL_LITE_H_
-#define _ORSL_LITE_H_
-
-#ifndef TARGET_WINNT
-#include <sched.h>
-#else
-#define cpu_set_t int
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Type of a ORSLBusySet */
-typedef enum ORSLBusySetType {
-    BUSY_SET_EMPTY = 0,     /**< Empty set */
-    BUSY_SET_PARTIAL = 1,   /**< Non-empty set that omits some threads */
-    BUSY_SET_FULL = 2       /**< A set that includes all threads on the card */
-} BusySetType;
-
-/** ORSLBusySet encapsulation */
-typedef struct ORSLBusySet {
-    BusySetType type;   /**< Set type */
-#ifdef __linux__
-    cpu_set_t cpu_set;  /**< CPU mask (unused for BUSY_SET_EMPTY and
-                           BUSY_SET_PARTIAL sets) represented by the standard
-                           Linux CPU set type -- cpu_set_t. Threads are numbered
-                           starting from 0. The maximal possible thread number
-                           is system-specific. See CPU_SET(3) family of macros
-                           for more details. Unused in ORSL Lite. */
-#endif
-} ORSLBusySet;
-
-/** Client tag */
-typedef char* ORSLTag;
-
-/** Maximal length of tag in characters */
-#define ORSL_MAX_TAG_LEN 128
-
-/** Maximal number of cards that can be managed by ORSL */
-#define ORSL_MAX_CARDS 32
-
-/** Reserves computational resources on a set of cards. Blocks.
- *
- * If any of the resources cannot be reserved, this function will block until
- * they become available. Reservation can be recursive if performed by the
- * same tag. A recursively reserved resource must be released the same number
- * of times it was reserved.
- *
- * @see ORSLTryReserve
- *
- * @param[in]  n      Number of cards to reserve resources on. Cannot be < 0
- *                    or > ORSL_MAX_CARDS.
- *
- * @param[in]  inds   Indices of the cards: an integer array with n elements.
- *                    Cannot be NULL if n > 0. Valid card indices are from 0
- *                    to ORSL_MAX_CARDS-1. Cannot contain duplicate elements.
- *
- * @param[in]  bsets  Requested resources on each of the card. Cannot be NULL
- *                    if n > 0.
- *
- * @param[in]  tag    ORSLTag of the calling client. Cannot be NULL. Length
- *                    must not exeed ORSL_MAX_TAG_LEN.
- *
- * @returns    0      if the resources were successfully reserved
- *
- * @returns    EINVAL if any of the arguments is invalid
- *
- * @returns    EAGAIN limit of recursive reservations reached
- *                    (not in ORSL Lite)
- *
- * @returns    ENOSYS (in ORSL Lite) if type of any of the busy sets is
- *                    equal to BUSY_SET_PARTIAL
- */
-int ORSLReserve(const int n, const int *__restrict inds,
-                const ORSLBusySet *__restrict bsets,
-                const ORSLTag __restrict tag);
-
-/** Reserves computational resources on a set of cards. Does not block.
- *
- * If any of the resources cannot be reserved, this function will return
- * immediately. Reservation can be recursive if performed by the same tag.
- * A recursively reserved resource must be released the same number of times
- * it was reserved.
- *
- * @see ORSLReserve
- *
- * @param[in]  n      Number of cards to reserve resources on. Cannot be < 0
- *                    or > ORSL_MAX_CARDS.
- *
- * @param[in]  inds     Indices of the cards: an integer array with n elements.
- *                      Cannot be NULL if n > 0. Valid card indices are from 0
- *                      to ORSL_MAX_CARDS-1. Cannot contain duplicate elements.
- *
- * @param[inout] bsets  Requested resources on each of the card. Cannot be
- *                      NULL if n > 0.
- *
- * @param[in]    tag    ORSLTag of the calling client. Cannot be NULL. Length
- *                      must not exceed ORSL_MAX_TAG_LEN.
- *
- * @returns      0      if the resources were successfully reserved
- *
- * @returns      EBUSY  if some of the requested resources are busy
- *
- * @returns      EINVAL if any of the arguments is invalid
- *
- * @returns      EAGAIN limit of recursive reservations reached
- *                      (not in ORSL Lite)
- *
- * @returns      ENOSYS (in ORSL Lite) if type of any of the busy sets is
- *                      equal to BUSY_SET_PARTIAL
- */
-int ORSLTryReserve(const int n, const int *__restrict inds,
-                   const ORSLBusySet *__restrict bsets,
-                   const ORSLTag __restrict tag);
-
-/** Granularify of partial reservation */
-typedef enum ORSLPartialGranularity {
-    GRAN_CARD = 0, /**< Card granularity */
-    GRAN_THREAD = 1 /**< Thread granularity */
-} ORSLPartialGranularity;
-
-/** Requests reservation of some of computational resources on a set of cards.
- * Does not block. Updates user-provided bsets to indicate which resources
- * were reserved.
- *
- * If any of the resources cannot be reserved, this function will update busy
- * sets provided by the caller to reflect what resources were actually
- * reserved. This function supports two granularity modes: 'card' and
- * 'thread'.  When granularity is set to 'card', a failure to reserve a thread
- * on the card will imply that reservation has failed for the whole card. When
- * granularity is set to 'thread', reservation on a card will be considered
- * successful as long as at least one thread on the card was successfully
- * reserved. Reservation can be recursive if performed by the same tag. A
- * recursively reserved resource must be released the same number of times it
- * was reserved.
- *
- * @param[in]  gran   Reservation granularity
- *
- * @param[in]  n      Number of cards to reserve resources on. Cannot be < 0
- *                    or > ORSL_MAX_CARDS.
- *
- * @param[in]  inds   Indices of the cards: an integer array with n elements.
- *                    Cannot be NULL if n > 0. Valid card indices are from 0
- *                    to ORSL_MAX_CARDS-1. Cannot contain duplicate elements.
- *
- * @param[in]  bsets  Requested resources on each of the card. Cannot be NULL
- *                    if n > 0.
- *
- * @param[in]  tag    ORSLTag of the calling client. Cannot be NULL. Length
- *                    must not exceed ORSL_MAX_TAG_LEN.
- *
- * @returns    0      if at least some of the resources were successfully
- *                    reserved
- *
- * @returns    EBUSY  if all of the requested resources are busy
- *
- * @returns    EINVAL if any of the arguments is invalid
- *
- * @returns    EAGAIN limit of recursive reservations reached
- *                    (not in ORSL Lite)
- *
- * @returns    ENOSYS (in ORSL Lite) if type of any of the busy sets is
- *                    equal to BUSY_SET_PARTIAL
- */
-int ORSLReservePartial(const ORSLPartialGranularity gran, const int n,
-                       const int *__restrict inds,
-                       ORSLBusySet *__restrict bsets,
-                       const ORSLTag __restrict tag);
-
-/** Releases previously reserved computational resources on a set of cards.
- *
- * This function will fail if any of the resources to be released were not
- * reserved by the calling client.
- *
- * @see ORSLReserve
- * @see ORSLTryReserve
- * @see ORSLReservePartial
- *
- * @param[in]  n      Number of cards to reserve resources on. Cannot be < 0
- *                    or > ORSL_MAX_CARDS.
- *
- * @param[in]  inds   Indices of the cards: an integer array with n elements.
- *                    Cannot be NULL if n > 0. Valid card indices are from 0
- *                    to ORSL_MAX_CARDS-1. Cannot contain duplicate elements.
- *
- * @param[in]  bsets  Requested resources on each of the card. Cannot be NULL
- *                    if n > 0.
- *
- * @param[in]  tag    ORSLTag of the calling client. Cannot be NULL. Length
- *                    must not exceed ORSL_MAX_TAG_LEN.
- *
- * @returns    0      if the resources were successfully released
- *
- * @returns    EINVAL if any of the arguments is invalid
- *
- * @returns    EPERM  the calling client did not reserve some of the
- *                    resources it is trying to release.
- *
- * @returns    ENOSYS (in ORSL Lite) if type of any of the busy sets is
- *                    equal to BUSY_SET_PARTIAL
- */
-int ORSLRelease(const int n, const int *__restrict inds,
-                const ORSLBusySet *__restrict bsets,
-                const ORSLTag __restrict tag);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c b/liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
deleted file mode 100644 (file)
index 669c40a..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-/*
-    Copyright (c) 2014-2016 Intel Corporation.  All Rights Reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following conditions
-    are met:
-
-      * Redistributions of source code must retain the above copyright
-        notice, this list of conditions and the following disclaimer.
-      * Redistributions in binary form must reproduce the above copyright
-        notice, this list of conditions and the following disclaimer in the
-        documentation and/or other materials provided with the distribution.
-      * Neither the name of Intel Corporation nor the names of its
-        contributors may be used to endorse or promote products derived
-        from this software without specific prior written permission.
-
-    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-    HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-
-#include <errno.h>
-#include <string.h>
-#include <limits.h>
-#include <assert.h>
-
-#include "orsl-lite/include/orsl-lite.h"
-
-#define DISABLE_SYMBOL_VERSIONING
-
-#if defined(__linux__) && !defined(DISABLE_SYMBOL_VERSIONING)
-#define symver(src, tgt, verstr) __asm__(".symver " #src "," #tgt verstr)
-symver(ORSLReserve0, ORSLReserve, "@@ORSL_0.0");
-symver(ORSLTryReserve0, ORSLTryReserve, "@@ORSL_0.0");
-symver(ORSLReservePartial0, ORSLReservePartial, "@@ORSL_0.0");
-symver(ORSLRelease0, ORSLRelease, "@@ORSL_0.0");
-#else
-#define ORSLReserve0 ORSLReserve
-#define ORSLTryReserve0 ORSLTryReserve
-#define ORSLReservePartial0 ORSLReservePartial
-#define ORSLRelease0 ORSLRelease
-#endif
-
-#ifdef __linux__
-#include <pthread.h>
-static pthread_mutex_t global_mutex = PTHREAD_MUTEX_INITIALIZER;
-static pthread_cond_t release_cond = PTHREAD_COND_INITIALIZER;
-#endif
-
-#ifdef _WIN32
-#include <windows.h>
-#pragma intrinsic(_ReadWriteBarrier)
-static SRWLOCK global_mutex = SRWLOCK_INIT;
-static volatile int release_cond_initialized = 0;
-static CONDITION_VARIABLE release_cond;
-
-static void state_lazy_init_sync()
-{
-    if (!release_cond_initialized) {
-        AcquireSRWLockExclusive(&global_mutex);
-        _ReadWriteBarrier();
-        if (!release_cond_initialized) {
-            InitializeConditionVariable(&release_cond);
-            release_cond_initialized = 1;
-        }
-        ReleaseSRWLockExclusive(&global_mutex);
-    }
-}
-#endif
-
-static int state_lock()
-{
-#ifdef __linux__
-    return pthread_mutex_lock(&global_mutex);
-#endif
-
-#ifdef _WIN32
-    AcquireSRWLockExclusive(&global_mutex);
-    return 0;
-#endif
-}
-
-static int state_unlock()
-{
-#ifdef __linux__
-    return pthread_mutex_unlock(&global_mutex);
-#endif
-
-#ifdef _WIN32
-    ReleaseSRWLockExclusive(&global_mutex);
-    return 0;
-#endif
-}
-
-static int state_wait_for_release()
-{
-#ifdef __linux__
-    return pthread_cond_wait(&release_cond, &global_mutex);
-#endif
-
-#ifdef _WIN32
-    return SleepConditionVariableSRW(&release_cond,
-            &global_mutex, INFINITE, 0) == 0 ? 1 : 0;
-#endif
-}
-
-static int state_signal_release()
-{
-#ifdef __linux__
-    return pthread_cond_signal(&release_cond);
-#endif
-
-#ifdef _WIN32
-    WakeConditionVariable(&release_cond);
-    return 0;
-#endif
-}
-
-static struct {
-    char owner[ORSL_MAX_TAG_LEN + 1];
-    unsigned long rsrv_cnt;
-} rsrv_data[ORSL_MAX_CARDS];
-
-static int check_args(const int n, const int *__restrict inds,
-                      const ORSLBusySet *__restrict bsets,
-                      const ORSLTag __restrict tag)
-{
-    int i;
-    int card_specified[ORSL_MAX_CARDS];
-    if (tag == NULL) return -1;
-    if (strlen((char *)tag) > ORSL_MAX_TAG_LEN) return -1;
-    if (n < 0 || n >= ORSL_MAX_CARDS) return -1;
-    if (n != 0 && (inds == NULL || bsets == NULL)) return -1;
-    for (i = 0; i < ORSL_MAX_CARDS; i++)
-        card_specified[i] = 0;
-    for (i = 0; i < n; i++) {
-        int ind = inds[i];
-        if (ind < 0 || ind >= ORSL_MAX_CARDS) return -1;
-        if (card_specified[ind]) return -1;
-        card_specified[ind] = 1;
-    }
-    return 0;
-}
-
-static int check_bsets(const int n, const ORSLBusySet *bsets)
-{
-    int i;
-    for (i = 0; i < n; i++)
-        if (bsets[i].type == BUSY_SET_PARTIAL) return -1;
-    return 0;
-}
-
-static int can_reserve_card(int card, const ORSLBusySet *__restrict bset,
-                            const ORSLTag __restrict tag)
-{
-    assert(tag != NULL);
-    assert(bset != NULL);
-    assert(strlen((char *)tag) < ORSL_MAX_TAG_LEN);
-    assert(bset->type != BUSY_SET_PARTIAL);
-
-    return (bset->type == BUSY_SET_EMPTY ||
-            ((rsrv_data[card].rsrv_cnt == 0 ||
-            strncmp((char *)tag,
-                rsrv_data[card].owner, ORSL_MAX_TAG_LEN) == 0) &&
-            rsrv_data[card].rsrv_cnt < ULONG_MAX)) ? 0 : - 1;
-}
-
-static void reserve_card(int card, const ORSLBusySet *__restrict bset,
-                         const ORSLTag __restrict tag)
-{
-    assert(tag != NULL);
-    assert(bset != NULL);
-    assert(strlen((char *)tag) < ORSL_MAX_TAG_LEN);
-    assert(bset->type != BUSY_SET_PARTIAL);
-
-    if (bset->type == BUSY_SET_EMPTY)
-        return;
-
-    assert(rsrv_data[card].rsrv_cnt == 0 ||
-            strncmp((char *)tag,
-                rsrv_data[card].owner, ORSL_MAX_TAG_LEN) == 0);
-    assert(rsrv_data[card].rsrv_cnt < ULONG_MAX);
-
-    if (rsrv_data[card].rsrv_cnt == 0)
-        strncpy(rsrv_data[card].owner, (char *)tag, ORSL_MAX_TAG_LEN);
-    rsrv_data[card].owner[ORSL_MAX_TAG_LEN] = '\0';
-    rsrv_data[card].rsrv_cnt++;
-}
-
-static int can_release_card(int card, const ORSLBusySet *__restrict bset,
-                            const ORSLTag __restrict tag)
-{
-    assert(tag != NULL);
-    assert(bset != NULL);
-    assert(strlen((char *)tag) < ORSL_MAX_TAG_LEN);
-    assert(bset->type != BUSY_SET_PARTIAL);
-
-    return (bset->type == BUSY_SET_EMPTY || (rsrv_data[card].rsrv_cnt > 0 &&
-                strncmp((char *)tag,
-                    rsrv_data[card].owner, ORSL_MAX_TAG_LEN) == 0)) ? 0 : 1;
-}
-
-static void release_card(int card, const ORSLBusySet *__restrict bset,
-                         const ORSLTag __restrict tag)
-{
-    assert(tag != NULL);
-    assert(bset != NULL);
-    assert(strlen((char *)tag) < ORSL_MAX_TAG_LEN);
-    assert(bset->type != BUSY_SET_PARTIAL);
-
-    if (bset->type == BUSY_SET_EMPTY)
-        return;
-
-    assert(strncmp((char *)tag,
-                rsrv_data[card].owner, ORSL_MAX_TAG_LEN) == 0);
-    assert(rsrv_data[card].rsrv_cnt > 0);
-
-    rsrv_data[card].rsrv_cnt--;
-}
-
-int ORSLReserve0(const int n, const int *__restrict inds,
-                const ORSLBusySet *__restrict bsets,
-                const ORSLTag __restrict tag)
-{
-    int i, ok;
-
-    if (n == 0) return 0;
-    if (check_args(n, inds, bsets, tag) != 0) return EINVAL;
-    if (check_bsets(n, bsets) != 0) return ENOSYS;
-
-    state_lock();
-
-    /* Loop until we find that all the resources we want are available */
-    do {
-        ok = 1;
-        for (i = 0; i < n; i++)
-            if (can_reserve_card(inds[i], &bsets[i], tag) != 0) {
-                ok = 0;
-                /* Wait for someone to release some resources */
-                state_wait_for_release();
-                break;
-            }
-    } while (!ok);
-
-    /* At this point we are good to reserve_card the resources we want */
-    for (i = 0; i < n; i++)
-        reserve_card(inds[i], &bsets[i], tag);
-
-    state_unlock();
-    return 0;
-}
-
-int ORSLTryReserve0(const int n, const int *__restrict inds,
-                   const ORSLBusySet *__restrict bsets,
-                   const ORSLTag __restrict tag)
-{
-    int i, rc = EBUSY;
-
-    if (n == 0) return 0;
-    if (check_args(n, inds, bsets, tag) != 0) return EINVAL;
-    if (check_bsets(n, bsets) != 0) return ENOSYS;
-
-    state_lock();
-
-    /* Check resource availability once */
-    for (i = 0; i < n; i++)
-        if (can_reserve_card(inds[i], &bsets[i], tag) != 0)
-            goto bail_out;
-
-    /* At this point we are good to reserve the resources we want */
-    for (i = 0; i < n; i++)
-        reserve_card(inds[i], &bsets[i], tag);
-
-    rc = 0;
-
-bail_out:
-    state_unlock();
-    return rc;
-}
-
-int ORSLReservePartial0(const ORSLPartialGranularity gran, const int n,
-                       const int *__restrict inds, ORSLBusySet *__restrict bsets,
-                       const ORSLTag __restrict tag)
-{
-    int rc = EBUSY;
-    int i, num_avail = n;
-
-    if (n == 0) return 0;
-    if (gran != GRAN_CARD && gran != GRAN_THREAD) return EINVAL;
-    if (gran != GRAN_CARD) return EINVAL;
-    if (check_args(n, inds, bsets, tag) != 0) return EINVAL;
-    if (check_bsets(n, bsets) != 0) return ENOSYS;
-
-    state_lock();
-
-    /* Check resource availability once; remove unavailable resources from the
-     * user-provided list */
-    for (i = 0; i < n; i++)
-        if (can_reserve_card(inds[i], &bsets[i], tag) != 0) {
-            num_avail--;
-            bsets[i].type = BUSY_SET_EMPTY;
-        }
-
-    if (num_avail == 0)
-        goto bail_out;
-
-    /* At this point we are good to reserve the resources we want */
-    for (i = 0; i < n; i++)
-        reserve_card(inds[i], &bsets[i], tag);
-
-    rc = 0;
-
-bail_out:
-    state_unlock();
-    return rc;
-}
-
-int ORSLRelease0(const int n, const int *__restrict inds,
-                const ORSLBusySet *__restrict bsets,
-                const ORSLTag __restrict tag)
-{
-    int i, rc = EPERM;
-
-    if (n == 0) return 0;
-    if (check_args(n, inds, bsets, tag) != 0) return EINVAL;
-    if (check_bsets(n, bsets) != 0) return ENOSYS;
-
-    state_lock();
-
-    /* Check that we can release all the resources */
-    for (i = 0; i < n; i++)
-        if (can_release_card(inds[i], &bsets[i], tag) != 0)
-            goto bail_out;
-
-    /* At this point we are good to release the resources we want */
-    for (i = 0; i < n; i++)
-        release_card(inds[i], &bsets[i], tag);
-
-    state_signal_release();
-
-    rc = 0;
-
-bail_out:
-    state_unlock();
-    return rc;
-}
-
-/* vim:set et: */
diff --git a/liboffloadmic/runtime/orsl-lite/version.txt b/liboffloadmic/runtime/orsl-lite/version.txt
deleted file mode 100644 (file)
index ab5f599..0000000
+++ /dev/null
@@ -1 +0,0 @@
-ORSL-lite 0.7