https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105169
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |marxin at gcc dot gnu.org --- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- Confirmed, a bit reduced test-case: $ cat 1.ii struct WinsockInterfaceClass { virtual int Get_Protocol() { return 0; } } PacketTransport; $ cat 2.ii struct WinsockInterfaceClass { WinsockInterfaceClass(); virtual void Set_Broadcast_Address() {} virtual int Get_Protocol() { return 0; } }; WinsockInterfaceClass::WinsockInterfaceClass() {} int main() { return 0; } $ g++ 1.ii 2.ii -fpatchable-function-entry=1 -O2 `.text._ZN21WinsockInterfaceClass12Get_ProtocolEv' referenced in section `__patchable_function_entries' of /tmp/cc6P6bkZ.o: defined in discarded section `.text._ZN21WinsockInterfaceClass12Get_ProtocolEv[_ZN21WinsockInterfaceClass12Get_ProtocolEv]' of /tmp/cc6P6bkZ.o collect2: error: ld returned 1 exit status $ g++ 1.ii 2.ii -fpatchable-function-entry=1 -O2 -fuse-ld=gold /tmp/ccCrCzcR.o(__patchable_function_entries+0x8): error: relocation refers to local symbol "" [4], which is defined in a discarded section section group signature: "_ZN21WinsockInterfaceClass12Get_ProtocolEv" prevailing definition is from /tmp/ccH1NIH4.o collect2: error: ld returned 1 exit status