Bug 13230 - IRONLY_EXP incorrectly reported as IRONLY by gold when fat LTO files are used
Summary: IRONLY_EXP incorrectly reported as IRONLY by gold when fat LTO files are used
Status: RESOLVED INVALID
Alias: None
Product: binutils
Classification: Unclassified
Component: ld (show other bugs)
Version: 2.24
: P2 normal
Target Milestone: ---
Assignee: unassigned
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-27 23:54 UTC by Jan Hubicka
Modified: 2011-09-28 12:32 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Hubicka 2011-09-27 23:54:41 UTC
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>
Comment 1 Jan Hubicka 2011-09-28 00:01:51 UTC
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.
Comment 2 Jan Hubicka 2011-09-28 12:32:44 UTC
Sorry, this has turned out to be very weird GCC problem.