ld.bfd requires an explicit emulation for MIPS for ld -r.

Unlike lld, ld.bfd doesn't infer the emulation from the first object
file, but assumes its compiled in default for ld -r.

Differential Revision:	https://reviews.freebsd.org/D25728
This commit is contained in:
jhb 2020-08-04 18:23:32 +00:00
parent 841595eca6
commit ab9c383d27

View File

@ -2,6 +2,27 @@
.PATH: ${.CURDIR:H}/common
.include <src.opts.mk>
CFLAGS+= -DCRT_IRELOC_SUPPRESS
.if ${MACHINE_ARCH:Mmips64}
ELFCLASS= 64
.else
ELFCLASS= 32
.endif
.if ${MACHINE_ARCH:Mmips*el}
ENDIAN= l
.else
ENDIAN= b
.endif
.if ${MACHINE_ARCH:Mmipsn32*}
SUFFIX= n32
.else
SUFFIX=
.endif
# binutils requires an explicit emulation for ld -r
LDFLAGS.bfd+= -Wl,-m -Wl,elf${ELFCLASS}${ENDIAN}tsmip${SUFFIX}_fbsd
.include <bsd.lib.mk>