On Wed, Dec 10, 2014 at 01:48:21 +0300, Ilya Verbin wrote: > On 09 Dec 14:59, Richard Biener wrote: > > On Mon, 8 Dec 2014, Ilya Verbin wrote: > > > Unfortunately, this fix was not general enough. > > > There might be cases when mixed object files get into lto-wrapper, ie > > > some of > > > them contain only LTO sections, some contain only offload sections, and > > > some > > > contain both. But when lto-wrapper will pass all these files to > > > recompilation, > > > the compiler might crash (it depends on the order of input files), since > > > in > > > read_cgraph_and_symbols it expects that *all* input files contain IR > > > section of > > > given type. > > > This patch splits input objects from argv into lto_argv and offload_argv, > > > so > > > that all files in arrays contain corresponding IR. > > > Similarly, in lto-plugin, it was bad idea to add objects, which contain > > > offload > > > IR without LTO, to claimed_files, since this may corrupt a resolution > > > file. > > > > > > Tested on various combinations of files with/without -flto and > > > with/without > > > offload, using trunk ld and gold, also tested on ld without plugin > > > support. > > > Bootstrap and make check passed on x86_64-linux and i686-linux. Ok for > > > trunk? > > > > Did you check that bootstrap-lto still works? Ok if so. > > Yes, bootstrap-lto passed. > Committed revision 218543.
I don't know how I missed this a year ago, but mixing of LTO objects with offloading-without-LTO objects still doesn't work :( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68463 filed about that. Any thoughts how to fix this? Thanks, -- Ilya