This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][RFC][Offloading] Fix PR68463
- From: Jakub Jelinek <jakub at redhat dot com>
- To: Ilya Verbin <iverbin at gmail dot com>
- Cc: Thomas Schwinge <thomas at codesourcery dot com>, Richard Biener <rguenther at suse dot de>, bschmidt at redhat dot com, gcc-patches at gcc dot gnu dot org, kirill dot yukhin at gmail dot com
- Date: Mon, 22 Feb 2016 11:59:44 +0100
- Subject: Re: [PATCH][RFC][Offloading] Fix PR68463
- Authentication-results: sourceware.org; auth=none
- References: <20160114212601 dot GA48907 at msticlxl57 dot ims dot intel dot com> <alpine dot LSU dot 2 dot 11 dot 1601150909260 dot 31122 at t29 dot fhfr dot qr> <20160118203338 dot GA33054 at msticlxl57 dot ims dot intel dot com> <alpine dot LSU dot 2 dot 11 dot 1601190956300 dot 31122 at t29 dot fhfr dot qr> <20160119093628 dot GH3017 at tucnak dot redhat dot com> <20160119133213 dot GA20979 at msticlxl57 dot ims dot intel dot com> <20160210171934 dot GA30239 at msticlxl57 dot ims dot intel dot com> <20160219145308 dot GM3017 at tucnak dot redhat dot com> <20160220105420 dot GB13147 at msticlxl57 dot ims dot intel dot com>
- Reply-to: Jakub Jelinek <jakub at redhat dot com>
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