diff options
author | Ilya Verbin <ilya.verbin@intel.com> | 2014-10-14 17:18:04 +0400 |
---|---|---|
committer | Ilya Verbin <ilya.verbin@intel.com> | 2014-11-12 15:39:30 +0300 |
commit | 60f48f14c673afcabb6dd6830241383b248c64e0 (patch) | |
tree | 953e7e896ad99e256707d15f5b79514448095639 | |
parent | 6cf3816b093d697b4051c1d35b1204849ac7df7f (diff) | |
download | gcc-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.in | 3 | ||||
-rwxr-xr-x | libgomp/configure | 21 | ||||
-rw-r--r-- | libgomp/configure.ac | 14 | ||||
-rw-r--r-- | libgomp/testsuite/Makefile.am | 5 | ||||
-rw-r--r-- | libgomp/testsuite/Makefile.in | 8 | ||||
-rw-r--r-- | libgomp/testsuite/lib/libgomp.exp | 25 |
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}" + } } # |