svn commit: r323698 - projects/powernv/conf

Nathan Whitehorn nwhitehorn at FreeBSD.org
Mon Sep 18 05:59:48 UTC 2017


Author: nwhitehorn
Date: Mon Sep 18 05:59:47 2017
New Revision: 323698
URL: https://svnweb.freebsd.org/changeset/base/323698

Log:
  Work around odd behavior in kexec-lite: it requires that there be no INTERP
  section (just an assertion, no good reason for this) and ignores the
  defined entry point for the executable, beginning execution at the beginning
  of the first PT_LOAD section.
  
  Solve these by (if possible) dropping INTERP and arranging things such that
  the first instruction of the first PT_LOAD section is, in fact, the entry
  point. This allows stock kexec-lite, and thus petitboot, to directly load
  and start the FreeBSD kernel from Linux.
  
  Still panics a little ways in with an SMP error, but that is a problem for
  another day.

Modified:
  projects/powernv/conf/Makefile.powerpc
  projects/powernv/conf/ldscript.powerpc64

Modified: projects/powernv/conf/Makefile.powerpc
==============================================================================
--- projects/powernv/conf/Makefile.powerpc	Mon Sep 18 04:12:46 2017	(r323697)
+++ projects/powernv/conf/Makefile.powerpc	Mon Sep 18 05:59:47 2017	(r323698)
@@ -46,6 +46,12 @@ CFLAGS.gcc+= -Wa,-many
 CFLAGS+= -fPIC
 LDFLAGS+= -pie
 
+# Work around assertion in kexec-lite. The GCC version switch is really
+# a binutils version switch by correlation.
+.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} > 50000
+LDFLAGS+= --no-dynamic-linker
+.endif
+
 .if !empty(DDB_ENABLED)
 CFLAGS+=	-fno-omit-frame-pointer
 .endif

Modified: projects/powernv/conf/ldscript.powerpc64
==============================================================================
--- projects/powernv/conf/ldscript.powerpc64	Mon Sep 18 04:12:46 2017	(r323697)
+++ projects/powernv/conf/ldscript.powerpc64	Mon Sep 18 05:59:47 2017	(r323698)
@@ -10,7 +10,7 @@ SECTIONS
 {
   /* Read-only sections, merged into text segment: */
 
-  . = kernbase + SIZEOF_HEADERS;
+  . = kernbase;
   PROVIDE (begin = . - SIZEOF_HEADERS);
 
   .text      :


More information about the svn-src-projects mailing list