https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78034
Bug ID: 78034 Summary: undefined reference during LTO linking. Product: gcc Version: 6.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto Assignee: unassigned at gcc dot gnu.org Reporter: pawel_sikora at zoho dot com Target Milestone: --- Created attachment 39834 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=39834&action=edit testcase % make rm -f *.o *.a g++ -m32 -Og -flto -fuse-ld=gold -g0 -march=pentium4 integer.cpp -c gcc-ar -rv libinteger.a integer.o /usr/bin/ar: creating libinteger.a a - integer.o g++ -m32 -Og -flto -fuse-ld=gold -g0 -march=pentium4 test.cpp -o test -L. -linteger /tmp/ccAeSuk8.ltrans0.ltrans.o:<artificial>:function SSE2_Multiply4(unsigned int*, unsigned int const*, unsigned int const*): error: undefined reference to 'LMul2' collect2: error: ld returned 1 exit status the 'LMul2' is an assembly label generated by macro-hell. without -flto it links fine.