New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
replace usage of slow slist #5109
Conversation
1df1438
to
b6822b5
Compare
About 10% faster when compiling multilib archives. |
From the autotest failures, it appears that some symbols are not getting reset. |
dcdfc58
to
b6822b5
Compare
Unfortunately it's a bigger issue. Some obj implementations (macho, mscoff) retain a pointer to the symbols and defer writing the symbol table until all sections are written. |
de4c4ed
to
c245d21
Compare
c245d21
to
2fe7052
Compare
Updated, I had overlooked an spurious symbol_reset from an earlier approach to fix this issue. |
2fe7052
to
beb4de4
Compare
This seems to be a bit slower than directly resetting the symbols (prolly b/c they are out of cache when the obj file is finished), but it's dead simple and compiles static libraries 15-20% faster than w/ the current slist_reset of all symbols. |
38afb06
to
0cc754a
Compare
Found the issue with OMF, forgot to add pubdef symbols to the reset list. |
- directly reset symbols after putting them out to the obj file - it's done in the obj implementations b/c some (macho, mscoff) defer writing the symbol table until all sections are written
0cc754a
to
0171090
Compare
Fixed the merge conflict. |
worksforme |
Auto-merge toggled on |
This introduces a regression: |
This pull request fixed a regression: Good news for a change! |
(it's very cheap when they are still in cache)
in outfixlist
(e.g. locals, to SCenum/SCstruct symbols)