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"
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to