Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Jul 2017 03:19:44 +0000 (UTC)
From:      Ed Maste <emaste@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r321183 - stable/11/sys/conf
Message-ID:  <201707190319.v6J3JiFF098727@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: emaste
Date: Wed Jul 19 03:19:44 2017
New Revision: 321183
URL: https://svnweb.freebsd.org/changeset/base/321183

Log:
  MFC r320235: retire arm64 kernel module linker workaround
  
  Relocatable linking in aarch64 ld from binutils 2.25.1 does not work.
  The linker corrupts the references to the external symbols which are
  defined by other object in the linking set and should therefore lose
  the GOT entry.
  
  The problem is fixed in later versions of GNU ld and does not exist in
  the in-tree lld linker that we now use by default for arm64, so the
  workaround can be removed.
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  stable/11/sys/conf/kmod.mk
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/conf/kmod.mk
==============================================================================
--- stable/11/sys/conf/kmod.mk	Wed Jul 19 02:50:08 2017	(r321182)
+++ stable/11/sys/conf/kmod.mk	Wed Jul 19 03:19:44 2017	(r321183)
@@ -209,17 +209,7 @@ ${PROG}.debug: ${FULLPROG}
 
 .if ${__KLD_SHARED} == yes
 ${FULLPROG}: ${KMOD}.kld
-.if ${MACHINE_CPUARCH} != "aarch64"
 	${LD} -Bshareable ${_LDFLAGS} -o ${.TARGET} ${KMOD}.kld
-.else
-#XXXKIB Relocatable linking in aarch64 ld from binutils 2.25.1 does
-#       not work.  The linker corrupts the references to the external
-#       symbols which are defined by other object in the linking set
-#       and should therefore loose the GOT entry.  The problem seems
-#       to be fixed in the binutils-gdb git HEAD as of 2015-10-04.  Hack
-#       below allows to get partially functioning modules for now.
-	${LD} -Bshareable ${_LDFLAGS} -o ${.TARGET} ${OBJS}
-.endif
 .if !defined(DEBUG_FLAGS)
 	${OBJCOPY} --strip-debug ${.TARGET}
 .endif



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