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
This commit is contained in:
jhb 2017-08-30 20:00:15 +00:00
parent 774be9c6df
commit 438c415da1

View File

@ -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"