svn commit: r354713 - head/sys/conf

Brandon Bergren bdragon at FreeBSD.org
Thu Nov 14 19:56:43 UTC 2019


Author: bdragon
Date: Thu Nov 14 19:56:42 2019
New Revision: 354713
URL: https://svnweb.freebsd.org/changeset/base/354713

Log:
  [PowerPC64] Fix broken kernel modules due to LLD 9+ TOC optimization
  
  LLD9 introduced a TOC optimization that isn't compatible with kernel dynamic
  linker causing panic when loading kernel modules (pf, linuxkpi etc.)
  
  This patch disables TOC optimization when building kernel modules.
  
  Submitted by: Alfredo Dal'Ava Junior <alfredo.junior at eldorado.org.br>
  Approved by: jhibbits (mentor)
  Differential Revision: https://reviews.freebsd.org/D22317

Modified:
  head/sys/conf/kmod.mk

Modified: head/sys/conf/kmod.mk
==============================================================================
--- head/sys/conf/kmod.mk	Thu Nov 14 18:38:56 2019	(r354712)
+++ head/sys/conf/kmod.mk	Thu Nov 14 19:56:42 2019	(r354713)
@@ -169,6 +169,10 @@ CFLAGS+=	-funwind-tables
 
 .if ${MACHINE_CPUARCH} == powerpc
 CFLAGS+=	-mlongcall -fno-omit-frame-pointer
+.if ${LINKER_TYPE} == "lld"
+# TOC optimization in LLD (9.0) currently breaks kernel modules, so disable it
+LDFLAGS+=	--no-toc-optimize
+.endif
 .endif
 
 .if ${MACHINE_CPUARCH} == mips


More information about the svn-src-head mailing list