Repository navigation
Conversation
Different versions of simdutf may provide different implementations for
the same name, for example, the vendored version provides a symbol for
simdutf::find(),
simdutf_warn_unused const char *find(const char *start, const char *end,
char character) noexcept;
while upstream simdutf 9.3.3 inlines it,
simdutf_warn_unused simdutf_really_inline simdutf_constexpr23 const char *
find(const char *start, const char *end, char character) noexcept {
/* An inline function */
...
}
However, the vendored simdutf's headers are currently unconditionally
included for merve, regardless whether the shared simdutf is linked
against or not, leading to missing symbols at linking time like
mold: error: undefined symbol: simdutf::find(char const*, char const*, char)
>>> referenced by merve.cpp
>>> obj/deps/merve/libmerve.a(obj/deps/merve/merve.merve.o):(lexer::CJSLexer::addReexport(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned int))
>>> referenced by merve.cpp
>>> obj/deps/merve/libmerve.a(obj/deps/merve/merve.merve.o):(lexer::CJSLexer::addExport(std::__1::basic_string_view<char, std::__1::char_traits<char>>, unsigned int))
Do not include the vendored simdutf when compiling merve if shared
simdutf is used to ensure the headers match the linked library.
Signed-off-by: Yao Zi <me@ziyao.cc>
Collaborator
|
Review requested:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Different versions of simdutf may provide different implementations for the same name, for example, the vendored version provides a symbol for simdutf::find(),
simdutf_warn_unused const char *find(const char *start, const char *end,
char character) noexcept;
while upstream simdutf 9.3.3 inlines it,
simdutf_warn_unused simdutf_really_inline simdutf_constexpr23 const char * find(const char *start, const char end, char character) noexcept {
/ An inline function */
...
}
However, the vendored simdutf's headers are currently unconditionally included for merve, regardless whether the shared simdutf is linked against or not, leading to missing symbols at linking time like
mold: error: undefined symbol: simdutf::find(char const*, char const*, char)
Do not include the vendored simdutf when compiling merve if shared simdutf is used to ensure the headers match the linked library.