diff mbox

offload data version number

Message ID 878u9soc60.fsf@kepler.schwinge.homeip.net
State New
Headers show

Commit Message

Thomas Schwinge Aug. 3, 2015, 11:15 a.m. UTC
Hi!

On Sat, 1 Aug 2015 20:20:49 -0400, Nathan Sidwell <nathan@acm.org> wrote:
> this is the gomp4 committed version.

> --- liboffloadmic/plugin/libgomp-plugin-intelmic.cpp	(revision 226462)
> +++ liboffloadmic/plugin/libgomp-plugin-intelmic.cpp	(working copy)
> @@ -327,12 +327,26 @@ offload_image (const void *target_image)
>    free (image);
>  }
>  
> +/* 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 void *target_image,
> -			 addr_pair **result)
> +GOMP_OFFLOAD_load_image (int device, const unsigned version,
> +			 void *target_image, addr_pair **result)
>  {
>    TRACE ("(device = %d, target_image = %p)", device, target_image);
>  
> +  if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
> +    GOMP_PLUGIN_fatal ("Offload data incompatible with intelmic plugin"
> +		       " (expected %u, received %u)",
> +		       GOMP_VERSION_INTEL_MIC, GOMP_VERSION_DEV (version));
> +
>    /* If target_image is already present in address_table, then there is no need
>       to offload it.  */
>    if (address_table->count (target_image) == 0)
> @@ -353,8 +367,12 @@ GOMP_OFFLOAD_load_image (int device, con
>  }
>  
>  extern "C" void
> -GOMP_OFFLOAD_unload_image (int device, const void *target_image)
> +GOMP_OFFLOAD_unload_image (int device, unsigned version,
> +			   const void *target_image)
>  {
> +  if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
> +    return;
> +
>    TRACE ("(device = %d, target_image = %p)", device, target_image);
>  
>    /* TODO: Currently liboffloadmic doesn't support __offload_unregister_image

Committed to gomp-4_0-branch in r226497:

commit 4e0158f41a00d6c4d09ca8a48eb63832abdd2f84
Author: tschwinge <tschwinge@138bc75d-0d04-0410-961f-82ee72b054a4>
Date:   Mon Aug 3 11:14:24 2015 +0000

    Fix intelmic libgomp plugin build
    
    ... which got broken in r226469:
    
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp: In function 'unsigned int GOMP_OFFLOAD_version()':
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp:336:10: error: 'GOMP_VERSION' was not declared in this scope
           return GOMP_VERSION;
                  ^
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp: In function 'int GOMP_OFFLOAD_load_image(int, unsigned int, void*, addr_pair**)':
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp:345:32: error: 'GOMP_VERSION_DEV' was not declared in this scope
           if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
                                        ^
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp:345:36: error: 'GOMP_VERSION_INTEL_MIC' was not declared in this scope
           if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
                                            ^
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp: In function 'void GOMP_OFFLOAD_unload_image(int, unsigned int, const void*)':
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp:373:32: error: 'GOMP_VERSION_DEV' was not declared in this scope
           if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
                                        ^
        [...]/source-gcc/liboffloadmic/plugin/libgomp-plugin-intelmic.cpp:373:36: error: 'GOMP_VERSION_INTEL_MIC' was not declared in this scope
           if (GOMP_VERSION_DEV (version) > GOMP_VERSION_INTEL_MIC)
                                            ^
        make[6]: *** [libgomp_plugin_intelmic_la-libgomp-plugin-intelmic.lo] Error 1
    
    	liboffloadmic/
    	* 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".
    
    git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gomp-4_0-branch@226497 138bc75d-0d04-0410-961f-82ee72b054a4
---
 liboffloadmic/ChangeLog.gomp                     |    7 +++++++
 liboffloadmic/plugin/Makefile.am                 |    3 ++-
 liboffloadmic/plugin/Makefile.in                 |    3 ++-
 liboffloadmic/plugin/libgomp-plugin-intelmic.cpp |    3 ++-
 4 files changed, 13 insertions(+), 3 deletions(-)



Grüße,
 Thomas

Comments

Nathan Sidwell Aug. 3, 2015, 1:26 p.m. UTC | #1
On 08/03/15 07:15, Thomas Schwinge wrote:
> Hi!
>
> On Sat, 1 Aug 2015 20:20:49 -0400, Nathan Sidwell <nathan@acm.org> wrote:
>> this is the gomp4 committed version.
>
>> --- liboffloadmic/plugin/libgomp-plugin-intelmic.cpp	(revision 226462)
>> +++ liboffloadmic/plugin/libgomp-plugin-intelmic.cpp	(working copy)
>> @@ -327,12 +327,26 @@ offload_image (const void *target_image)
>>     free (image);

Please prepare a patch that can be applied to trunk.  We'll need that for the 
trunk version of the version patch I posted for review.  Are you able to check 
that patch builds for intelmic?

nathan
diff mbox

Patch

diff --git liboffloadmic/ChangeLog.gomp liboffloadmic/ChangeLog.gomp
index 93d1e02..adb9e05 100644
--- liboffloadmic/ChangeLog.gomp
+++ liboffloadmic/ChangeLog.gomp
@@ -1,3 +1,10 @@ 
+2015-08-03  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-08-01  Nathan Sidwell  <nathan@codesourcery.com>
 
 	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_version): New.
diff --git liboffloadmic/plugin/Makefile.am liboffloadmic/plugin/Makefile.am
index 19d69ab..6ec444c 100644
--- liboffloadmic/plugin/Makefile.am
+++ liboffloadmic/plugin/Makefile.am
@@ -36,6 +36,7 @@  build_dir = $(top_builddir)
 source_dir = $(top_srcdir)
 coi_inc_dir = $(top_srcdir)/../include/coi
 myo_inc_dir = $(top_srcdir)/../include/myo
+include_src_dir = $(top_srcdir)/../../include
 libgomp_src_dir = $(top_srcdir)/../../libgomp
 libgomp_dir = $(build_dir)/../../libgomp
 liboffload_src_dir = $(top_srcdir)/../runtime
@@ -52,7 +53,7 @@  target_install_dir = $(accel_search_dir)/lib/gcc/$(accel_target)/$(gcc_version)$
 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 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(myo_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_src_dir) -I$(libgomp_dir) -I$(target_prefix_dir)/include -I$(target_build_dir) -I$(target_install_dir)/include
+  libgomp_plugin_intelmic_la_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(myo_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)
diff --git liboffloadmic/plugin/Makefile.in liboffloadmic/plugin/Makefile.in
index 19a1a96..458c9b2 100644
--- liboffloadmic/plugin/Makefile.in
+++ liboffloadmic/plugin/Makefile.in
@@ -306,6 +306,7 @@  build_dir = $(top_builddir)
 source_dir = $(top_srcdir)
 coi_inc_dir = $(top_srcdir)/../include/coi
 myo_inc_dir = $(top_srcdir)/../include/myo
+include_src_dir = $(top_srcdir)/../../include
 libgomp_src_dir = $(top_srcdir)/../../libgomp
 libgomp_dir = $(build_dir)/../../libgomp
 liboffload_src_dir = $(top_srcdir)/../runtime
@@ -320,7 +321,7 @@  target_build_dir = $(accel_search_dir)/$(accel_target)$(MULTISUBDIR)/liboffloadm
 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 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(myo_inc_dir) -I$(liboffload_src_dir) -I$(libgomp_src_dir) -I$(libgomp_dir) -I$(target_prefix_dir)/include -I$(target_build_dir) -I$(target_install_dir)/include
+@PLUGIN_HOST_TRUE@libgomp_plugin_intelmic_la_CPPFLAGS = $(CPPFLAGS) -DLINUX -DCOI_LIBRARY_VERSION=2 -DMYO_SUPPORT -DOFFLOAD_DEBUG=1 -DSEP_SUPPORT -DTIMING_SUPPORT -DHOST_LIBRARY=1 -I$(coi_inc_dir) -I$(myo_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
diff --git liboffloadmic/plugin/libgomp-plugin-intelmic.cpp liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
index b852b42..fde7d9e 100644
--- liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
+++ liboffloadmic/plugin/libgomp-plugin-intelmic.cpp
@@ -1,6 +1,6 @@ 
 /* Plugin for offload execution on Intel MIC devices.
 
-   Copyright (C) 2014 Free Software Foundation, Inc.
+   Copyright (C) 2014-2015 Free Software Foundation, Inc.
 
    Contributed by Ilya Verbin <ilya.verbin@intel.com>.
 
@@ -38,6 +38,7 @@ 
 #include "libgomp-plugin.h"
 #include "compiler_if_host.h"
 #include "main_target_image.h"
+#include "gomp-constants.h"
 
 #define LD_LIBRARY_PATH_ENV	"LD_LIBRARY_PATH"
 #define MIC_LD_LIBRARY_PATH_ENV	"MIC_LD_LIBRARY_PATH"