Skip to content
Snippets Groups Projects
  • Ilya Verbin's avatar
    e6861a99
    re PR driver/68463 (Offloading fails when some objects are compiled with LTO and some without) · e6861a99
    Ilya Verbin authored
    gcc/
    	PR driver/68463
    	* config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
    	offloading is enabled and -fopenacc or -fopenmp is specified.
    	(CRTOFFLOADEND): Likewise.
    	(GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
    	(GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
    	* 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.
    libgomp/
    	PR driver/68463
    	* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
    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.
    
    From-SVN: r233712
    e6861a99
    History
    re PR driver/68463 (Offloading fails when some objects are compiled with LTO and some without)
    Ilya Verbin authored
    gcc/
    	PR driver/68463
    	* config/gnu-user.h (CRTOFFLOADBEGIN): Define.  Add crtoffloadbegin.o if
    	offloading is enabled and -fopenacc or -fopenmp is specified.
    	(CRTOFFLOADEND): Likewise.
    	(GNU_USER_TARGET_STARTFILE_SPEC): Add CRTOFFLOADBEGIN.
    	(GNU_USER_TARGET_ENDFILE_SPEC): Add CRTOFFLOADEND.
    	* 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.
    libgomp/
    	PR driver/68463
    	* testsuite/libgomp.oacc-c-c++-common/parallel-dims-2.c: Remove.
    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.
    
    From-SVN: r233712