git: 1846bbd1b34e - main - arm64: Don't rely on host readelf for u-boot booti image generation
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 24 Dec 2021 19:26:06 UTC
The branch main has been updated by jrtc27:
URL: https://cgit.FreeBSD.org/src/commit/?id=1846bbd1b34e0269e0edd829dcff4729b37a149b
commit 1846bbd1b34e0269e0edd829dcff4729b37a149b
Author: Jessica Clarke <jrtc27@FreeBSD.org>
AuthorDate: 2021-12-24 19:25:20 +0000
Commit: Jessica Clarke <jrtc27@FreeBSD.org>
CommitDate: 2021-12-24 19:25:20 +0000
arm64: Don't rely on host readelf for u-boot booti image generation
readelf is not a bootstrap tool and so cannot be relied upon to exist.
On macOS there is no system readelf, and even on Linux or FreeBSD where
it does exist, BUILD_WITH_STRICT_TMPPATH builds won't be able to use it.
Instead of making it a bootstrap tool, just use nm as that suffices and
already is a bootstrap tool.
Fixes: 28482babd08a ("arm64: Use new arm_kernel_boothdr script for generating booti images.")
Reviewed by: emaste, mmel
MFC after: 1 week
Differential Revision: https://reviews.freebsd.org/D32734
---
sys/conf/Makefile.arm64 | 2 +-
sys/tools/arm_kernel_boothdr.awk | 12 ++++++------
2 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/sys/conf/Makefile.arm64 b/sys/conf/Makefile.arm64
index e75062115121..e8a534dadf5c 100644
--- a/sys/conf/Makefile.arm64
+++ b/sys/conf/Makefile.arm64
@@ -94,7 +94,7 @@ CLEAN+= ${KERNEL_KO}.bin
${KERNEL_KO}.bin: ${FULLKERNEL}
@${OBJCOPY} --wildcard --strip-symbol='$$[adtx]*' \
--output-target=binary ${.ALLSRC} ${.TARGET}.temp
- @{ readelf -s ${.ALLSRC} | \
+ @{ ${NM} ${.ALLSRC} | \
${AWK} -f $S/tools/arm_kernel_boothdr.awk -v hdrtype=v8booti && \
cat ${.TARGET}.temp; \
} > ${.TARGET}
diff --git a/sys/tools/arm_kernel_boothdr.awk b/sys/tools/arm_kernel_boothdr.awk
index f22c6167c7b0..cda56e2225cd 100644
--- a/sys/tools/arm_kernel_boothdr.awk
+++ b/sys/tools/arm_kernel_boothdr.awk
@@ -144,22 +144,22 @@ function write_v8booti() {
/kernbase/ {
# If the symbol name is exactly "kernbase" save its address.
- if ($8 == "kernbase") {
- gKernbase = hexstr_to_num($2)
+ if ($3 == "kernbase") {
+ gKernbase = hexstr_to_num($1)
}
}
/_start/ {
# If the symbol name is exactly "_start" save its address.
- if ($8 == "_start") {
- gStart = hexstr_to_num($2)
+ if ($3 == "_start") {
+ gStart = hexstr_to_num($1)
}
}
/_end/ {
# If the symbol name is exactly "_end" remember its value.
- if ($8 == "_end") {
- gEnd = hexstr_to_num($2)
+ if ($3 == "_end") {
+ gEnd = hexstr_to_num($1)
}
}