[Bug c++/57208] Latest chromium compilation fails with enabled LTO
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Bug 57208 depends on bug 57703, which changed state. Bug 57703 Summary: Assembler function definition moved to a different ltrans then call https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57703 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Bug 57208 depends on bug 57726, which changed state. Bug 57726 Summary: LTO verify_flow_info: error: control flow in the middle of basic block https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57726 What|Removed |Added Status|WAITING |RESOLVED Resolution|--- |WORKSFORME
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #32 from Martin Liška marxin.liska at gmail dot com --- Sorry for late answer, proposed patch works for me. Thanks, Martin (In reply to Ian Lance Taylor from comment #10) Created attachment 30323 [details] Possible patch Can you see if this patch fixes the problem?
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #30 from Martin Jambor jamborm at gcc dot gnu.org --- Author: jamborm Date: Thu Jun 27 13:49:28 2013 New Revision: 200468 URL: http://gcc.gnu.org/viewcvs?rev=200468root=gccview=rev Log: 2013-06-27 Martin Jambor mjam...@suse.cz PR lto/57208 * ipa-ref.h (ipa_maybe_record_reference): Declare. * ipa-ref.c (ipa_maybe_record_reference): New function. * cgraphclones.c (cgraph_create_virtual_clone): Use it. * ipa-cp.c (create_specialized_node): Record potential references from aggvals. * Makefile.in (ipa-ref.o): Add IPA_REF_H to dependencies. Modified: trunk/gcc/ChangeLog trunk/gcc/Makefile.in trunk/gcc/cgraphclones.c trunk/gcc/ipa-cp.c trunk/gcc/ipa-ref.c trunk/gcc/ipa-ref.h
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #31 from Martin Jambor jamborm at gcc dot gnu.org --- All right. I hope the PR can be closed now. Please re-open if the bug is istill present.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #29 from Martin Jambor jamborm at gcc dot gnu.org --- (In reply to Martin Liška from comment #28) Patch solved the problem for chromium ;) I will test libreoffice tomorrow. Great, I have submitted the patch to the mailing list then: http://gcc.gnu.org/ml/gcc-patches/2013-06/msg01422.html
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Martin Jambor jamborm at gcc dot gnu.org changed: What|Removed |Added CC||jamborm at gcc dot gnu.org --- Comment #26 from Martin Jambor jamborm at gcc dot gnu.org --- (In reply to Jan Hubicka from comment #25) Created attachment 30346 [details] conti This patch creates references where the referring node is the old one, not the newly created clone. I think that create_specialized_node should traverse aggvals and create the references. Hopefully I can prepare a patch doing that in the course of this afternoon (but of course feel free to make one yourself if you are faster).
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #27 from Martin Jambor jamborm at gcc dot gnu.org --- Created attachment 30355 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30355action=edit Proposed patch I'd suggest this (yet untested) patch.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #28 from Martin Liška marxin.liska at gmail dot com --- Patch solved the problem for chromium ;) I will test libreoffice tomorrow. (In reply to Martin Jambor from comment #27) Created attachment 30355 [details] Proposed patch I'd suggest this (yet untested) patch.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #25 from Jan Hubicka hubicka at ucw dot cz --- Updated patch. Honza
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #21 from Martin Liška marxin.liska at gmail dot com --- Ltrans grep marxin@marxinbox /ssd/chrome-dumps $ grep _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi chrome.ltrans* Binary file chrome.ltrans16.o matches chrome.ltrans16.s:leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rax chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: Called by: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (1.00 per call) _ZN3net12_GLOBAL__N_113DnsTCPAttempt5StartERKN4base8CallbackIFviEEE.lto_priv.62289/8859580 (0.62 per call) chrome.ltrans29.000i.cgraph:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (OnIOComplete) @0x7ff6f304a5f0 chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph: Called by: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (1.00 per call) _ZN3net12_GLOBAL__N_113DnsTCPAttempt5StartERKN4base8CallbackIFviEEE.lto_priv.62289/8859580 (0.62 per call) chrome.ltrans29.000i.cgraph:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (OnIOComplete) @0x7ff6f304a5f0 chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.000i.cgraph:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (OnIOComplete) @0x7ff6f304a5f0 chrome.ltrans29.000i.cgraph: References: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (addr) chrome.ltrans29.045i.cp:;; Function OnIOComplete (_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, funcdef_no=1376, decl_uid=894468, symbol_order=8859591) chrome.ltrans29.047i.inline:;; Function OnIOComplete (_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, funcdef_no=1376, decl_uid=894468, symbol_order=8859591) Binary file chrome.ltrans29.o matches chrome.ltrans29.s:leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi chrome.ltrans29.s:leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi chrome.ltrans29.s:.type _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, @function chrome.ltrans29.s:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi: chrome.ltrans29.s:.size _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, .-_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #22 from Martin Liška marxin.liska at gmail dot com --- Created attachment 30340 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30340action=edit chrome.ltrans16.s
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #23 from Jan Hubicka hubicka at gcc dot gnu.org --- It seems late optimizers translate cloning Bind to _ZN4base4BindIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviENS_8internal17UnretainedWrapperIS3_NS_8CallbackINS6_9BindStateINS6_13FunctorTraitsIT_E12RunnableTypeENSD_7RunTypeEFvNS6_19CallbackParamTraitsIT0_E11StorageTypeEEE14UnboundRunTypeEEESC_RKSH_.constprop.12480 Bind (struct { void DnsTCPAttempt::T2bc0a (struct DnsTCPAttempt *, int) * __pfn; long int __delta; } functor, const struct UnretainedWrapper p1) { void DnsTCPAttempt::T2bc0a (struct DnsTCPAttempt *, int) * method$__pfn; long int method$__delta; bb 2: method$__pfn_10 = MEM[(const struct )functor]; method$__delta_11 = MEM[(const struct )functor + 8]; _5 = operator new (40); _12 = MEM[(struct RefCountedThreadSafe *)_5 + 8B].D.4332; __base_ctor (_12); MEM[(struct BindStateBase *)_5]._vptr.BindStateBase = MEM[(void *)_ZTVN4base8internal13BindStateBaseE + 16B]; MEM[(struct BindState *)_5].D.961227._vptr.BindStateBase = MEM[(void *)_ZTVN4base8internal9BindStateINS0_15RunnableAdapterIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviEEEFvPS5_iEFvNS0_17UnretainedWrapperIS5_E + 16B]; MEM[(struct BindState *)_5 + 16B] = method$__pfn_10; MEM[(struct BindState *)_5 + 24B] = method$__delta_11; MEM[(struct BindState *)_5].p1_ = *p1_6(D); _13 = _8(D)-D.42504; __base_ctor (_13, _5); _8(D)-D.42504.polymorphic_invoke_ = Run; return _8(D); } into .globl _ZN4base4BindIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviENS_8internal17UnretainedWrapperIS3_NS_8CallbackINS6_9BindStateINS6_13FunctorTraitsIT_E12RunnableTypeENSD_7RunType .hidden _ZN4base4BindIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviENS_8internal17UnretainedWrapperIS3_NS_8CallbackINS6_9BindStateINS6_13FunctorTraitsIT_E12RunnableTypeENSD_7RunType .type _ZN4base4BindIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviENS_8internal17UnretainedWrapperIS3_NS_8CallbackINS6_9BindStateINS6_13FunctorTraitsIT_E12RunnableTypeENSD_7RunType _ZN4base4BindIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviENS_8internal17UnretainedWrapperIS3_NS_8CallbackINS6_9BindStateINS6_13FunctorTraitsIT_E12RunnableTypeENSD_7RunTypeEFvNS6_19Callbac .LFB10639: .cfi_startproc pushq %rbp .cfi_def_cfa_offset 16 .cfi_offset 6, -16 movq%rcx, %rbp pushq %rbx .cfi_def_cfa_offset 24 .cfi_offset 3, -24 movq%rdi, %rbx movl$40, %edi subq$8, %rsp .cfi_def_cfa_offset 32 call_Znwm@PLT movl$0, 8(%rax) movq%rax, %rsi leaq 16+_ZTVN4base8internal9BindStateINS0_15RunnableAdapterIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviEEEFvPS5_iEFvNS0_17UnretainedWrapperIS5_E.lto_priv.73096(%rip), %rax movq$0, 24(%rsi) movq%rbx, %rdi movq%rax, (%rsi) leaq_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rax movq%rax, 16(%rsi) movq0(%rbp), %rax movq%rax, 32(%rsi) call_ZN4base8internal12CallbackBaseC2EPNS0_13BindStateBaseE leaq _ZN4base8internal7InvokerILi1ENS0_9BindStateINS0_15RunnableAdapterIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviEEEFvPS6_iEFvNS0_17UnretainedWrapperIS6_ESB_E3RunEPNS0_13Bind movq%rax, 8(%rbx) addq$8, %rsp .cfi_def_cfa_offset 24 movq%rbx, %rax popq%rbx .cfi_def_cfa_offset 16 popq%rbp .cfi_def_cfa_offset 8 ret .cfi_endproc .LFE10639: So someone folds MEM[(struct BindStateBase *)_5]._vptr.BindStateBase = MEM[(void *)_ZTVN4base8internal13BindStateBaseE + 16B]; MEM[(struct BindState *)_5].D.961227._vptr.BindStateBase = MEM[(void *)_ZTVN4base8internal9BindStateINS0_15RunnableAdapterIMN3net12_GLOBAL__N_113DnsTCPAttemptEFviEEEFvPS5_iEFvNS0_17UnretainedWrapperIS5_E + 16B]; MEM[(struct BindState *)_5 + 16B] = method$__pfn_10; MEM[(struct BindState *)_5 + 24B] = method$__delta_11; MEM[(struct BindState *)_5].p1_ = *p1_6(D); into reference to the symbol that is in other ltrans and not seen by partitioning...
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #24 from Jan Hubicka hubicka at ucw dot cz --- does this patch help?
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #18 from Jan Hubicka hubicka at gcc dot gnu.org --- What about trying ulimit -m to increase the number of FDs? (it requires root)
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #19 from Jan Hubicka hubicka at gcc dot gnu.org --- chrome.wpa.000i.cgraph: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi/8859591 (OnIOComplete) @0x7f80e10be980 Type: function definition analyzed Visibility: force_output prevailing_def_ironly Address is taken. References: Referring: _ZN3net12_GLOBAL__N_113DnsTCPAttempt12DoSendLengthEi/8859587 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt11DoSendQueryEi/8859588 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt12DoReadLengthEi/8859589 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt14DoReadResponseEi/8859590 (addr)_ZN3net12_GLOBAL__N_113DnsTCPAttempt5StartERKN4base8CallbackIFviEEE/8859580 (addr) Read from file: obj/net/dns/net.dns_transaction.o Availability: available Function flags: Called by: Calls: _ZN3net12_GLOBAL__N_113DnsTCPAttempt6DoLoopEi/8859585 (1.00 per call) Has 1 outgoing edges for indirect calls. marxin@marxinbox /ssd/chromium-2/src/out/Release $ grep _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi *.s chrome.ltrans16.s:leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rax chrome.ltrans29.s:leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi chrome.ltrans29.s:leaq _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi(%rip), %rsi chrome.ltrans29.s:.type _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, @function chrome.ltrans29.s:_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi: chrome.ltrans29.s:.size _ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi, .-_ZN3net12_GLOBAL__N_113DnsTCPAttempt12OnIOCompleteEi This actually looks like partitioning problem. I misread the dump ysterday - it is a local function and it seems that somehow we manage to get referenc eto it from ltrans16 while it is static to ltrans29. Can I see .cgraph dump of ltrans16? If you have -fdump-tree-all dumps (or you can just rebuild ltrans16 with this dump) it should be possible to grep the dumps to work out if the symbol appears as a result of some constant folding.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #20 from Martin Liška marxin.liska at gmail dot com --- Link to ltrans16.cgraph dump: https://docs.google.com/file/d/0B0pisUJ80pO1c0JTTmR5Z1pQb28/edit?usp=sharing
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org --- int main() {} #define A(n) __attribute__ ((used, externally_visible)) int \ tti \ ## \ ## ##n() {} #define B(n) A(n##0)A(n##1)A(n##2)A(n##3)A(n##4)A(n##5)A(n##6)A(n##7)A(n##8)A(n##9) #define C(n) B(n##0)B(n##1)B(n##2)B(n##3)B(n##4)B(n##5)B(n##6)B(n##7)B(n##8)B(n##9) #define D(n) C(n##0)C(n##1)C(n##2)C(n##3)C(n##4)C(n##5)C(n##6)C(n##7)C(n##8)C(n##9) #define E(n) D(n##0)D(n##1)D(n##2)D(n##3)D(n##4)D(n##5)D(n##6)D(n##7)D(n##8)D(n##9) E(0)E(1)E(2)E(3)E(4)E(5)E(6) (well, if you don't mind 1 as opposed to 1 etc.).
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #15 from Martin Liška marxin.liska at gmail dot com --- I did a small workaround for ELF overflow: --param lto-partitions=64. Following errors were met: `_ZN10disk_cache15SimpleEntryImpl17WriteDataInternalEiiPN3net8IOBufferEiRKN4base8CallbackIFviEEEb' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/net/disk_cache/simple/net.simple_entry_impl.o (symbol from plugin) `_ZN10disk_cache15SimpleEntryImpl25CreationOperationCompleteERKN4base8CallbackIFviEEERKNS1_9TimeTicksE10scoped_ptrIPNS_22SimpleSynchronousEntryENS1_14DefaultDeleterISC_EEESA_IiNSD_IiEEEPPNS_5EntryE' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/net/disk_cache/simple/net.simple_entry_impl.o (symbol from plugin) `_ZN7content20ShaderDiskCacheEntry12OnOpCompleteEi' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/content/browser/gpu/content_browser.shader_disk_cache.o (symbol from plugin) `_ZN7content19TraceControllerImpl29OnTraceBufferPercentFullReplyEf' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/content/browser/tracing/content_browser.trace_controller_impl.o (symbol from plugin) `_ZN7content19TraceControllerImpl15OnEndTracingAckERKSt6vectorISsSaISsEE' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/content/browser/tracing/content_browser.trace_controller_impl.o (symbol from plugin) `_ZN3net15ViewCacheHelper12OnIOCompleteEi' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/net/url_request/net.view_cache_helper.o (symbol from plugin) `_ZN15quota_internals19QuotaInternalsProxy17DidGetGlobalUsageEN5quota11StorageTypeEll' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/chrome/browser/ui/webui/quota_internals/browser_ui.quota_internals_proxy.o (symbol from plugin) `_ZN8appcache22AppCacheResponseWriter21OnCreateEntryCompleteEPPNS_26AppCacheDiskCacheInterface5EntryEi' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/webkit/support/../appcache/webkit_storage.appcache_response.o (symbol from plugin) `_ZN5media18AlsaPcmInputStream9ReadAudioEv' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/media/audio/linux/media.alsa_input.o (symbol from plugin) `_ZN16sync_file_system20DriveFileSyncService34DidGetDirectoryContentForBatchSyncERKN4base8CallbackIFvNS_14SyncStatusCodeRK4GURLRKSslN11google_apis14GDataErrorCodeE10scoped_ptrINSD_12ResourceListENS1_14DefaultDeleterISG_EEE' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/chrome/browser/sync_file_system/browser.drive_file_sync_service.o (symbol from plugin) `_ZN16sync_file_system5drive28LocalChangeProcessorDelegate19DidApplyLocalChangeERKN4base8CallbackIFvNS_14SyncStatusCodeN11google_apis14GDataErrorCodeES4_' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/chrome/browser/sync_file_system/drive/browser.local_change_processor_delegate.o (symbol from plugin) `_ZN8remoting22RectangleUpdateDecoder12OnPacketDoneEbN4base4TimeERKNS1_8CallbackIFvvEEE' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/remoting/client/remoting_client.rectangle_update_decoder.o (symbol from plugin) `_ZN17AgentHostDelegate11OnBytesReadE13scoped_refptrIN3net8IOBufferEEi' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.gnu.linkonce.t._ZN17AgentHostDelegate11OnBytesReadE13scoped_refptrIN3net8IOBufferEEi' of obj/chrome/browser/devtools/debugger.devtools_adb_bridge.o (symbol from plugin) `_ZN8remoting8protocol16ConnectionToHost20OnChannelInitializedEb' referenced in section `.text' of chrome.ltrans16.ltrans.o: defined in discarded section `.text' of obj/remoting/protocol/remoting_protocol.connection_to_host.o (symbol from plugin) chrome.ltrans16.ltrans.o: In function `base::Callbackbase::internal::BindStatebase::internal::FunctorTraitsvoid (net::(anonymous namespace)::DnsTCPAttempt::*)(int)::RunnableType, base::internal::FunctorTraitsvoid (net::(anonymous namespace)::DnsTCPAttempt::*)(int)::RunType, void (base::internal::CallbackParamTraitsbase::internal::UnretainedWrappernet::(anonymous namespace)::DnsTCPAttempt ::StorageType)::UnboundRunType base::Bindvoid (net::(anonymous namespace)::DnsTCPAttempt::*)(int), base::internal::UnretainedWrappernet::(anonymous namespace)::DnsTCPAttempt (void (net::(anonymous namespace)::DnsTCPAttempt::*)(int), base::internal::UnretainedWrappernet::(anonymous namespace)::DnsTCPAttempt const) [clone .constprop.12480]': chrome.ltrans16.o:(.text+0x635f8):
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #16 from Martin Liška marxin.liska at gmail dot com --- Looks like ld.gold has a problem with large amount of files: FAILED: flock linker.lock g++ -Wl,-z,now -Wl,-z,relro -pthread -Wl,-z,noexecstack -fPIC -pie -L. -flto=9 -fno-fat-lto-objects -O2 --param lto-partitions=64 -o chrome -Wl,--start-group obj/chrome/app/chrome.chrome_exe_main_gtk.o obj/chrome/app/chrome.chrome_main.o obj/chrome/app/chrome.chrome_main_delegate.o obj/chrome/libinstaller_util.a obj/media/libmedia_sse.a obj/third_party/icu/libicuuc.a obj/third_party/libjingle/libjingle.a obj/skia/libskia_opts.a obj/third_party/icu/libicudata.a obj/device/libdevice_media_transfer_protocol.a obj/native_client/src/trusted/service_runtime/arch/x86/libservice_runtime_x86_common.a obj/chrome/libservice.a obj/chrome/librenderer.a obj/webkit/support/libglue.a obj/content/libcontent_worker.a obj/third_party/libwebp/libwebp_utils.a obj/third_party/zlib/libminizip.a obj/chrome/browser/performance_monitor/libperformance_monitor.a obj/third_party/leveldatabase/libleveldatabase.a obj/native_client/src/trusted/service_runtime/libenv_cleanser.a obj/sandbox/libc_urandom_override.a obj/chrome/libbrowser.a obj/ppapi/libppapi_host.a obj/sync/libsync_core.a obj/gpu/libgles2_cmd_helper.a obj/third_party/smhasher/libcityhash.a obj/third_party/libphonenumber/libphonenumber.a obj/chrome/app/policy/libpolicy.a obj/webkit/support/libplugins_common.a obj/native_client/src/trusted/validator_x86/libnccopy_x86_64.a obj/webkit/support/libglue_common.a obj/webkit/renderer/compositor_bindings/libwebkit_compositor_support.a obj/third_party/smhasher/libmurmurhash3.a obj/content/libcontent_gpu.a obj/native_client/src/trusted/threading/libthread_interface.a obj/media/libmedia_mmx.a obj/ipc/libipc.a obj/third_party/libxslt/libxslt.a obj/remoting/libremoting_client.a obj/third_party/ots/libots.a obj/base/libsymbolize.a obj/native_client/src/trusted/validator/libvalidators.a obj/chrome/libbrowser_extensions.a obj/skia/libskia_opts_ssse3.a obj/third_party/protobuf/libprotobuf_lite.a obj/third_party/WebKit/Source/core/core.gyp/libwebcore_platform.a obj/ui/surface/libsurface.a obj/third_party/WebKit/Source/WebKit/chromium/libwebkit.a obj/native_client/src/trusted/validator/x86/64/libncvalidate_x86_64.a obj/third_party/jsoncpp/libjsoncpp.a obj/google_apis/libgoogle_apis.a obj/chrome/libnacl.a obj/third_party/libphonenumber/libphonenumber_without_metadata.a obj/chrome/libdebugger.a obj/v8/tools/gyp/libv8_snapshot.a obj/ui/native_theme/libnative_theme.a obj/third_party/libusb/libusb.a obj/content/libcontent_common_child.a obj/native_client/src/trusted/nacl_base/libnacl_base.a obj/base/libbase_static.a obj/native_client/src/shared/imc/libimc.a obj/chrome/libfeedback_proto.a obj/components/libbrowser_context_keyed_service.a obj/components/libweb_modal.a obj/chrome/libapps.a obj/third_party/WebKit/Source/core/core.gyp/libwebcore_platform_geometry.a obj/components/libuser_prefs.a obj/content/libcontent_utility.a obj/third_party/libevent/libevent.a obj/sandbox/libseccomp_bpf.a obj/build/linux/libpci.a obj/ui/gl/libgl_wrapper.a obj/third_party/mt19937ar/libmt19937ar.a obj/third_party/angle/src/libtranslator_common.a obj/ui/message_center/libmessage_center.a obj/third_party/libpng/libpng.a obj/components/libwebdata_common.a obj/third_party/opus/libopus.a obj/sync/libsync_notifier.a obj/ui/snapshot/libsnapshot.a obj/native_client/src/trusted/validator/x86/libncval_base_x86_64.a obj/webkit/support/libwebkit_media.a obj/third_party/libwebp/libwebp_dsp.a obj/third_party/harfbuzz-ng/libharfbuzz-ng.a obj/chrome/app/policy/libcloud_policy_proto_generated_compile.a obj/base/allocator/liballocator_extension_thunks.a obj/remoting/libremoting_jingle_glue.a obj/native_client/src/trusted/service_runtime/libnacl_error_code.a obj/third_party/snappy/libsnappy.a obj/cc/libcc.a obj/third_party/libjingle/libjingle_p2p_constants.a obj/third_party/cld/libcld.a obj/third_party/libxml/libxml2.a obj/webkit/support/libplugins.a obj/chrome/libvariations_seed_proto.a obj/remoting/proto/libchromotocol_proto_lib.a obj/native_client/src/trusted/simple_service/libsimple_service.a obj/chrome/libsync_file_system_proto.a obj/gpu/libdisk_cache_proto.a obj/third_party/WebKit/Source/core/core.gyp/libwebcore_html.a obj/native_client/src/trusted/interval_multiset/libnacl_interval.a obj/build/linux/libspeechd.a obj/sync/libsync_internal_api.a obj/third_party/hunspell/libhunspell.a obj/chrome/libplugin.a obj/ui/compositor/libcompositor.a obj/base/libbase_prefs.a obj/ui/web_dialogs/libweb_dialogs.a obj/native_client/src/trusted/desc/libdesc_wrapper.a obj/third_party/angle/src/libpreprocessor.a obj/gpu/libgpu_ipc.a obj/device/libdevice_usb.a obj/sandbox/libsuid_sandbox_client.a obj/tools/json_schema_compiler/libapi_gen_util.a obj/third_party/cacheinvalidation/libcacheinvalidation.a obj/webkit/support/libwebkit_base.a obj/remoting/libremoting_base.a
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #17 from Martin Liška marxin.liska at gmail dot com --- I created a bug for gold linker in binutils bugzilla: http://sourceware.org/bugzilla/show_bug.cgi?id=15660
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Jan Hubicka hubicka at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2013-06-19 CC||hubicka at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #8 from Jan Hubicka hubicka at gcc dot gnu.org --- This seems to be ELF or libelf limitation. The .o produced is corrupt apparently because we produce too many function sections. The second largest ltrans unit is over 2, so perhaps elf is limited to 32000 sections?
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Ian Lance Taylor ian at airs dot com changed: What|Removed |Added CC||ian at airs dot com --- Comment #9 from Ian Lance Taylor ian at airs dot com --- It looks like simple_object_elf_write_ehdr in libiberty/simple-object-elf.c does not correctly handle the case of writing an ELF object with more than 65,280 sections. That may be the problem here.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #10 from Ian Lance Taylor ian at airs dot com --- Created attachment 30323 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30323action=edit Possible patch Can you see if this patch fixes the problem?
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #11 from Jan Hubicka hubicka at gcc dot gnu.org --- OK, self contained way to reproduce the bug: evans:/tmp/:[1]# cat t.c #include stdio.h main() { int i; printf (int main(){}\n); for (i=0;i7;i++) printf (__attribute__ ((used, externally_visible)) int tti%i(){}\n, i); } evans:/tmp/:[1]# gcc t.c evans:/tmp/:[1]# ./a.out tt.c evans:/tmp/:[1]# /abuild/jh/trunk-install/bin/gcc -O2 -flto tt.c --param lto-partitions=1 takes a while. I am testing the patch.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Jakub Jelinek jakub at gcc dot gnu.org changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #12 from Jakub Jelinek jakub at gcc dot gnu.org --- Just use preprocessor rather than proglet to generate the testcase ;).
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #13 from Jan Hubicka hubicka at gcc dot gnu.org --- progret needs a fraction of brain capacity than the preprocessor generator and I doubt it would be faster :))) anyway I seem to be still getting error with the patch evans:/tmp/:[0]# /abuild/jh/trunk-install/bin/gcc -O2 -flto tt.c --param lto-partitions=1 lto1: error: ELF section name out of range (null):0: confused by earlier errors, bailing out lto-wrapper: /abuild/jh/trunk-install/bin/gcc returned 1 exit status /abuild/jh/trunk-install/lib/gcc/x86_64-unknown-linux-gnu/4.9.0/../../../../x86_64-unknown-linux-gnu/bin/ld: fatal error: lto-wrapper failed collect2: error: ld returned 1 exit status
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #7 from Martin Liška marxin.liska at gmail dot com --- I've updated to latest gcc, all previous bugs are irrelevant: I mixed different -Ox cflags and chromium build system is full of hacks (they use gold as a primary linker, but bfd is used for some stuff, I used just bfd in my compilation). gcc --version: gcc (GCC) 4.9.0 20130617 (experimental) I finally reached WPA stage of LTO, memory usage was about 8GB for ld and 11 GB for lto1. lto1 was running for about 20 minutes and following error occured: lto1: error: ELF section name out of range lto1: internal compiler error: Segmentation fault 0x85e0bf crash_signal ../../gcc/toplev.c:333 0xd7f0dd htab_delete ../../libiberty/hashtab.c:419 0x50a41c lto_file_read ../../gcc/lto/lto.c:2824 0x50a41c read_cgraph_and_symbols ../../gcc/lto/lto.c:3401 0x50a41c lto_main() ../../gcc/lto/lto.c:3834 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. lto-wrapper: g++ returned 1 exit status /home/marxin/gcc-mirror/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/ld: lto-wrapper failed collect2: error: ld returned 1 exit status ninja: build stopped: subcommand failed. Do you have any ideas?
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 Igor Zamyatin izamyatin at gmail dot com changed: What|Removed |Added CC||izamyatin at gmail dot com --- Comment #5 from Igor Zamyatin izamyatin at gmail dot com --- Probably it is ok now due to http://gcc.gnu.org/ml/gcc-patches/2013-06/msg00198.html
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #6 from Martin Liška marxin.liska at gmail dot com --- I've just tested latest gcc and the same message is still received by compiler.
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #3 from Martin Liška marxin.liska at gmail dot com --- I had a problem with linker, looks like chrome build system uses both linkers. I hacked build system to use just ld.bfd. gcc revision: 197652. I know it's about 2 months old, same error is given by gcc from about 15th May 2013. Latest gcc suffers from a different failure that will be added in following comment. ld --version: GNU ld (GNU Binutils) 2.23.52.20130526 Failure: g++ -Wl,-z,now -Wl,-z,relro -pthread -Wl,-z,noexecstack -fPIC -Wl,-O1 -Wl,--as-needed -flto -fno-fat-lto-objects -o mksnapshot.x64 -Wl,--start-group obj/v8/src/mksnapshot.x64.mksnapshot.o obj/v8/tools/gyp/libv8_nosnapshot.x64.a obj/v8/tools/gyp/libv8_base.x64.a -Wl,--end-group -fdump-ipa-all --save-temps lto1: internal compiler error: in inline_call, at ipa-inline-transform.c:267 0x709296 inline_call(cgraph_edge*, bool, veccgraph_edge*, va_heap, vl_ptr*, int*, bool) ../../gcc/ipa-inline-transform.c:263 0x6fb118 inline_small_functions ../../gcc/ipa-inline.c:1613 0x6fb118 ipa_inline ../../gcc/ipa-inline.c:1794 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. lto-wrapper: g++ returned 1 exit status [Leaving LTRANS mksnapshot.x64.ltrans.out] [Leaving LTRANS /tmp/ccIviE1Z.args] /home/marxin/gcc-mirror/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/ld: lto-wrapper failed collect2: error: ld returned 1 exit status Dump: https://docs.google.com/file/d/0B0pisUJ80pO1ck5sUmF5Q0k1Mmc/edit?usp=sharing Thanks, Martin
[Bug c++/57208] Latest chromium compilation fails with enabled LTO
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #4 from Martin Liška marxin.liska at gmail dot com --- gcc --version: HEAD (June 3rd, 2013) Failure: g++ -Wl,-z,now -Wl,-z,relro -pthread -Wl,-z,noexecstack -fPIC -Wl,-O1 -Wl,--as-needed -flto -fno-fat-lto-objects -o protoc -Wl,--start-group obj/third_party/protobuf/src/google/protobuf/compiler/protoc.code_generator.o obj/third_party/protobuf/src/google/protobuf/compiler/protoc.command_line_interface.o obj/third_party/protobuf/src/google/protobuf/compiler/protoc.plugin.o obj/third_party/protobuf/src/google/protobuf/compiler/protoc.plugin.pb.o obj/third_party/protobuf/src/google/protobuf/compiler/protoc.subprocess.o obj/third_party/protobuf/src/google/protobuf/compiler/protoc.zip_writer.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_enum.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_enum_field.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_extension.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_field.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_file.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_generator.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_helpers.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_message.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_message_field.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_primitive_field.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_service.o obj/third_party/protobuf/src/google/protobuf/compiler/cpp/protoc.cpp_string_field.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_enum.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_enum_field.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_extension.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_field.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_file.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_generator.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_helpers.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_message.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_message_field.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_primitive_field.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_service.o obj/third_party/protobuf/src/google/protobuf/compiler/java/protoc.java_string_field.o obj/third_party/protobuf/src/google/protobuf/compiler/python/protoc.python_generator.o obj/third_party/protobuf/src/google/protobuf/compiler/protoc.main.o obj/third_party/protobuf/libprotobuf_full_do_not_use.a -Wl,--end-group lto1: internal compiler error: in get_alias_symbol, at lto-cgraph.c:921 0x77d283 get_alias_symbol ../../gcc/lto-cgraph.c:921 0x77ff45 input_node ../../gcc/lto-cgraph.c:1012 0x77ff45 input_cgraph_1 ../../gcc/lto-cgraph.c:1176 0x77ff45 input_symtab() ../../gcc/lto-cgraph.c:1449 0x507cda read_cgraph_and_symbols ../../gcc/lto/lto.c:2967 0x507cda lto_main() ../../gcc/lto/lto.c:3327 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See http://gcc.gnu.org/bugs.html for instructions. lto-wrapper: g++ returned 1 exit status /home/marxin/gcc-mirror/libexec/gcc/x86_64-unknown-linux-gnu/4.9.0/ld: lto-wrapper failed collect2: error: ld returned 1 exit status Dump: https://docs.google.com/file/d/0B0pisUJ80pO1MWZRMU5MZ3BYWE0/edit?usp=sharing Thank you, Martin
[Bug c++/57208] Latest chromium compilation fails with enabled LTO [4.8.1/4.9.0]
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #1 from Martin Liška marxin.liska at gmail dot com 2013-05-08 12:32:24 UTC --- Created attachment 30054 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30054 Savetemps dump
[Bug c++/57208] Latest chromium compilation fails with enabled LTO [4.8.1/4.9.0]
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57208 --- Comment #2 from Martin Liška marxin.liska at gmail dot com 2013-05-08 12:32:51 UTC --- Created attachment 30055 -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=30055 common.gypi - build configuration