svn commit: r323031 - head/libexec/rtld-elf

John Baldwin jhb at FreeBSD.org
Wed Aug 30 20:00:16 UTC 2017


Author: jhb
Date: Wed Aug 30 20:00:15 2017
New Revision: 323031
URL: https://svnweb.freebsd.org/changeset/base/323031

Log:
  Compile reloc.o with -fno-jump-tables on MIPS.
  
  In particular, the switch statement on the type of dynamic entries
  in _rtld_relocate_nonplt_self() needs to not use a jump table since
  jump tables on MIPS use local GOT entries which aren't initialized
  until after this loop.
  
  Suggested by:	arichardson
  Reviewed by:	emaste
  Sponsored by:	DARPA / AFRL

Modified:
  head/libexec/rtld-elf/Makefile

Modified: head/libexec/rtld-elf/Makefile
==============================================================================
--- head/libexec/rtld-elf/Makefile	Wed Aug 30 19:38:43 2017	(r323030)
+++ head/libexec/rtld-elf/Makefile	Wed Aug 30 20:00:15 2017	(r323031)
@@ -47,6 +47,9 @@ CFLAGS+=	-DPIC $(DEBUG)
 .if ${MACHINE_CPUARCH} == "amd64" || ${MACHINE_CPUARCH} == "i386"
 CFLAGS+=	-fvisibility=hidden
 .endif
+.if ${MACHINE_CPUARCH} == "mips"
+CFLAGS.reloc.c+=-fno-jump-tables
+.endif
 LDFLAGS+=	-shared -Wl,-Bsymbolic -Wl,-z,defs
 LIBADD=		c_pic
 .if ${MK_TOOLCHAIN} == "no"


More information about the svn-src-head mailing list