From 682617603518cd5b3bf544efafff2b427ca0d002 Mon Sep 17 00:00:00 2001 From: nwhitehorn Date: Sat, 31 Jan 2015 19:16:51 +0000 Subject: [PATCH] Build the powerpc64 kernel as a position-independent executable. At startup, it processes its own ELF relocations and can be loaded and run in place at any physical/virtual address. NB: This requires an updated loader to boot! Relnotes: yes git-svn-id: svn+ssh://svn.freebsd.org/base/head@277990 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f --- UPDATING | 5 +++++ sys/conf/Makefile.powerpc | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/UPDATING b/UPDATING index c4e7ee8c4c67d0..6d1988e9904041 100644 --- a/UPDATING +++ b/UPDATING @@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11.x IS SLOW: disable the most expensive debugging functionality run "ln -s 'abort:false,junk:false' /etc/malloc.conf".) +20150131: + The powerpc64 kernel has been changed to a position-independent + executable. This can only be booted with a new version of loader(8), + so make sure to update both world and kernel before rebooting. + 20150118: Clang and llvm have been upgraded to 3.5.1 release. This is a bugfix only release, no new features have been added. Please see the 20141231 diff --git a/sys/conf/Makefile.powerpc b/sys/conf/Makefile.powerpc index 015efc60ae9c87..e2d51577158eac 100644 --- a/sys/conf/Makefile.powerpc +++ b/sys/conf/Makefile.powerpc @@ -37,6 +37,11 @@ INCLUDES+= -I$S/contrib/libfdt CFLAGS+= -msoft-float -Wa,-many +.if ${MACHINE_ARCH} == "powerpc64" +CFLAGS+= -fPIC +LDFLAGS+= -pie +.endif + .if !empty(DDB_ENABLED) CFLAGS+= -fno-omit-frame-pointer .endif