Skip to content

Commit 3e15037

Browse files
committed
fix: validate native alignment
1 parent 88000e7 commit 3e15037

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

build_android.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,17 @@ has_debug_metadata() {
9393
"$READELF_BIN" -S "$1" | grep -Eq '\.(symtab|debug_|gnu_debugdata)'
9494
}
9595

96+
readelf_program_headers() {
97+
if "$READELF_BIN" -W -l "$1" >/dev/null 2>&1; then
98+
"$READELF_BIN" -W -l "$1"
99+
return
100+
fi
101+
102+
"$READELF_BIN" -l "$1"
103+
}
104+
96105
has_16kb_load_alignment() {
97-
alignments=$("$READELF_BIN" -l "$1" | awk '$1 == "LOAD" { print $NF }')
106+
alignments=$(readelf_program_headers "$1" | awk '$1 == "LOAD" { print $NF }')
98107
if [ -z "$alignments" ]; then
99108
return 1
100109
fi
@@ -121,7 +130,7 @@ validate_android_library() {
121130

122131
if ! has_16kb_load_alignment "$lib"; then
123132
echo "Error: Android native library is not 16 KB page-size aligned: $lib"
124-
"$READELF_BIN" -l "$lib" | grep LOAD || true
133+
readelf_program_headers "$lib" | grep LOAD || true
125134
exit 1
126135
fi
127136
}

0 commit comments

Comments
 (0)