-
Notifications
You must be signed in to change notification settings - Fork 16
Open
Labels
bughacktoberfes-acceptedPRs from these issues will be considered happily for hacktoberfestPRs from these issues will be considered happily for hacktoberfesthelp-neededNeeds some help from SMENeeds some help from SME
Description
Context: ugexe/zef#457 (comment), ugexe/zef#457
Summary: LibraryMake percent encoding causes installs to fail on systems that use llvm-lld.
I assume you are on an architecture where the linker is LLVM ld,
otherwise known as ld-lld in OpenBSD (some older architectures
still use ld-bfd).
In llvm/lib/Support/Path.cpp, there is code that acts just like you describe:
void createUniquePath(const Twine &Model, SmallVectorImpl<char> &ResultPath,
bool MakeAbsolute) {
...
// Replace '%' with random chars.
for (unsigned i = 0, e = ModelStorage.size(); i != e; ++i) {
if (ModelStorage[i] == '%')
ResultPath[i] = "0123456789abcdef"[sys::Process::GetRandomNumber() & 15];
}
It apppears in the LLVM universe if you try to create a file with % in the
name, it has a different interpretation of what that % means, different than
what you want it to mean.
https://docs.hdoc.io/hdoc/llvm-project/f1FB0DB2307A8013C.html
Other than that, I can find no documentation.
When I try to install any module that uses LibraryMake (Digest::SHA1::Native) install fails because llvm-lld replaces the percent with a random character.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bughacktoberfes-acceptedPRs from these issues will be considered happily for hacktoberfestPRs from these issues will be considered happily for hacktoberfesthelp-neededNeeds some help from SMENeeds some help from SME