diff options
author | Tobias Burnus <tobias@codesourcery.com> | 2021-04-28 18:46:47 +0200 |
---|---|---|
committer | Tobias Burnus <tobias@codesourcery.com> | 2021-04-28 18:46:47 +0200 |
commit | fe5bfa6704179f8db7d1ae0b485439e9896df8eb (patch) | |
tree | 7687db287a1ef04b1399cf8db2a06eb9398cc995 /libgomp/target.c | |
parent | 3da80ed7efd582575e7850a403ce693ec882d087 (diff) | |
download | gcc-fe5bfa6704179f8db7d1ae0b485439e9896df8eb.zip gcc-fe5bfa6704179f8db7d1ae0b485439e9896df8eb.tar.gz gcc-fe5bfa6704179f8db7d1ae0b485439e9896df8eb.tar.bz2 |
offload-defaulted: Config option to silently ignore uninstalled offload compilers
If configured with --enable-offload-defaulted, configured but not installed
offload compilers and libgomp plugins are silently ignored. Useful for
distribution compilers where those are in separate optional packages.
2021-04-28 Jakub Jelinek <jakub@redhat.com>
Tobias Burnus <tobias@codesourcery.com>
ChangeLog:
* configure.ac (--enable-offload-defaulted): New.
* configure: Regenerate.
gcc/ChangeLog:
* configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
* gcc.c (process_command): New variable.
(driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED,
set it if -foffload is defaulted.
* lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define.
(compile_offload_image): If OFFLOAD_DEFAULTED and
OFFLOAD_TARGET_DEFAULT is in the environment, don't fail
if corresponding mkoffload can't be found.
(compile_images_for_offload_targets): Likewise. Free and clear
offload_names if no valid offload is found.
* config.in: Regenerate.
* configure: Regenerate.
libgomp/ChangeLog:
* configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted.
* target.c (gomp_load_plugin_for_device): If set and if a plugin
can't be dlopened, silently assume it has no devices.
* Makefile.in: Regenerate.
* config.h.in: Regenerate.
* configure: Regenerate.
Diffstat (limited to 'libgomp/target.c')
-rw-r--r-- | libgomp/target.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libgomp/target.c b/libgomp/target.c index 4a4e1f8..2150e5d 100644 --- a/libgomp/target.c +++ b/libgomp/target.c @@ -3173,7 +3173,11 @@ gomp_load_plugin_for_device (struct gomp_device_descr *device, void *plugin_handle = dlopen (plugin_name, RTLD_LAZY); if (!plugin_handle) +#if OFFLOAD_DEFAULTED + return 0; +#else goto dl_fail; +#endif /* Check if all required functions are available in the plugin and store their handlers. None of the symbols can legitimately be NULL, |