Jakub, this version makes the following changes to the earlier version. *) Renames things to FOO_ver, rather than FOO_2 *) No attempt to deal with cross-version plugins and libgomp. *) Adds GOMP_OFFLOAD_version function to plugin. (I went with your approach). Returns the GOMP_VERSION used to build the plugin, which libgomp checks matches the value for its build. When we make incompatible changes to the plugin interface, that value can be incremented. *) While working on gomp_load_plugin_for_device, I noticed the DLSYM and DLSYM_OPT macros were somewhat funky. We're loading functions, so don't expect a NULL value. We can simply check the returned value and only need dlerror when we get NULL. The counting that DLSYM_OPT does was somewhat funky too. IMHO better for that macro to simply return a truth value. ok for trunk? nathan