Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP3:GA
gcc11-testresults
gcc10-foffload-default.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gcc10-foffload-default.patch of Package gcc11-testresults
Index: gcc-11.1.1+git536/gcc/gcc.c =================================================================== --- gcc-11.1.1+git536.orig/gcc/gcc.c +++ gcc-11.1.1+git536/gcc/gcc.c @@ -319,6 +319,10 @@ static const char *spec_host_machine = D static char *offload_targets = NULL; +/* Set to true if -foffload has not been used and offload_targets + is set to the configured in default. */ +static bool offload_targets_default; + /* Nonzero if cross-compiling. When -b is used, the value comes from the `specs' file. */ @@ -4830,7 +4834,10 @@ process_command (unsigned int decoded_op /* If the user didn't specify any, default to all configured offload targets. */ if (ENABLE_OFFLOADING && offload_targets == NULL) - handle_foffload_option (OFFLOAD_TARGETS); + { + handle_foffload_option (OFFLOAD_TARGETS); + offload_targets_default = true; + } /* Handle -gtoggle as it would later in toplev.c:process_options to make the debug-level-gt spec function work as expected. */ @@ -8498,6 +8505,8 @@ driver::maybe_putenv_OFFLOAD_TARGETS () obstack_grow (&collect_obstack, offload_targets, strlen (offload_targets) + 1); xputenv (XOBFINISH (&collect_obstack, char *)); + if (offload_targets_default) + xputenv ("OFFLOAD_TARGET_DEFAULT=1"); } free (offload_targets); Index: gcc-11.1.1+git536/gcc/lto-wrapper.c =================================================================== --- gcc-11.1.1+git536.orig/gcc/lto-wrapper.c +++ gcc-11.1.1+git536/gcc/lto-wrapper.c @@ -52,6 +52,7 @@ along with GCC; see the file COPYING3. /* Environment variable, used for passing the names of offload targets from GCC driver to lto-wrapper. */ #define OFFLOAD_TARGET_NAMES_ENV "OFFLOAD_TARGET_NAMES" +#define OFFLOAD_TARGET_DEFAULT_ENV "OFFLOAD_TARGET_DEFAULT" /* By default there is no special suffix for target executables. */ #ifdef TARGET_EXECUTABLE_SUFFIX @@ -907,6 +908,12 @@ compile_offload_image (const char *targe break; } + if (!compiler && getenv (OFFLOAD_TARGET_DEFAULT_ENV)) + { + free_array_of_ptrs ((void **) paths, n_paths); + return NULL; + } + if (!compiler) fatal_error (input_location, "could not find %s in %s (consider using %<-B%>)", @@ -991,8 +998,13 @@ compile_images_for_offload_targets (unsi compiler_opts, compiler_opt_count, linker_opts, linker_opt_count); if (!offload_names[i]) - fatal_error (input_location, - "problem with building target image for %s", names[i]); + continue; + } + + if (num_targets == 0) + { + free (offload_names); + offload_names = NULL; } out: Index: gcc-11.1.1+git536/libgomp/target.c =================================================================== --- gcc-11.1.1+git536.orig/libgomp/target.c +++ gcc-11.1.1+git536/libgomp/target.c @@ -3173,7 +3173,7 @@ gomp_load_plugin_for_device (struct gomp void *plugin_handle = dlopen (plugin_name, RTLD_LAZY); if (!plugin_handle) - goto dl_fail; + return 0; /* Check if all required functions are available in the plugin and store their handlers. None of the symbols can legitimately be NULL,
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor