-
Notifications
You must be signed in to change notification settings - Fork 15
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
LTO support #30
Comments
It could be caused by multiple static constructors happening in undefined order. Something described on: https://isocpp.org/wiki/faq/ctors#static-init-order-on-first-use That should be created by a function, which would first ensure static storage (parsermap_t) is initialized, before anyone else tries to insert items into it. I have tries few experiments, but that leads to non-functional ethq. |
Pushed my attempts to PR #31 draft. My attempt does not crash, but does not work anyway. I failed to spot why. |
potentially fixed by 313a343 |
It does not seem to be changed, when I include also |
I can't replicate that here. Has the stack trace changed? |
no, it does not crash anymore, but does not parse the driver also. It fails to match_total for my driver. As soon as I remove -flto flag, the parsing works. It ends now with: |
It seems it fails on if (total.first.mark_count() == 0) return false; in RegexParser::match_total. Depending RegexParser static members does not yet seem to be constructed. |
Updated PR #31 with small change, after which it finally works even with LTO enabled. |
The code crashes on start up with LTO enabled (
-flto
inCXXFLAGS
) as the list of parsers is being constructed. The reason is unknown:https://bugzilla.redhat.com/show_bug.cgi?id=2263560#c2
The text was updated successfully, but these errors were encountered: