fix: don't prefix empty string when interning #5015
Merged
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description of changes:
Interning is broken on my platform, ubuntu24, ARM.
When trying to the following build
The actual build invocation will fail
objcopy expects every line to have
<old token> <new token>
, but it says that there is a line with only a single token. To debug this we dump a temporary copy of thelibcrypto.symbols
that is generated for prefixing.We see that there is indeed an empty symbol. Why?
libcrypto.symbols is generated with this line
Which will match all lines that contain at least one upper case character, and then print out `<token 3> s2n<token 3>
With the following script, we can check that lines that result in an empty token
So the problem is the undefined tokens.
Call-outs:
I don't understand why this isn't currently failing in our CI ...
Testing:
It now works on my platform, and existing CI should pass.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.