aboutsummaryrefslogtreecommitdiff
path: root/sys/conf/kern.pre.mk
diff options
context:
space:
mode:
authorBrandon Bergren <bdragon@FreeBSD.org>2020-05-07 19:32:49 +0000
committerBrandon Bergren <bdragon@FreeBSD.org>2020-05-07 19:32:49 +0000
commit9411e24df3c518227a10206ce2bae2e2f05a901c (patch)
treeed809768c12b529cb0073b9a935c4a2d54cda5c4 /sys/conf/kern.pre.mk
parentf8519228d170730bac5dc3f95c38d044873d1ab2 (diff)
downloadsrc-9411e24df3c518227a10206ce2bae2e2f05a901c.tar.gz
src-9411e24df3c518227a10206ce2bae2e2f05a901c.zip
[PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities.
This is a general cleanup of the relocatable kernel support on powerpc, needed to enable kernel ifuncs. * Fix some relocatable issues in the kernel linker, and change to using a RELOCATABLE_KERNEL #define instead of #ifdef __powerpc__ for parts that other platforms can use in the future if they wish to have ET_DYN kernels. * Get rid of the DB_STOFFS hack now that the kernel is relocated to the DMAP properly across the board on powerpc64. * Add powerpc64 and powerpc32 ifunc functionality. * Allow AIM64 virtual mode OF kernels to run from the DMAP like other AIM64 by implementing a virtual mode restart. This fixes the runtime address on PowerMac G5. * Fix symbol relocation problems on post-relocation kernels by relocating the symbol table. * Add an undocumented method for supplying kernel symbols on powernv and other powerpc machines using linux-style kernel/initrd loading -- If you pass the kernel in as the initrd as well, the copy resident in initrd will be used as a source for symbols when initializing the debugger. This method is subject to removal once we have a better way of doing this. Approved by: jhibbits Relnotes: yes Sponsored by: Tag1 Consulting, Inc. Differential Revision: https://reviews.freebsd.org/D23156
Notes
Notes: svn path=/head/; revision=360794
Diffstat (limited to 'sys/conf/kern.pre.mk')
-rw-r--r--sys/conf/kern.pre.mk4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/conf/kern.pre.mk b/sys/conf/kern.pre.mk
index 918a58b510b7..b1b01e3a2eb9 100644
--- a/sys/conf/kern.pre.mk
+++ b/sys/conf/kern.pre.mk
@@ -161,9 +161,9 @@ LDFLAGS+= --build-id=sha1
.endif
.if (${MACHINE_CPUARCH} == "aarch64" || ${MACHINE_CPUARCH} == "amd64" || \
- ${MACHINE_CPUARCH} == "i386") && \
+ ${MACHINE_CPUARCH} == "i386" || ${MACHINE} == "powerpc") && \
defined(LINKER_FEATURES) && ${LINKER_FEATURES:Mifunc} == ""
-.error amd64/arm64/i386 kernel requires linker ifunc support
+.error amd64/arm64/i386/ppc* kernel requires linker ifunc support
.endif
.if ${MACHINE_CPUARCH} == "amd64"
LDFLAGS+= -z max-page-size=2097152