[PATCH][RFC][Offloading] Fix PR68463
Jakub Jelinek
jakub@redhat.com
Mon Feb 22 10:59:00 GMT 2016
On Sat, Feb 20, 2016 at 01:54:20PM +0300, Ilya Verbin wrote:
> gcc/
> PR driver/68463
> * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add
> crtoffloadbegin.o for -fopenacc/-fopenmp if it exists.
> (GNU_USER_TARGET_ENDFILE_SPEC): Add crtoffloadend.o for
> -fopenacc/-fopenmp if it exists.
> * lto-wrapper.c (offloadbegin, offloadend): Remove static vars.
> (offload_objects_file_name): New static var.
> (tool_cleanup): Remove offload_objects_file_name file.
> (find_offloadbeginend): Replace with ...
> (find_crtoffloadtable): ... this.
> (run_gcc): Remove offload_argc and offload_argv.
> Get offload_objects_file_name from -foffload-objects=... option.
> Read names of object files with offload from this file, pass them to
> compile_images_for_offload_targets. Don't call find_offloadbeginend and
> don't pass offloadbegin and offloadend to the linker. Don't pass
> offload non-LTO files to the linker, because now they're not claimed.
> libgcc/
> PR driver/68463
> * Makefile.in (crtoffloadtable$(objext)): New rule.
> * configure.ac (extra_parts): Add crtoffloadtable$(objext) if
> enable_offload_targets is not empty.
> * configure: Regenerate.
> * offloadstuff.c: Move __OFFLOAD_TABLE__ from crtoffloadend to
> crtoffloadtable.
> lto-plugin/
> PR driver/68463
> * lto-plugin.c (struct plugin_offload_file): New.
> (offload_files): Change type.
> (offload_files_last, offload_files_last_obj): New.
> (offload_files_last_lto): New.
> (free_2): Adjust accordingly.
> (all_symbols_read_handler): Don't add offload files to lto_arg_ptr.
> Don't call free_1 for offload_files. Write names of object files with
> offloading to the temporary file. Add new option to lto_arg_ptr.
> (claim_file_handler): Don't claim file if it contains offload sections
> without LTO sections. If it contains offload sections, add to the list.
LGTM.
Jakub
More information about the Gcc-patches
mailing list