Skip to content

Commit

Permalink
clang-14: attempt to fix i386 build
Browse files Browse the repository at this point in the history
  • Loading branch information
jmroot committed Jul 2, 2022
1 parent a95f94c commit 2fda126
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 6 deletions.
3 changes: 2 additions & 1 deletion lang/llvm-14/Portfile
Expand Up @@ -134,7 +134,8 @@ patchfiles-append \
0015-Fixup-libstdc-header-search-paths-for-older-versions.patch \
0019-10.6-and-less-use-emulated-TLS-before-10.7.patch \
0025-lldb-add-defines-needed-for-older-SDKs.patch \
MachOWriter.cpp-types.patch
MachOWriter.cpp-types.patch \
SyntheticSections.cpp-types.patch

if {${os.platform} eq "darwin" && ${os.major} < 14} {
patchfiles-append \
Expand Down
12 changes: 7 additions & 5 deletions lang/llvm-14/files/MachOWriter.cpp-types.patch
@@ -1,14 +1,16 @@
The result of pointer arithmetic is of type ptrdiff_t, which is not
necessarily the same underlying type as ssize_t.

--- a/llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp 2022-06-11 00:47:36.000000000 +1000
+++ b/llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp 2022-06-16 23:41:23.000000000 +1000
@@ -566,7 +566,7 @@ void MachOWriter::writeCodeSignatureData
--- llvm-project-14.0.6.src/llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp.orig 2022-06-23 02:46:24.000000000 +1000
+++ llvm-project-14.0.6.src/llvm/tools/llvm-objcopy/MachO/MachOWriter.cpp 2022-07-02 20:05:12.000000000 +1000
@@ -566,8 +566,8 @@ void MachOWriter::writeCodeSignatureData
uint8_t *CurrHashWritePosition = HashWriteStart;
while (CurrHashReadPosition < HashReadEnd) {
StringRef Block(reinterpret_cast<char *>(CurrHashReadPosition),
- std::min(HashReadEnd - CurrHashReadPosition,
+ std::min(static_cast<ssize_t>(HashReadEnd - CurrHashReadPosition),
static_cast<ssize_t>(CodeSignature.BlockSize)));
- static_cast<ssize_t>(CodeSignature.BlockSize)));
+ std::min(static_cast<size_t>(HashReadEnd - CurrHashReadPosition),
+ static_cast<size_t>(CodeSignature.BlockSize)));
SHA256 Hasher;
Hasher.update(Block);
StringRef Hash = Hasher.final();
12 changes: 12 additions & 0 deletions lang/llvm-14/files/SyntheticSections.cpp-types.patch
@@ -0,0 +1,12 @@
--- llvm-project-14.0.6.src/lld/MachO/SyntheticSections.cpp.orig 2022-06-23 02:46:24.000000000 +1000
+++ llvm-project-14.0.6.src/lld/MachO/SyntheticSections.cpp 2022-07-02 20:06:18.000000000 +1000
@@ -1190,7 +1190,8 @@ void CodeSignatureSection::writeHashes(u
uint8_t *hashes = codeEnd + allHeadersSize;
while (code < codeEnd) {
StringRef block(reinterpret_cast<char *>(code),
- std::min(codeEnd - code, static_cast<ssize_t>(blockSize)));
+ std::min(static_cast<size_t>(codeEnd - code),
+ static_cast<size_t>(blockSize)));
SHA256 hasher;
hasher.update(block);
StringRef hash = hasher.final();

0 comments on commit 2fda126

Please sign in to comment.