<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/119956>119956</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Misaligned LOAD segment on llvm-strip output
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
tzik
</td>
</tr>
</table>
<pre>
I hit a misaligned llvm-strip output.
On the second column of the output below should end with 000 to be aligned correctly.
```
- LOAD 0x00c000 0x000000000000c000 0x000000000000c000 0x001488 0x001489 RW 0x1000
+ LOAD 0x00c002 0x000000000000c000 0x000000000000c000 0x001488 0x001489 RW 0x1000
```
#56738 may be a related issue, but my case didn't use llvm-bolt, and my llvm-strip was new enough to contain [a suggested fix there](https://github.com/llvm/llvm-project/issues/56738#issuecomment-2449258980).
(I'm not sure this is a llvm-strip issue or mold issue, tho.)
Here is a repro case:
```
#!/bin/bash
set -eu
cd "$(dirname "$0")"
if [ ! -e abseil-cpp ]; then
git clone --depth=1 -b 20240722.0 https://github.com/abseil/abseil-cpp.git
fi
rm -rf build
mkdir -p build
cd build
clang++ --version
ld.mold --version
llvm-strip --version
echo '__attribute__((weak)) void foo() {}' > dummy.cc
clang -fPIC -o dummy.o -c dummy.cc
clang -fuse-ld=mold -shared -o 00.so dummy.o
so_list=({01..22}.so)
for so_file in "${so_list[@]}"; do
cp 00.so "${so_file}"
done
clang++ -Draw_hash_set_EXPORTS -I../abseil-cpp -DNDEBUG -fPIC -o foo.o -c ../abseil-cpp/absl/container/internal/raw_hash_set.cc
clang++ -fuse-ld=mold -shared -Wl,-soname,foo.so -o foo.so foo.o -Wl,-rpath,'$ORIGIN' "${so_list[@]}"
llvm-readelf -W --segments foo.so | grep LOAD > before_strip
llvm-strip foo.so
llvm-readelf -W --segments foo.so | grep LOAD > after_strip
diff -u0 before_strip after_strip
```
and its output on my env was:
```
clang version 19.1.5 (https://github.com/llvm/llvm-project.git ab4b5a2db582958af1ee308a790cfdb42bd24720)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /home/tzik/work/llvm/out/bin
mold 1.0.3 (compatible with GNU ld)
llvm-strip, compatible with GNU strip
LLVM (http://llvm.org/):
LLVM version 19.1.5
Optimized build.
--- before_strip 2024-12-14 14:48:09.957991233 +0900
+++ after_strip 2024-12-14 14:48:09.967991256 +0900
@@ -3 +3 @@
- LOAD 0x00c000 0x000000000000c000 0x000000000000c000 0x001488 0x001489 RW 0x1000
+ LOAD 0x00c002 0x000000000000c000 0x000000000000c000 0x001488 0x001489 RW 0x1000
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzUVt-PmzgQ_mucl5GRMRDgIQ_Jpumt1HarXnu9t8jgIfjWYGSb_dG__mRINtnttqfrPV0UJTCMvxl_M_4Y4Zw69Igrkm1Itl2I0bfGrvw3dbuojHxcXUOrPAjolBM6uErQ-q6jzls1gBn9MPqIsPVND75FcFibXkJt9Nj1YJrJOHtBhdrcg2vNqCVgL-Fe-RYYY-ANVAgn_NpYi7XXjwGXLNnxy9YU4N3NegvnD3tgrA4I4eL8-ZkpTovidFHCp68BJGYs4BO--VEE_l8inANcbGaKl2TLPCmgE48TAWBRC48SlHMjEn4F1eihe4RaOASpZE947mF0OBehMtoHL9HL4HVRmHvhoMd7wN6MhzYQXJveC9UDyTYC3Hg4oAuRGvUQamSRZFvCi9b7wZFkTfiO8N1B-Xasotp0hO8C-vGPDtb8hbUnfDdl6gjfTTshPJkMtek67D3laVryrCgLRng5lZMX14TnHfTGgxstgm-VA-VAXKY_gYCx0Bl9wYZvTUR4ObP3G1qcF1ocrJk4Cpm_oJknhMeE7yrVh1_hWsLWDj1QHGegWgLhnPCU8EIq24sOjwY2_ZXhd_JUTaAPCI-BIojKodK0HgYI5CWbQGRP2BrgoDzU2vQIlEocfEuSbQy0As54ynLOIwY_oXpGfroIIaKD8oStGzVnYjugtoFqVFoStu5upbJAhydDLZ8uw50W_YHwTWhwSu_QOmVColpGE8HPbOcqXJoJW2PdGiA83--F91ZVo8f9nvCC8OIexe1EVAl3RklojJkelEDyDcm3hOdAkjcgx657jOr6lBPQ5uP1FVBzfGKA1q85jQ6pliTZzum6VliUYRljkXtaHApr9lo5T5LQzCTfsDiKOCf5NnJm7pzGWHBm3yiNEI7DXPl8c1qZbUjKQj1D1jxUVZqppvVwjHa5JMAcPdlamh5fIXxrxf2-Fa7dO_T7N39-vPn0-Xeg11H0rMJAtx-2bzZf3p5JaYyZKXnhOt-EBjmearThKPYebS-C-TLiBZOnjH7E51dN-BV1JhwBwq9CeGdOibinfGY3OwjfEn5FeE54evPp-u31h6nO_8DoRNDUZRaFRN0A_QqUOjwEyXCnWCS_goPFYRbk0DwVNsbifurN5406L_lFWNF4tE-ooYyqaYCO7FnAl27PlTwIsPLu9KYzfZBj7O-CDn-vSXNXH88WxGUURxn8a_ENigCiSqtMcFllBS-zQjQxYsIKkZesbmSV8kryNOds7v3Pwh7Qk2QND8Vyv0zpUFOt-vGBHvoghp_bwB10RqIOXoNx6oGw9XXvvNAa5VbZYCd815rQIrswKBC-uzf29pylGf1RcNl6arA4YlESdlibbhBeVRrnl__bD19Ayzm5cz2D1L_meSL_3bs_3p_4eqIrLI-MPUx35Uw6wOT6nOnJfjN41alveJTJ8GqilL5osTKoNY05jVOIU5Ks04Ika1ZGZZaXZcyTsKcNK0_Dw_F4PeuUH2MsJ4xseYmRMpIyoBNuAvPt_3jweWXyWchVIsukFAtcxXmSxss0zvNFu6ryOo8LiTzjS4xlmjWcZc2ykssyE3HFFmoVqIx5nLIiXsZ5FBdLWTayjFlZJ1keuMJOKB2dWmExDQ6rOC7LbLnQokLtpkGX8zAbHccKHuZeu5oHqvHgSMqCbLkzjFde4-r9eQKeqDoqSzjs303Ei9Hq1a_PUseM71b87wAAAP__bF9ptA">