summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Verbin <ilya.verbin@intel.com>2014-10-14 17:18:04 +0400
committerIlya Verbin <ilya.verbin@intel.com>2014-11-12 15:39:30 +0300
commit60f48f14c673afcabb6dd6830241383b248c64e0 (patch)
tree953e7e896ad99e256707d15f5b79514448095639
parent6cf3816b093d697b4051c1d35b1204849ac7df7f (diff)
downloadgcc-kyukhin/gomp4-offload.tar.gz
[PATCH 4/4] OpenMP 4.0 offloading to Intel MIC: non-fallback testingkyukhin/gomp4-offload
2014-10-30 Andrey Turetskiy <andrey.turetskiy@intel.com> Ilya Verbin <ilya.verbin@intel.com> libgomp/ * Makefile.in: Regenerate. * configure: Regenerate. * configure.ac: Set up offload_additional_options, offload_additional_lib_paths and offload_targets. * testsuite/Makefile.am: Overrule site.exp. * testsuite/Makefile.in: Regenerate. * testsuite/lib/libgomp.exp (libgomp_init): Append offload_additional_lib_paths to LD_LIBRARY_PATH. Append offload_additional_options to ALWAYS_CFLAGS. Append liboffloadmic build directory to LD_LIBRARY_PATH for intelmic offload targets.
-rw-r--r--libgomp/Makefile.in3
-rwxr-xr-xlibgomp/configure21
-rw-r--r--libgomp/configure.ac14
-rw-r--r--libgomp/testsuite/Makefile.am5
-rw-r--r--libgomp/testsuite/Makefile.in8
-rw-r--r--libgomp/testsuite/lib/libgomp.exp25
6 files changed, 74 insertions, 2 deletions
diff --git a/libgomp/Makefile.in b/libgomp/Makefile.in
index 5cd666f8ec6..8e4774f6c0e 100644
--- a/libgomp/Makefile.in
+++ b/libgomp/Makefile.in
@@ -268,6 +268,9 @@ lt_host_flags = @lt_host_flags@
mandir = @mandir@
mkdir_p = @mkdir_p@
multi_basedir = @multi_basedir@
+offload_additional_lib_paths = @offload_additional_lib_paths@
+offload_additional_options = @offload_additional_options@
+offload_targets = @offload_targets@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
diff --git a/libgomp/configure b/libgomp/configure
index 7cd20b1bca1..19f36c6db0c 100755
--- a/libgomp/configure
+++ b/libgomp/configure
@@ -616,6 +616,9 @@ OMP_LOCK_SIZE
USE_FORTRAN_FALSE
USE_FORTRAN_TRUE
link_gomp
+offload_additional_lib_paths
+offload_additional_options
+offload_targets
XLDFLAGS
XCFLAGS
config_path
@@ -11094,7 +11097,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11097 "configure"
+#line 11100 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11200,7 +11203,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11203 "configure"
+#line 11206 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -16207,9 +16210,13 @@ else
multilib_arg=
fi
+# Get accel target and path to install tree of accel compiler
+offload_additional_options=
+offload_additional_lib_paths=
offload_targets=
if test x"$enable_offload_targets" != x; then
for tgt in `echo $enable_offload_targets | sed -e 's#,# #g'`; do
+ tgt_dir=`echo $tgt | grep '=' | sed 's/.*=//'`
tgt=`echo $tgt | sed 's/=.*//'`
case $tgt in
*-intelmic-* | *-intelmicemul-*)
@@ -16222,6 +16229,13 @@ if test x"$enable_offload_targets" != x; then
else
offload_targets=$offload_targets,$tgt_name
fi
+ if test x"$tgt_dir" != x; then
+ offload_additional_options="$offload_additional_options -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) -B$tgt_dir/bin"
+ offload_additional_lib_paths="$offload_additional_lib_paths:$tgt_dir/lib64:$tgt_dir/lib"
+ else
+ offload_additional_options="$offload_additional_options -B\$(libexecdir)/gcc/\$(target_alias)/\$(gcc_version) -B\$(bindir)"
+ offload_additional_lib_paths="$offload_additional_lib_paths:$toolexeclibdir"
+ fi
done
fi
@@ -16230,6 +16244,9 @@ cat >>confdefs.h <<_ACEOF
_ACEOF
+
+
+
# Set up the set of libraries that we need to link against for libgomp.
# Note that the GOMP_SELF_SPEC in gcc.c may force -pthread,
# which will force linkage against -lpthread (or equivalent for the system).
diff --git a/libgomp/configure.ac b/libgomp/configure.ac
index 3f34ff8ee5f..cea63660c5a 100644
--- a/libgomp/configure.ac
+++ b/libgomp/configure.ac
@@ -280,9 +280,13 @@ else
multilib_arg=
fi
+# Get accel target and path to install tree of accel compiler
+offload_additional_options=
+offload_additional_lib_paths=
offload_targets=
if test x"$enable_offload_targets" != x; then
for tgt in `echo $enable_offload_targets | sed -e 's#,# #g'`; do
+ tgt_dir=`echo $tgt | grep '=' | sed 's/.*=//'`
tgt=`echo $tgt | sed 's/=.*//'`
case $tgt in
*-intelmic-* | *-intelmicemul-*)
@@ -295,10 +299,20 @@ if test x"$enable_offload_targets" != x; then
else
offload_targets=$offload_targets,$tgt_name
fi
+ if test x"$tgt_dir" != x; then
+ offload_additional_options="$offload_additional_options -B$tgt_dir/libexec/gcc/\$(target_alias)/\$(gcc_version) -B$tgt_dir/bin"
+ offload_additional_lib_paths="$offload_additional_lib_paths:$tgt_dir/lib64:$tgt_dir/lib"
+ else
+ offload_additional_options="$offload_additional_options -B\$(libexecdir)/gcc/\$(target_alias)/\$(gcc_version) -B\$(bindir)"
+ offload_additional_lib_paths="$offload_additional_lib_paths:$toolexeclibdir"
+ fi
done
fi
AC_DEFINE_UNQUOTED(OFFLOAD_TARGETS, "$offload_targets",
[Define to hold the list of target names suitable for offloading.])
+AC_SUBST(offload_targets)
+AC_SUBST(offload_additional_options)
+AC_SUBST(offload_additional_lib_paths)
# Set up the set of libraries that we need to link against for libgomp.
# Note that the GOMP_SELF_SPEC in gcc.c may force -pthread,
diff --git a/libgomp/testsuite/Makefile.am b/libgomp/testsuite/Makefile.am
index 561b7e25448..9cc103a1c4d 100644
--- a/libgomp/testsuite/Makefile.am
+++ b/libgomp/testsuite/Makefile.am
@@ -11,3 +11,8 @@ EXPECT = $(shell if test -f $(top_builddir)/../expect/expect; then \
_RUNTEST = $(shell if test -f $(top_srcdir)/../dejagnu/runtest; then \
echo $(top_srcdir)/../dejagnu/runtest; else echo runtest; fi)
RUNTEST = "$(_RUNTEST) $(AM_RUNTESTFLAGS)"
+
+# Used for support non-fallback offloading.
+export OFFLOAD_TARGETS = $(offload_targets)
+export OFFLOAD_ADDITIONAL_OPTIONS = $(offload_additional_options)
+export OFFLOAD_ADDITIONAL_LIB_PATHS = $(offload_additional_lib_paths)
diff --git a/libgomp/testsuite/Makefile.in b/libgomp/testsuite/Makefile.in
index 5273eaa2b35..2f845f0c7cb 100644
--- a/libgomp/testsuite/Makefile.in
+++ b/libgomp/testsuite/Makefile.in
@@ -184,6 +184,9 @@ lt_host_flags = @lt_host_flags@
mandir = @mandir@
mkdir_p = @mkdir_p@
multi_basedir = @multi_basedir@
+offload_additional_lib_paths = @offload_additional_lib_paths@
+offload_additional_options = @offload_additional_options@
+offload_targets = @offload_targets@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
@@ -408,6 +411,11 @@ uninstall-am:
uninstall uninstall-am
+# Used for support non-fallback offloading.
+export OFFLOAD_TARGETS = $(offload_targets)
+export OFFLOAD_ADDITIONAL_OPTIONS = $(offload_additional_options)
+export OFFLOAD_ADDITIONAL_LIB_PATHS = $(offload_additional_lib_paths)
+
# 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/libgomp/testsuite/lib/libgomp.exp b/libgomp/testsuite/lib/libgomp.exp
index 071e22fbf30..a1546847323 100644
--- a/libgomp/testsuite/lib/libgomp.exp
+++ b/libgomp/testsuite/lib/libgomp.exp
@@ -107,6 +107,25 @@ proc libgomp_init { args } {
# Compute what needs to be put into LD_LIBRARY_PATH
set always_ld_library_path ".:${blddir}/.libs"
+ # Get offload-related variables from environment (exported by Makefile)
+ set offload_targets [getenv OFFLOAD_TARGETS]
+ set offload_additional_options [getenv OFFLOAD_ADDITIONAL_OPTIONS]
+ set offload_additional_lib_paths [getenv OFFLOAD_ADDITIONAL_LIB_PATHS]
+
+ # Add liboffloadmic build directory in LD_LIBRARY_PATH to support
+ # non-fallback testing for Intel MIC targets
+ if { [string match "*-intelmic-*" $offload_targets]
+ || [string match "*-intelmicemul-*" $offload_targets] } {
+ 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"
+ }
+
+ if { $offload_additional_lib_paths != "" } {
+ append always_ld_library_path "${offload_additional_lib_paths}"
+ }
+
# Compute what needs to be added to the existing LD_LIBRARY_PATH.
if {$gccdir != ""} {
# Add AIX pthread directory first.
@@ -169,6 +188,12 @@ proc libgomp_init { args } {
# Disable color diagnostics
lappend ALWAYS_CFLAGS "additional_flags=-fdiagnostics-color=never"
+
+ # Used for support non-fallback offloading.
+ # Help GCC to find target mkoffload.
+ if { $offload_additional_options != "" } {
+ lappend ALWAYS_CFLAGS "additional_flags=${offload_additional_options}"
+ }
}
#