Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 31 Jan 2015 19:16:52 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r277990 - in head: . sys/conf
Message-ID:  <201501311916.t0VJGqki043484@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Sat Jan 31 19:16:51 2015
New Revision: 277990
URL: https://svnweb.freebsd.org/changeset/base/277990

Log:
  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

Modified:
  head/UPDATING
  head/sys/conf/Makefile.powerpc

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Sat Jan 31 18:57:45 2015	(r277989)
+++ head/UPDATING	Sat Jan 31 19:16:51 2015	(r277990)
@@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 11
 	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

Modified: head/sys/conf/Makefile.powerpc
==============================================================================
--- head/sys/conf/Makefile.powerpc	Sat Jan 31 18:57:45 2015	(r277989)
+++ head/sys/conf/Makefile.powerpc	Sat Jan 31 19:16:51 2015	(r277990)
@@ -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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201501311916.t0VJGqki043484>