This requires GCC patch to use new plugin interface. But the problem seems quite clear. Gold is confusing reference from discarded section of fat LTO object with real reference to the comdat symbol. jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> ./xgcc -B ./ -O2 t.o -flto --save-temps [Leaving LTRANS /tmp/cczdYmCj.args] [Leaving LTRANS /tmp/ccCqokiD.ltrans.out] [Leaving LTRANS /tmp/ccLoaOjG.args] [Leaving LTRANS /tmp/ccCqokiD.ltrans0.o] jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> cat t.C #include <stdio.h> inline void test (void) { printf("Do something\n"); } void *optimize_me_away_at_lto = (void *)&test; main () { test(); } jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> ./xgcc -B ./ -O2 t.C -flto jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> ./xgcc -B ./ -O2 t.o -flto --save-temps [Leaving LTRANS /tmp/ccURJfxM.args] [Leaving LTRANS /tmp/ccJTd7um.ltrans.out] [Leaving LTRANS /tmp/ccvoyXEC.args] [Leaving LTRANS /tmp/ccJTd7um.ltrans0.o] jh@evans:/abuild/jh/trunk-3/build-inst7/gcc> more t.res 1 t.o 2 171 4348d11c PREVAILING_DEF_IRONLY _Z4testv 177 4348d11c PREVAILING_DEF main jh@evans:/abuild/jh/trunk-3/build-inst7/gcc>
Sorry, the testcas is bogus. I am however tracking down reason why when building libxul the resolution file of slim LTO looks like: 1278 96914ca3 RESOLVED_IR _ZN21nsDependentCSubstring6RebindERK19nsACString_internaljj 1290 96914ca3 RESOLVED_IR _ZN19nsACString_internal6AssignEPKcj 1299 96914ca3 RESOLVED_DYN moz_free 1305 96914ca3 RESOLVED_IR _Z14CallGetServiceRK4nsIDS1_PPv 1314 96914ca3 RESOLVED_IR _ZN13nsCOMPtr_base18assign_from_helperERK15nsCOMPtr_helperRK4nsID 1324 96914ca3 RESOLVED_IR _ZNK19nsACString_internal8FindCharEcj 1337 96914ca3 RESOLVED_DYN moz_xmalloc 1355 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN14nsIRDFResource11COMTypeInfoIiE4kIIDE 1395 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN13nsRDFResource11gRDFServiceE 1375 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN11nsISupports11COMTypeInfoIiE4kIIDE 344 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZTV13nsRDFResource 1425 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN13nsRDFResource17gRDFServiceRefCntE 1383 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN13nsIRDFService11COMTypeInfoIiE4kIIDE 1398 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN21nsIRDFDelegateFactory11COMTypeInfoIiE4kIIDE 1366 96914ca3 PREVAILING_DEF_IRONLY_EXP _ZN10nsIRDFNode11COMTypeInfoIiE4kIIDE 1415 96914ca3 RESOLVED_IR _ZN12nsCharTraitsIcE12sEmptyBufferE 1039 96914ca3 RESOLVED_IR _ZTV28nsCreateInstanceByContractID /abuild/jh/build-mozilla-new14/toolkit/library/../xre/nsAppRunner.o 291 353 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo14QueryInterfaceERK4nsIDPPv 842 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn16_N12nsXULAppInfo14QueryInterfaceERK4nsIDPPv 760 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo14QueryInterfaceERK4nsIDPPv 371 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo6AddRefEv 848 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn16_N12nsXULAppInfo6AddRefEv 766 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo6AddRefEv 378 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo7ReleaseEv 852 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn16_N12nsXULAppInfo7ReleaseEv 770 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo7ReleaseEv 476 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo19GetLogConsoleErrorsEPi 861 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn16_N12nsXULAppInfo19GetLogConsoleErrorsEPi 488 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo19SetLogConsoleErrorsEi 866 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn16_N12nsXULAppInfo19SetLogConsoleErrorsEi 468 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo13GetInSafeModeEPi 856 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn16_N12nsXULAppInfo13GetInSafeModeEPi 725 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo25WriteMinidumpForExceptionEPv 821 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo25WriteMinidumpForExceptionEPv 734 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo33AppendObjCExceptionInfoToAppNotesEPv 826 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo33AppendObjCExceptionInfoToAppNotesEPv 4598 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN18nsSingletonFactory6AddRefEv 4627 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN18nsSingletonFactory11LockFactoryEi 4614 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN18nsSingletonFactory14CreateInstanceEP11nsISupportsRK4nsIDPPv 612 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo12SetServerURLEP6nsIURL 789 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo12SetServerURLEP6nsIURL 679 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo19AnnotateCrashReportERK19nsACString_internalS2_ 804 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo19AnnotateCrashReportERK19nsACString_internalS2_ 453 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo18GetPlatformBuildIDER19nsACString_internal 439 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo13GetAppBuildIDER19nsACString_internal 446 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo18GetPlatformVersionER19nsACString_internal 432 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo10GetVersionER19nsACString_internal 425 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo5GetIDER19nsACString_internal 418 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo7GetNameER19nsACString_internal 410 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo9GetVendorER19nsACString_internal 664 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo15SetMinidumpPathEP12nsILocalFile 799 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZThn8_N12nsXULAppInfo15SetMinidumpPathEP12nsILocalFile 4587 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN18nsSingletonFactory14QueryInterfaceERK4nsIDPPv 751 d53ab3c PREVAILING_DEF_IRONLY_EXP _ZN12nsXULAppInfo16SetSubmitReportsEi While fat LTO is: 1315 c276d10e RESOLVED_IR _ZN21nsDependentCSubstring6RebindERK19nsACString_internaljj 1327 c276d10e RESOLVED_IR _ZN19nsACString_internal6AssignEPKcj 1336 c276d10e RESOLVED_DYN moz_free 1347 c276d10e RESOLVED_IR _Z14CallGetServiceRK4nsIDS1_PPv 1356 c276d10e RESOLVED_IR _ZN13nsCOMPtr_base18assign_from_helperERK15nsCOMPtr_helperRK4nsID 1366 c276d10e RESOLVED_IR _ZNK19nsACString_internal8FindCharEcj 1379 c276d10e RESOLVED_DYN moz_xmalloc 1400 c276d10e PREVAILING_DEF_IRONLY _ZN14nsIRDFResource11COMTypeInfoIiE4kIIDE 1440 c276d10e PREVAILING_DEF_IRONLY _ZN13nsRDFResource11gRDFServiceE 1420 c276d10e PREVAILING_DEF_IRONLY _ZN11nsISupports11COMTypeInfoIiE4kIIDE 344 c276d10e PREVAILING_DEF_IRONLY _ZTV13nsRDFResource 1470 c276d10e PREVAILING_DEF_IRONLY _ZN13nsRDFResource17gRDFServiceRefCntE 1428 c276d10e PREVAILING_DEF_IRONLY _ZN13nsIRDFService11COMTypeInfoIiE4kIIDE 1443 c276d10e PREVAILING_DEF_IRONLY _ZN21nsIRDFDelegateFactory11COMTypeInfoIiE4kIIDE 1411 c276d10e PREVAILING_DEF_IRONLY _ZN10nsIRDFNode11COMTypeInfoIiE4kIIDE 1460 c276d10e RESOLVED_IR _ZN12nsCharTraitsIcE12sEmptyBufferE 1076 c276d10e RESOLVED_IR _ZTV28nsCreateInstanceByContractID /abuild/jh/build-mozilla-new14-fatleto/toolkit/library/../xre/nsAppRunner.o 291 353 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo14QueryInterfaceERK4nsIDPPv 943 12997b04 PREVAILING_DEF_IRONLY _ZThn16_N12nsXULAppInfo14QueryInterfaceERK4nsIDPPv 861 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo14QueryInterfaceERK4nsIDPPv 382 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo6AddRefEv 949 12997b04 PREVAILING_DEF_IRONLY _ZThn16_N12nsXULAppInfo6AddRefEv 867 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo6AddRefEv 392 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo7ReleaseEv 953 12997b04 PREVAILING_DEF_IRONLY _ZThn16_N12nsXULAppInfo7ReleaseEv 871 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo7ReleaseEv 514 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo19GetLogConsoleErrorsEPi 962 12997b04 PREVAILING_DEF_IRONLY _ZThn16_N12nsXULAppInfo19GetLogConsoleErrorsEPi 529 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo19SetLogConsoleErrorsEi 967 12997b04 PREVAILING_DEF_IRONLY _ZThn16_N12nsXULAppInfo19SetLogConsoleErrorsEi 503 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo13GetInSafeModeEPi 957 12997b04 PREVAILING_DEF_IRONLY _ZThn16_N12nsXULAppInfo13GetInSafeModeEPi 814 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo25WriteMinidumpForExceptionEPv 922 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo25WriteMinidumpForExceptionEPv 826 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo33AppendObjCExceptionInfoToAppNotesEPv 927 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo33AppendObjCExceptionInfoToAppNotesEPv 4734 12997b04 PREVAILING_DEF_IRONLY _ZN18nsSingletonFactory6AddRefEv 4772 12997b04 PREVAILING_DEF_IRONLY _ZN18nsSingletonFactory11LockFactoryEi 4756 12997b04 PREVAILING_DEF_IRONLY _ZN18nsSingletonFactory14CreateInstanceEP11nsISupportsRK4nsIDPPv 683 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo12SetServerURLEP6nsIURL 890 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo12SetServerURLEP6nsIURL 759 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo19AnnotateCrashReportERK19nsACString_internalS2_ 905 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo19AnnotateCrashReportERK19nsACString_internalS2_ 485 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo18GetPlatformBuildIDER19nsACString_internal 465 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo13GetAppBuildIDER19nsACString_internal 475 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo18GetPlatformVersionER19nsACString_internal 455 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo10GetVersionER19nsACString_internal 445 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo5GetIDER19nsACString_internal 435 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo7GetNameER19nsACString_internal 424 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo9GetVendorER19nsACString_internal 741 12997b04 PREVAILING_DEF_IRONLY _ZN12nsXULAppInfo15SetMinidumpPathEP12nsILocalFile 900 12997b04 PREVAILING_DEF_IRONLY _ZThn8_N12nsXULAppInfo15SetMinidumpPathEP12nsILocalFile 4720 12997b04 PREVAILING_DEF_IRONLY _ZN18nsSingletonFactory14QueryInterfaceERK4nsIDPPv There should be no difference.
Sorry, this has turned out to be very weird GCC problem.