diff options
author | Zach van Rijn <me@zv.io> | 2024-12-06 19:22:35 +0000 |
---|---|---|
committer | Zach van Rijn <me@zv.io> | 2024-12-06 19:22:37 +0000 |
commit | 57762abcbf59410fc77ac48a3027bdee08c9291f (patch) | |
tree | 089c78d5e2738f92acc7dd22fbc18daa53bfd480 /bootstrap/llvm18/dwarf-info.patch | |
parent | cf1b9041544c3a70181778535ba310653593e9c3 (diff) | |
download | packages-57762abcbf59410fc77ac48a3027bdee08c9291f.tar.gz packages-57762abcbf59410fc77ac48a3027bdee08c9291f.tar.bz2 packages-57762abcbf59410fc77ac48a3027bdee08c9291f.tar.xz packages-57762abcbf59410fc77ac48a3027bdee08c9291f.zip |
bootstrap/llvm18: replace symlink with files.
Note: default_llvm="no"
Effectively reverts 1c7549b7bb4dcf1142d6c19876841ccc93fcafd5
since 'abuild' uses readlink to derive repository information.
The user/llvm18 package is free to be updated independently.
Diffstat (limited to 'bootstrap/llvm18/dwarf-info.patch')
-rw-r--r-- | bootstrap/llvm18/dwarf-info.patch | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/bootstrap/llvm18/dwarf-info.patch b/bootstrap/llvm18/dwarf-info.patch new file mode 100644 index 000000000..9357c6519 --- /dev/null +++ b/bootstrap/llvm18/dwarf-info.patch @@ -0,0 +1,28 @@ +Author: A. Wilcox <awilfox@adelielinux.org> + +This isn't the proper fix, but debugging the LLVM formatter is a bit +above my paygrade at the moment. + +The issue shows up in the DWARF X86 test on ppc and armv7: + +error: Simplified template DW_AT_name could not be reconstituted: + original: f3<char, '\x00', '\x01', '\x06', '\a', '\r', '\x0e', '\x1f', ' ', '!', '\x7f', '\x80'> + reconstituted: f3<char, '\x00', '\x00', '\x00', '\a', '\r', '\x00', '\x00', ' ', '!', '\x00', '\x00'> + +With this patch, this error does not occur. Debugging shows that the +llvm::format overload called in the error case is <long long>, so I +think it is having an issue converting a 64-bit value on platforms +where char is default-unsigned. + +(pmmx does not show this issue, and has signed char.) +--- llvm-14.0.6.src/lib/DebugInfo/DWARF/DWARFDie.cpp.old 2022-06-22 16:46:24.000000000 +0000 ++++ llvm-14.0.6.src/lib/DebugInfo/DWARF/DWARFDie.cpp 2022-11-28 10:32:05.573627744 +0000 +@@ -506,7 +506,7 @@ + OS << (char)Val; + OS << "'"; + } else if (Val < 256) +- OS << to_string(llvm::format("'\\x%02x'", Val)); ++ OS << to_string(llvm::format("'\\x%02x'", (unsigned char)Val)); + else if (Val <= 0xFFFF) + OS << to_string(llvm::format("'\\u%04x'", Val)); + else |