https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83967
--- Comment #12 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Richard Biener from comment #8) > and then I get > > > gcc-7 t2.s t1.c -flto > /tmp/ccGhH7Cp.o:(.data+0x0): undefined reference to `Handler' > collect2: error: ld returned 1 exit status > > gcc-7 t1.c t2.s -flto > > in the working case: > > 1 > t1.o 4 > 190 16b2980a71930688 PREEMPTED_REG Handler > 198 16b2980a71930688 PREVAILING_DEF_IRONLY i > 194 16b2980a71930688 PREVAILING_DEF main > 202 16b2980a71930688 RESOLVED_EXEC Dispatch > > in the failing case (GNU ld): > > 1 > t1.o 4 > 190 801577c96f9ccef3 PREVAILING_DEF_IRONLY Handler > 198 801577c96f9ccef3 PREVAILING_DEF_IRONLY i > 194 801577c96f9ccef3 PREVAILING_DEF main > 202 801577c96f9ccef3 RESOLVED_EXEC Dispatch > > which works with gold: > > 1 > t1.o 4 > 190 680bbd652c7cfe04 PREVAILING_DEF Handler > 198 680bbd652c7cfe04 PREVAILING_DEF_IRONLY i > 194 680bbd652c7cfe04 PREVAILING_DEF main > 202 680bbd652c7cfe04 RESOLVED_EXEC Dispatch > > HJ? This is with binutils 2.29.1, thus confirmed but as a GNU ld issue. Yes, I can reproduce it with binutils 2.29.1. But it was fixed in 2.30.