Bug 215821 for TARGET_ARCH=powerpc64: bootstrapped ld produces a "shared object" when given a -pie option; junk kernel produced crashes
Mark Millard
markmi at dsl-only.net
Fri Jan 6 09:10:53 UTC 2017
I have submitted a FreeBSD bugzilla entry:
Bug 215821 - head -r311147's bootstrapped ld for TARGET_ARCH=powerpc64 produces kernel.full as a "shared object" for -pie instead of as a "executable": booting the produced kernel crashes
In essence what the .meta file for kernel.full shows as:
CMD @ld -Bdynamic -T /usr/src/sys/conf/ldscript.powerpc64 -pie --no-warn-mismatch --warn-common --export-dynamic --dynamic-linker /red/herring -o kernel.full -X locore.o . . .
(note the -pie) ends up producing:
ELF 64-bit MSB shared object, 64-bit PowerPC or cisco 7500, version 1 (FreeBSD), dynamically linked, interpreter /red/herring, not stripped
instead of what it should have produced:
ELF 64-bit MSB executable, 64-bit PowerPC or cisco 7500, version 1 (FreeBSD), dynamically linked, interpreter /red/herring, not stripped
The differences in content leads to the powerpc64 crashing at the start of the produced kernel.
This means needing to use devel/binutils and/or devel/powerpc64-binutils instead (at least for ld).
===
Mark Millard
markmi at dsl-only.net
More information about the freebsd-ppc
mailing list