Enable /usr/lib32 for o32 binaries on mips64.
Build and install an o32 set of libraries on mips64 suitable for running o32 binaries via COMPAT_FREEBSD32. Enable COMPAT_FREEBSD32 in MALTA64. Reviewed by: jmallett, imp Sponsored by: DARPA / AFRL Differential Revision: https://reviews.freebsd.org/D9032
This commit is contained in:
parent
452a310167
commit
69b4d461be
@ -606,7 +606,7 @@ XCFLAGS+= ${BFLAGS}
|
||||
.endif
|
||||
|
||||
.if ${MK_LIB32} != "no" && (${TARGET_ARCH} == "amd64" || \
|
||||
${TARGET_ARCH} == "powerpc64")
|
||||
${TARGET_ARCH} == "powerpc64") || ${TARGET_ARCH:Mmips64*} != ""
|
||||
LIBCOMPAT= 32
|
||||
.include "Makefile.libcompat"
|
||||
.elif ${MK_LIBSOFT} != "no" && ${TARGET_ARCH} == "armv6"
|
||||
|
@ -4,8 +4,7 @@
|
||||
__<${_this:T}>__:
|
||||
|
||||
# Makefile for the compatibility libraries.
|
||||
# - 32-bit compat libraries on PowerPC and AMD64.
|
||||
# could also be for mips, but that doesn't work today.
|
||||
# - 32-bit compat libraries on MIPS, PowerPC, and AMD64.
|
||||
|
||||
# -------------------------------------------------------------------
|
||||
# 32 bit world
|
||||
@ -34,6 +33,21 @@ LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc
|
||||
LIB32WMAKEFLAGS= \
|
||||
LD="${XLD} -m elf32ppc_fbsd" \
|
||||
OBJCOPY="${XOBJCOPY}"
|
||||
|
||||
.elif ${TARGET_ARCH:Mmips64*} != ""
|
||||
.if empty(TARGET_CPUTYPE)
|
||||
LIB32CPUFLAGS= -march=mips3
|
||||
.else
|
||||
LIB32CPUFLAGS= -march=${TARGET_CPUTYPE}
|
||||
.endif
|
||||
LIB32CPUFLAGS+= -mabi=32
|
||||
LIB32WMAKEENV= MACHINE=mips MACHINE_ARCH=mips
|
||||
.if ${TARGET_ARCH:Mmips64el*} != ""
|
||||
LIB32WMAKEFLAGS= LD="${XLD} -m elf32ltsmip_fbsd"
|
||||
.else
|
||||
LIB32WMAKEFLAGS= LD="${XLD} -m elf32btsmip_fbsd"
|
||||
.endif
|
||||
LIB32WMAKEFLAGS+= OBJCOPY="${XOBJCOPY}"
|
||||
.endif
|
||||
|
||||
|
||||
|
@ -133,7 +133,8 @@ LIBADD+= compiler_rt
|
||||
.if ${TARGET_CPUARCH} == mips
|
||||
LIB2FUNCS_EXTRA = floatunsidf.c floatunsisf.c
|
||||
# ABIs other than o32 need this
|
||||
.if ${TARGET_ARCH:Mmips64*} != "" || ${TARGET_ARCH:Mmipsn32*} != ""
|
||||
.if (${TARGET_ARCH:Mmips64*} != "" || ${TARGET_ARCH:Mmipsn32*} != "") && \
|
||||
!defined(COMPAT_32BIT)
|
||||
LIB2FUNCS_EXTRA+= floatdidf.c fixunsdfsi.c
|
||||
LIB2FUNCS_EXTRA+= floatdisf.c floatundidf.c
|
||||
LIB2FUNCS_EXTRA+= fixsfdi.c floatundisf.c
|
||||
|
@ -8,6 +8,7 @@ _EMULATION_ENDIAN=b
|
||||
|
||||
.if ${TARGET_ARCH:Mmips64*} != ""
|
||||
NATIVE_EMULATION=elf64${_EMULATION_ENDIAN}tsmip_fbsd
|
||||
LIBSEARCHPATH.elf32${_EMULATION_ENDIAN}tsmip_fbsd=\"=/usr/lib32\"
|
||||
.elif ${TARGET_ARCH:Mmipsn32*} != ""
|
||||
NATIVE_EMULATION=elf32${_EMULATION_ENDIAN}tsmipn32_fbsd
|
||||
.else
|
||||
|
@ -11,3 +11,5 @@ machine mips mips64
|
||||
makeoptions ARCH_FLAGS="-march=mips64 -mabi=64"
|
||||
|
||||
makeoptions KERNLOADADDR=0xffffffff80100000
|
||||
|
||||
options COMPAT_FREEBSD32 # Compatible with o32 binaries
|
||||
|
Loading…
Reference in New Issue
Block a user