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