> 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