[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug ld/11168] ld.exe CPU time >75 hours
From: |
amodra at gmail dot com |
Subject: |
[Bug ld/11168] ld.exe CPU time >75 hours |
Date: |
17 Jan 2010 14:59:34 -0000 |
------- Additional Comments From amodra at gmail dot com 2010-01-17 14:59
-------
$ grep '\.section' main2.s | sort | uniq | wc -l
48940
So, we have a large number of sections. COFF uses a 16 bit field in the file
symbol structure to store section numbers. BFD code in various places tests
that the value is non-negative, so we only support 32k sections. This results
in a large number of symbols not being recognised properly. Symbols that are
defined are seen as undefined, and the linker emits a large number of errors,
eg.
main2.o:main2.cpp:(.text$_ZN5ClassILi0ELi8EEC2Ev[__ZN5ClassILi0ELi8EEC2Ev]+0x8):
undefined reference to `vtable for Class<0, 8>'
It turns out that printing these errors takes a huge amount of time due to BFD
trying to find line numbers for the error. This, and other parts of the COFF
support use algorithms that are O(num_syms)^2*O(num_sections).
I didn't leave my link process running long enough to see if it terminated.
Obviously, we don't support more than 32k sections for COFF (and hence PE).
--
http://sourceware.org/bugzilla/show_bug.cgi?id=11168
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.
- [Bug ld/11168] New: ld.exe CPU time >75 hours, jmihalicza at gmail dot com, 2010/01/14
- [Bug ld/11168] ld.exe CPU time >75 hours, jmihalicza at gmail dot com, 2010/01/14
- [Bug ld/11168] ld.exe CPU time >75 hours, hjl dot tools at gmail dot com, 2010/01/14
- [Bug ld/11168] ld.exe CPU time >75 hours, amodra at gmail dot com, 2010/01/14
- [Bug ld/11168] ld.exe CPU time >75 hours, jmihalicza at gmail dot com, 2010/01/15
- [Bug ld/11168] ld.exe CPU time >75 hours, amodra at gmail dot com, 2010/01/15
- [Bug ld/11168] ld.exe CPU time >75 hours, jmihalicza at gmail dot com, 2010/01/15
- [Bug ld/11168] ld.exe CPU time >75 hours,
amodra at gmail dot com <=
- [Bug ld/11168] ld.exe CPU time >75 hours, cvs-commit at gcc dot gnu dot org, 2010/01/18
- [Bug ld/11168] ld.exe CPU time >75 hours, amodra at gmail dot com, 2010/01/18
- [Bug ld/11168] ld.exe CPU time >75 hours, jmihalicza at gmail dot com, 2010/01/23