> On 11/18/21 19:22, Jan Hubicka wrote:
> > > Supported LTO compression algorithms: zlib zstd
> > > gcc version 12.0.0 20211118 (experimental) (GCC)
> > > /usr/bin/ld: ./xxx.ltrans0.ltrans.o: warning: relocation against 
> > > `lm_read_ctl_dict_size_n_lmclass_used' in read-only section `.text'
> > > /usr/bin/ld: ./xxx.ltrans0.ltrans.o: relocation R_X86_64_PC32 against 
> > > symbol `__ckd_calloc___elem_size' can not be used when making a shared 
> > > object; recompile with -fPIC
> > > /usr/bin/ld: final link failed: bad value
> > > collect2: error: ld returned 1 exit status
> > > /usr/bin/ld: ./yyy.ltrans0.ltrans.o: warning: relocation against 
> > > `__ckd_calloc___n_elem' in read-only section `.text'
> > > /usr/bin/ld: ./yyy.ltrans0.ltrans.o: relocation R_X86_64_PC32 against 
> > > symbol `__ckd_calloc___elem_size' can not be used when making a shared 
> > > object; recompile with -fPIC
> > > /usr/bin/ld: final link failed: bad value
> > > collect2: error: ld returned 1 exit status
> > > diff: yyy.ltrans0.ltrans*optimized: No such file or directory
> > > 54,55d53
> > > <         movslq  lm_read_ctl_dict_size_n_lmclass_used(%rip), %rax
> > > <         movl    $0, 0(%rbp,%rax,4)
> > > 
> > > I tracked that it differs in tree DSE dump.
> > > 
> > > May I install the patch?
> > 
> > No, I think it is bug of symbol_summary that get is causing a
> > difference.
> 
> Isn't problem that the following code
> 
>               past_flags.reserve_exact (summary->arg_flags.length ());
>               past_flags.splice (summary->arg_flags);
>               past_retslot_flags = summary->retslot_flags;

Aha, that makes sense. Sorry.  It used to be saved for dumping only
while we now use it to merge old summaries with new.  So it is indeed a
(quite stupid) bug.

The patch is OK. Thanks for finding it.
Honza

Reply via email to