aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.def8
-rw-r--r--Makefile.in520
-rwxr-xr-xconfigure66
-rw-r--r--configure.ac57
-rwxr-xr-xcontrib/gcc-changelog/git_commit.py1
-rwxr-xr-xcontrib/gcc_update6
-rwxr-xr-xcontrib/update-copyright.py1
-rw-r--r--gcc/config.gcc8
-rw-r--r--gcc/config/i386/i386-options.cc4
-rw-r--r--gcc/config/i386/intelmic-mkoffload.cc728
-rw-r--r--gcc/config/i386/intelmic-offload.h35
-rw-r--r--gcc/config/i386/t-intelmic10
-rw-r--r--gcc/config/i386/t-omp-device6
-rwxr-xr-xgcc/configure14
-rw-r--r--gcc/configure.ac10
-rw-r--r--gcc/doc/install.texi2
-rw-r--r--gcc/doc/sourcebuild.texi3
-rw-r--r--include/gomp-constants.h3
-rwxr-xr-xlibgomp/configure3
-rw-r--r--libgomp/libgomp-plugin.h1
-rw-r--r--libgomp/libgomp.texi2
-rw-r--r--libgomp/plugin/configfrag.ac3
-rw-r--r--libgomp/testsuite/lib/libgomp.exp37
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h35
-rw-r--r--libgomp/testsuite/libgomp.c-c++-common/target-45.c2
-rw-r--r--libgomp/testsuite/libgomp.fortran/target10.f901
-rw-r--r--liboffloadmic/ChangeLog765
-rw-r--r--liboffloadmic/Makefile.am160
-rw-r--r--liboffloadmic/Makefile.in1310
-rw-r--r--liboffloadmic/aclocal.m41180
-rwxr-xr-xliboffloadmic/configure17512
-rw-r--r--liboffloadmic/configure.ac143
-rw-r--r--liboffloadmic/configure.tgt39
-rw-r--r--liboffloadmic/doc/doxygen/config2328
-rw-r--r--liboffloadmic/doc/doxygen/header.tex90
-rw-r--r--liboffloadmic/include/coi/common/COIEngine_common.h121
-rw-r--r--liboffloadmic/include/coi/common/COIEvent_common.h84
-rw-r--r--liboffloadmic/include/coi/common/COIMacros_common.h229
-rw-r--r--liboffloadmic/include/coi/common/COIPerf_common.h87
-rw-r--r--liboffloadmic/include/coi/common/COIResult_common.h148
-rw-r--r--liboffloadmic/include/coi/common/COISysInfo_common.h126
-rw-r--r--liboffloadmic/include/coi/common/COITypes_common.h88
-rw-r--r--liboffloadmic/include/coi/sink/COIBuffer_sink.h133
-rw-r--r--liboffloadmic/include/coi/sink/COIPipeline_sink.h137
-rw-r--r--liboffloadmic/include/coi/sink/COIProcess_sink.h174
-rw-r--r--liboffloadmic/include/coi/source/COIBuffer_source.h1806
-rw-r--r--liboffloadmic/include/coi/source/COIEngine_source.h273
-rw-r--r--liboffloadmic/include/coi/source/COIEvent_source.h301
-rw-r--r--liboffloadmic/include/coi/source/COIPipeline_source.h437
-rw-r--r--liboffloadmic/include/coi/source/COIProcess_source.h1235
-rw-r--r--liboffloadmic/liboffloadmic_host.spec.in3
-rw-r--r--liboffloadmic/liboffloadmic_target.spec.in3
-rw-r--r--liboffloadmic/plugin/Makefile.am125
-rw-r--r--liboffloadmic/plugin/Makefile.in840
-rw-r--r--liboffloadmic/plugin/aclocal.m41180
-rwxr-xr-xliboffloadmic/plugin/configure17000
-rw-r--r--liboffloadmic/plugin/configure.ac147
-rw-r--r--liboffloadmic/plugin/libgomp-plugin-intelmic.cpp545
-rw-r--r--liboffloadmic/plugin/offload_target_main.cpp380
-rw-r--r--liboffloadmic/runtime/cean_util.cpp421
-rw-r--r--liboffloadmic/runtime/cean_util.h137
-rw-r--r--liboffloadmic/runtime/coi/coi_client.cpp494
-rw-r--r--liboffloadmic/runtime/coi/coi_client.h176
-rw-r--r--liboffloadmic/runtime/coi/coi_server.cpp180
-rw-r--r--liboffloadmic/runtime/coi/coi_server.h94
-rw-r--r--liboffloadmic/runtime/compiler_if_host.cpp501
-rw-r--r--liboffloadmic/runtime/compiler_if_host.h209
-rw-r--r--liboffloadmic/runtime/compiler_if_target.cpp64
-rw-r--r--liboffloadmic/runtime/compiler_if_target.h70
-rw-r--r--liboffloadmic/runtime/dv_util.cpp153
-rw-r--r--liboffloadmic/runtime/dv_util.h84
-rw-r--r--liboffloadmic/runtime/emulator/coi_common.h168
-rw-r--r--liboffloadmic/runtime/emulator/coi_device.cpp401
-rw-r--r--liboffloadmic/runtime/emulator/coi_device.h66
-rw-r--r--liboffloadmic/runtime/emulator/coi_host.cpp1634
-rw-r--r--liboffloadmic/runtime/emulator/coi_host.h65
-rw-r--r--liboffloadmic/runtime/emulator/coi_version_asm.h91
-rw-r--r--liboffloadmic/runtime/emulator/coi_version_linker_script.map91
-rw-r--r--liboffloadmic/runtime/liboffload_error.c561
-rw-r--r--liboffloadmic/runtime/liboffload_error_codes.h337
-rw-r--r--liboffloadmic/runtime/liboffload_msg.c66
-rw-r--r--liboffloadmic/runtime/liboffload_msg.h416
-rw-r--r--liboffloadmic/runtime/mic_lib.f90282
-rw-r--r--liboffloadmic/runtime/offload.h565
-rw-r--r--liboffloadmic/runtime/offload_common.cpp190
-rw-r--r--liboffloadmic/runtime/offload_common.h553
-rw-r--r--liboffloadmic/runtime/offload_engine.cpp1128
-rw-r--r--liboffloadmic/runtime/offload_engine.h724
-rw-r--r--liboffloadmic/runtime/offload_env.cpp384
-rw-r--r--liboffloadmic/runtime/offload_env.h112
-rw-r--r--liboffloadmic/runtime/offload_host.cpp7255
-rw-r--r--liboffloadmic/runtime/offload_host.h541
-rw-r--r--liboffloadmic/runtime/offload_iterator.h103
-rw-r--r--liboffloadmic/runtime/offload_omp_host.cpp1267
-rw-r--r--liboffloadmic/runtime/offload_omp_target.cpp736
-rw-r--r--liboffloadmic/runtime/offload_orsl.cpp104
-rw-r--r--liboffloadmic/runtime/offload_orsl.h47
-rw-r--r--liboffloadmic/runtime/offload_table.cpp671
-rw-r--r--liboffloadmic/runtime/offload_table.h468
-rw-r--r--liboffloadmic/runtime/offload_target.cpp878
-rw-r--r--liboffloadmic/runtime/offload_target.h129
-rw-r--r--liboffloadmic/runtime/offload_target_main.cpp37
-rw-r--r--liboffloadmic/runtime/offload_timer.h192
-rw-r--r--liboffloadmic/runtime/offload_timer_host.cpp379
-rw-r--r--liboffloadmic/runtime/offload_timer_target.cpp87
-rw-r--r--liboffloadmic/runtime/offload_trace.cpp409
-rw-r--r--liboffloadmic/runtime/offload_trace.h86
-rw-r--r--liboffloadmic/runtime/offload_util.cpp226
-rw-r--r--liboffloadmic/runtime/offload_util.h182
-rw-r--r--liboffloadmic/runtime/ofldbegin.cpp337
-rw-r--r--liboffloadmic/runtime/ofldend.cpp114
-rw-r--r--liboffloadmic/runtime/orsl-lite/include/orsl-lite.h241
-rw-r--r--liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c357
-rw-r--r--liboffloadmic/runtime/orsl-lite/version.txt1
114 files changed, 10 insertions, 75949 deletions
diff --git a/Makefile.def b/Makefile.def
index 3291b126b26..02e63c57177 100644
--- a/Makefile.def
+++ b/Makefile.def
@@ -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; };
diff --git a/Makefile.in b/Makefile.in
index 1919dfee829..6ffa9660c25 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -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
diff --git a/configure b/configure
index 007a77a5f6c..8899a67040b 100755
--- 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
diff --git a/configure.ac b/configure.ac
index 1df410bba1f..1eb689d68b1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
diff --git a/contrib/gcc-changelog/git_commit.py b/contrib/gcc-changelog/git_commit.py
index 7f6ff87ba99..1f6e1920829 100755
--- a/contrib/gcc-changelog/git_commit.py
+++ b/contrib/gcc-changelog/git_commit.py
@@ -67,7 +67,6 @@ default_changelog_locations = {
'libiberty',
'libitm',
'libobjc',
- 'liboffloadmic',
'libphobos',
'libquadmath',
'libsanitizer',
diff --git a/contrib/gcc_update b/contrib/gcc_update
index 18c7ec46264..c5630df6c4c 100755
--- a/contrib/gcc_update
+++ b/contrib/gcc_update
@@ -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
diff --git a/contrib/update-copyright.py b/contrib/update-copyright.py
index 2ec2a60f5d0..76614ffc4ea 100755
--- a/contrib/update-copyright.py
+++ b/contrib/update-copyright.py
@@ -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.
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 1191a0df7b0..f41c0959fbe 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -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"
diff --git a/gcc/config/i386/i386-options.cc b/gcc/config/i386/i386-options.cc
index bbb8307d0b0..2c16dc0cf96 100644
--- a/gcc/config/i386/i386-options.cc
+++ b/gcc/config/i386/i386-options.cc
@@ -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
index 5deddff6ca2..00000000000
--- a/gcc/config/i386/intelmic-mkoffload.cc
+++ /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
index 42ce0d8d57a..00000000000
--- a/gcc/config/i386/intelmic-offload.h
+++ /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
index 95d7e532315..00000000000
--- a/gcc/config/i386/t-intelmic
+++ /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
index cfb41ed71ce..00000000000
--- a/gcc/config/i386/t-omp-device
+++ /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'` >> $@
diff --git a/gcc/configure b/gcc/configure
index e55c6566e89..aa0960991c9 100755
--- a/gcc/configure
+++ b/gcc/configure
@@ -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
diff --git a/gcc/configure.ac b/gcc/configure.ac
index 9ca77797894..7c55bff6cb0 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -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"
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index c1876f24a84..a01b8053afe 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -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
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index 5de5e9576d5..17a6f21f7b0 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -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}.
diff --git a/include/gomp-constants.h b/include/gomp-constants.h
index fac7316b858..dfee037f40e 100644
--- a/include/gomp-constants.h
+++ b/include/gomp-constants.h
@@ -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))
diff --git a/libgomp/configure b/libgomp/configure
index 35424d2e21f..45a769eb10a 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -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-*-*)
diff --git a/libgomp/libgomp-plugin.h b/libgomp/libgomp-plugin.h
index 875f9670479..ac387828950 100644
--- a/libgomp/libgomp-plugin.h
+++ b/libgomp/libgomp-plugin.h
@@ -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
};
diff --git a/libgomp/libgomp.texi b/libgomp/libgomp.texi
index 8d3b9cfb64d..10fefa97922 100644
--- a/libgomp/libgomp.texi
+++ b/libgomp/libgomp.texi
@@ -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})
diff --git a/libgomp/plugin/configfrag.ac b/libgomp/plugin/configfrag.ac
index ab03f94adac..d3b258901ef 100644
--- a/libgomp/plugin/configfrag.ac
+++ b/libgomp/plugin/configfrag.ac
@@ -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-*-*)
diff --git a/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index 4b8c64de8a5..1801fdc8224 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -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 { } {
diff --git a/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h b/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
index 6f66dbd784c..3fb5021d67e 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
+++ b/libgomp/testsuite/libgomp.c-c++-common/on_device_arch.h
@@ -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);
-}
diff --git a/libgomp/testsuite/libgomp.c-c++-common/target-45.c b/libgomp/testsuite/libgomp.c-c++-common/target-45.c
index 27bbeddf7fd..73c105d5874 100644
--- a/libgomp/testsuite/libgomp.c-c++-common/target-45.c
+++ b/libgomp/testsuite/libgomp.c-c++-common/target-45.c
@@ -1,5 +1,3 @@
-/* { dg-xfail-run-if TODO { offload_device_any_intel_mic } } */
-
#include <omp.h>
#include <stdlib.h>
diff --git a/libgomp/testsuite/libgomp.fortran/target10.f90 b/libgomp/testsuite/libgomp.fortran/target10.f90
index 31452554d67..4876ccea330 100644
--- a/libgomp/testsuite/libgomp.fortran/target10.f90
+++ b/libgomp/testsuite/libgomp.fortran/target10.f90
@@ -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
index 90e7c4d1191..00000000000
--- a/liboffloadmic/ChangeLog
+++ /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.
-
-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
index 4a15322b1c9..00000000000
--- a/liboffloadmic/Makefile.am
+++ /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
index 43abc5a40e8..00000000000
--- a/liboffloadmic/Makefile.in
+++ /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
index 31a2695c10e..00000000000
--- a/liboffloadmic/aclocal.m4
+++ /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
index b3cfff76f71..00000000000
--- a/liboffloadmic/configure
+++ /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 = ""
-
-}
-{
- 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
index f64f182e8ef..00000000000
--- a/liboffloadmic/configure.ac
+++ /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
index 3c0310cb477..00000000000
--- a/liboffloadmic/configure.tgt
+++ /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
index 3ef1019b5ce..00000000000
--- a/liboffloadmic/doc/doxygen/config
+++ /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
index e91d4be29d6..00000000000
--- a/liboffloadmic/doc/doxygen/header.tex
+++ /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
index 836e3e830d4..00000000000
--- a/liboffloadmic/include/coi/common/COIEngine_common.h
+++ /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
index 9d5623d6edd..00000000000
--- a/liboffloadmic/include/coi/common/COIEvent_common.h
+++ /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
index d6811c1cd21..00000000000
--- a/liboffloadmic/include/coi/common/COIMacros_common.h
+++ /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
index 0b17e13d670..00000000000
--- a/liboffloadmic/include/coi/common/COIPerf_common.h
+++ /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
index d40c0b0d3ea..00000000000
--- a/liboffloadmic/include/coi/common/COIResult_common.h
+++ /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
index cc37647b0c0..00000000000
--- a/liboffloadmic/include/coi/common/COISysInfo_common.h
+++ /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
index 6018b7d0ede..00000000000
--- a/liboffloadmic/include/coi/common/COITypes_common.h
+++ /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
index d36d5860b3e..00000000000
--- a/liboffloadmic/include/coi/sink/COIBuffer_sink.h
+++ /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
index 9cb1087ab6f..00000000000
--- a/liboffloadmic/include/coi/sink/COIPipeline_sink.h
+++ /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
index 9438925391e..00000000000
--- a/liboffloadmic/include/coi/sink/COIProcess_sink.h
+++ /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
index b90d50554bf..00000000000
--- a/liboffloadmic/include/coi/source/COIBuffer_source.h
+++ /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
index d4f6c1bd11f..00000000000
--- a/liboffloadmic/include/coi/source/COIEngine_source.h
+++ /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
index 8c6ad25c76f..00000000000
--- a/liboffloadmic/include/coi/source/COIEvent_source.h
+++ /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
index c13404d7f6a..00000000000
--- a/liboffloadmic/include/coi/source/COIPipeline_source.h
+++ /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
index 1248a915fc3..00000000000
--- a/liboffloadmic/include/coi/source/COIProcess_source.h
+++ /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
index 3fd12e4d7d6..00000000000
--- a/liboffloadmic/liboffloadmic_host.spec.in
+++ /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
index d679686684a..00000000000
--- a/liboffloadmic/liboffloadmic_target.spec.in
+++ /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
index 7caea7894ac..00000000000
--- a/liboffloadmic/plugin/Makefile.am
+++ /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
index 8d5ad0025c2..00000000000
--- a/liboffloadmic/plugin/Makefile.in
+++ /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
index 9fa1d1216c1..00000000000
--- a/liboffloadmic/plugin/aclocal.m4
+++ /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
index de58b93d2f7..00000000000
--- a/liboffloadmic/plugin/configure
+++ /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 = ""
-
-}
-{
- 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
index cbcd0130d05..00000000000
--- a/liboffloadmic/plugin/configure.ac
+++ /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
index 7be27f0459d..00000000000
--- a/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
+++ /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
index ccf7240e286..00000000000
--- a/liboffloadmic/plugin/offload_target_main.cpp
+++ /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
index f2c3e48a99c..00000000000
--- a/liboffloadmic/runtime/cean_util.cpp
+++ /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
index 1ba8793b653..00000000000
--- a/liboffloadmic/runtime/cean_util.h
+++ /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
index 179a3029e9c..00000000000
--- a/liboffloadmic/runtime/coi/coi_client.cpp
+++ /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
index b5b0efc4947..00000000000
--- a/liboffloadmic/runtime/coi/coi_client.h
+++ /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
index 67aa991eebb..00000000000
--- a/liboffloadmic/runtime/coi/coi_server.cpp
+++ /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
index 1afaa3bd810..00000000000
--- a/liboffloadmic/runtime/coi/coi_server.h
+++ /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
index 4d8feb46715..00000000000
--- a/liboffloadmic/runtime/compiler_if_host.cpp
+++ /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
index 025f6fb2dba..00000000000
--- a/liboffloadmic/runtime/compiler_if_host.h
+++ /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
index a44bd886147..00000000000
--- a/liboffloadmic/runtime/compiler_if_target.cpp
+++ /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
index ebb9b73d0aa..00000000000
--- a/liboffloadmic/runtime/compiler_if_target.h
+++ /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
index f79cf1f8699..00000000000
--- a/liboffloadmic/runtime/dv_util.cpp
+++ /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
index 370ff01637d..00000000000
--- a/liboffloadmic/runtime/dv_util.h
+++ /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
index 085a92d83ea..00000000000
--- a/liboffloadmic/runtime/emulator/coi_common.h
+++ /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
index c11214723e0..00000000000
--- a/liboffloadmic/runtime/emulator/coi_device.cpp
+++ /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
index a3778baa6a2..00000000000
--- a/liboffloadmic/runtime/emulator/coi_device.h
+++ /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
index 6170d8d7f3d..00000000000
--- a/liboffloadmic/runtime/emulator/coi_host.cpp
+++ /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
index 82dbc92aef8..00000000000
--- a/liboffloadmic/runtime/emulator/coi_host.h
+++ /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
index e64ba7dcc06..00000000000
--- a/liboffloadmic/runtime/emulator/coi_version_asm.h
+++ /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
index ea180669858..00000000000
--- a/liboffloadmic/runtime/emulator/coi_version_linker_script.map
+++ /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
index 5dffdb11512..00000000000
--- a/liboffloadmic/runtime/liboffload_error.c
+++ /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
index d7a71c3e6d4..00000000000
--- a/liboffloadmic/runtime/liboffload_error_codes.h
+++ /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
index ffee72f5ae8..00000000000
--- a/liboffloadmic/runtime/liboffload_msg.c
+++ /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
index 93eccd496fd..00000000000
--- a/liboffloadmic/runtime/liboffload_msg.h
+++ /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
index 1874dd97796..00000000000
--- a/liboffloadmic/runtime/mic_lib.f90
+++ /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
index 4a329ba0e56..00000000000
--- a/liboffloadmic/runtime/offload.h
+++ /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
index af569ae3376..00000000000
--- a/liboffloadmic/runtime/offload_common.cpp
+++ /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
index 445d47cfad0..00000000000
--- a/liboffloadmic/runtime/offload_common.h
+++ /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
index b2de56c68eb..00000000000
--- a/liboffloadmic/runtime/offload_engine.cpp
+++ /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
index b4cdad503be..00000000000
--- a/liboffloadmic/runtime/offload_engine.h
+++ /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
index d1f52f14342..00000000000
--- a/liboffloadmic/runtime/offload_env.cpp
+++ /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
index 166b5d9242d..00000000000
--- a/liboffloadmic/runtime/offload_env.h
+++ /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
index cab08c43550..00000000000
--- a/liboffloadmic/runtime/offload_host.cpp
+++ /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
index 4f1ef1392ba..00000000000
--- a/liboffloadmic/runtime/offload_host.h
+++ /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
index baf25afbb2f..00000000000
--- a/liboffloadmic/runtime/offload_iterator.h
+++ /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
index 0439fec313b..00000000000
--- a/liboffloadmic/runtime/offload_omp_host.cpp
+++ /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
index 2bcfef5acea..00000000000
--- a/liboffloadmic/runtime/offload_omp_target.cpp
+++ /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
index a2ab6743ab5..00000000000
--- a/liboffloadmic/runtime/offload_orsl.cpp
+++ /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
index 4513fcc4749..00000000000
--- a/liboffloadmic/runtime/offload_orsl.h
+++ /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
index 09c4d206e58..00000000000
--- a/liboffloadmic/runtime/offload_table.cpp
+++ /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
index 9f9f93261cb..00000000000
--- a/liboffloadmic/runtime/offload_table.h
+++ /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
index 16ba4a32991..00000000000
--- a/liboffloadmic/runtime/offload_target.cpp
+++ /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
index 8d2971b2418..00000000000
--- a/liboffloadmic/runtime/offload_target.h
+++ /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
index 68f7c3054d5..00000000000
--- a/liboffloadmic/runtime/offload_target_main.cpp
+++ /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
index 30a1149b6fb..00000000000
--- a/liboffloadmic/runtime/offload_timer.h
+++ /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
index 3d93508f5d8..00000000000
--- a/liboffloadmic/runtime/offload_timer_host.cpp
+++ /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
index 860f2976580..00000000000
--- a/liboffloadmic/runtime/offload_timer_target.cpp
+++ /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
index 8d69c286f57..00000000000
--- a/liboffloadmic/runtime/offload_trace.cpp
+++ /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
index e48aa01f340..00000000000
--- a/liboffloadmic/runtime/offload_trace.h
+++ /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
index bb434871f60..00000000000
--- a/liboffloadmic/runtime/offload_util.cpp
+++ /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
index 789846239bf..00000000000
--- a/liboffloadmic/runtime/offload_util.h
+++ /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
index 49d40509c97..00000000000
--- a/liboffloadmic/runtime/ofldbegin.cpp
+++ /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
index 3cabc1a0003..00000000000
--- a/liboffloadmic/runtime/ofldend.cpp
+++ /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
index 867bae5f33c..00000000000
--- a/liboffloadmic/runtime/orsl-lite/include/orsl-lite.h
+++ /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
index 669c40a1358..00000000000
--- a/liboffloadmic/runtime/orsl-lite/lib/orsl-lite.c
+++ /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
index ab5f59930fc..00000000000
--- a/liboffloadmic/runtime/orsl-lite/version.txt
+++ /dev/null
@@ -1 +0,0 @@
-ORSL-lite 0.7