Page MenuHomeFreeBSD

D5605.id54425.diff
No OneTemporary

D5605.id54425.diff

Index: Makefile
===================================================================
--- Makefile
+++ Makefile
@@ -125,7 +125,8 @@
obj objlink rerelease showconfig tags toolchain update \
_worldtmp _legacy _bootstrap-tools _cleanobj _obj \
_build-tools _cross-tools _includes _libraries _depend \
- build32 builddtb distribute32 install32 xdev xdev-build xdev-install \
+ build32 distribute32 install32 buildsoft distributesoft installsoft \
+ builddtb xdev xdev-build xdev-install \
xdev-links native-xtools installconfig \
TGTS+= ${SUBDIR_TARGETS}
Index: Makefile.inc1
===================================================================
--- Makefile.inc1
+++ Makefile.inc1
@@ -457,6 +457,9 @@
.if ${TARGET_ARCH} == "amd64" || ${TARGET_ARCH} == "powerpc64"
.include "Makefile.lib32"
.endif
+.if ${TARGET_ARCH} == "armv6"
+.include "Makefile.libsoft"
+.endif
WMAKE= ${WMAKEENV} ${MAKE} ${WORLD_FLAGS} -f Makefile.inc1 DESTDIR=${WORLDTMP}
@@ -516,6 +519,9 @@
.if defined(LIB32TMP)
rm -rf ${LIB32TMP}
.endif
+.if defined(LIBSOFTTMP)
+ rm -rf ${LIBSOFTTMP}
+.endif
.else
rm -rf ${WORLDTMP}/legacy/usr/include
# XXX - These can depend on any header file.
@@ -554,6 +560,16 @@
-p ${WORLDTMP}/usr/lib/debug/usr >/dev/null
.endif
.endif
+.if ${MK_LIBSOFT} != "no"
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${WORLDTMP}/usr >/dev/null
+.if ${MK_DEBUG_FILES} != "no"
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${WORLDTMP}/legacy/usr/lib/debug/usr >/dev/null
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${WORLDTMP}/usr/lib/debug/usr >/dev/null
+.endif
+.endif
.if ${MK_TESTS} != "no"
mkdir -p ${WORLDTMP}${TESTSBASE}
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
@@ -589,6 +605,9 @@
.if defined(LIB32TMP)
${_+_}cd ${.CURDIR}; ${LIB32WMAKE} -f Makefile.inc1 ${CLEANDIR}
.endif
+.if defined(LIBSOFTTMP)
+ ${_+_}cd ${.CURDIR}; ${LIBSOFTWMAKE} -f Makefile.inc1 ${CLEANDIR}
+.endif
.endif
_obj:
@echo
@@ -656,6 +675,9 @@
.if defined(LIB32TMP) && ${MK_LIB32} != "no" && empty(SUBDIR_OVERRIDE)
WMAKE_TGTS+= build32
.endif
+.if defined(LIBSOFTTMP) && ${MK_LIBSOFT} != "no" && empty(SUBDIR_OVERRIDE)
+WMAKE_TGTS+= buildsoft
+.endif
buildworld: buildworld_prologue ${WMAKE_TGTS} buildworld_epilogue
.ORDER: buildworld_prologue ${WMAKE_TGTS} buildworld_epilogue
@@ -694,7 +716,7 @@
@cd ${BUILDENV_DIR} && env ${WMAKEENV} BUILDENV=1 ${BUILDENV_SHELL} \
|| true
-TOOLCHAIN_TGTS= ${WMAKE_TGTS:N_depend:Neverything:Nbuild32}
+TOOLCHAIN_TGTS= ${WMAKE_TGTS:N_depend:Neverything:Nbuild32:Nbuildsoft}
toolchain: ${TOOLCHAIN_TGTS}
kernel-toolchain: ${TOOLCHAIN_TGTS:N_includes:N_libraries}
@@ -791,6 +813,9 @@
.if defined(LIB32TMP) && ${MK_LIB32} != "no"
EXTRA_DISTRIBUTIONS+= lib32
.endif
+.if defined(LIBSOFTTMP) && ${MK_LIBSOFT} != "no"
+EXTRA_DISTRIBUTIONS+= libsoft
+.endif
.if ${MK_TESTS} != "no"
EXTRA_DISTRIBUTIONS+= tests
.endif
@@ -849,6 +874,14 @@
-p ${DESTDIR}/${DISTDIR}/${dist}/usr/lib/debug/usr >/dev/null
.endif
.endif
+.if ${MK_LIBSOFT} != "no"
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${DESTDIR}/${DISTDIR}/${dist}/usr >/dev/null
+.if ${MK_DEBUG_FILES} != "no"
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${DESTDIR}/${DISTDIR}/${dist}/usr/lib/debug/usr >/dev/null
+.endif
+.endif
.if ${MK_TESTS} != "no" && ${dist} == "tests"
-mkdir -p ${DESTDIR}/${DISTDIR}/${dist}${TESTSBASE}
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
@@ -869,6 +902,10 @@
${IMAKEENV} mtree -C -f ${.CURDIR}/etc/mtree/BSD.lib32.dist | \
sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG}
.endif
+.if ${MK_LIBSOFT} != "no"
+ ${IMAKEENV} mtree -C -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist | \
+ sed -e 's#^\./#./${dist}/usr/#' >> ${METALOG}
+.endif
.endif
.endfor
-mkdir ${DESTDIR}/${DISTDIR}/base
@@ -954,6 +991,9 @@
.if defined(LIB32TMP) && ${MK_LIB32} != "no"
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 install32
.endif
+.if defined(LIBSOFTTMP) && ${MK_LIBSOFT} != "no"
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 installsoft
+.endif
redistribute: .MAKE .PHONY
@echo "--------------------------------------------------------------"
@@ -964,6 +1004,10 @@
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 \
DISTRIBUTION=lib32
.endif
+.if defined(LIBSOFTTMP) && ${MK_LIBSOFT} != "no"
+ ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distributesoft \
+ DISTRIBUTION=libsoft
+.endif
distrib-dirs distribution: .MAKE .PHONY
${_+_}cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} \
@@ -1025,7 +1069,7 @@
.endif
.endfor
-${WMAKE_TGTS:N_worldtmp:Nbuild32} ${.ALLTARGETS:M_*:N_worldtmp}: .MAKE .PHONY
+${WMAKE_TGTS:N_worldtmp:Nbuild32:Nbuildsoft} ${.ALLTARGETS:M_*:N_worldtmp}: .MAKE .PHONY
#
# buildkernel
@@ -2278,6 +2322,10 @@
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.lib32.dist \
-p ${XDDESTDIR}/usr >/dev/null
.endif
+.if ${MK_LIBSOFT} != "no"
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${XDDESTDIR}/usr >/dev/null
+.endif
.if ${MK_TESTS} != "no"
mkdir -p ${XDDESTDIR}${TESTSBASE}
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.tests.dist \
Index: Makefile.libsoft
===================================================================
--- Makefile.libsoft
+++ Makefile.libsoft
@@ -1,136 +1,99 @@
# $FreeBSD$
+#
+
+# soft-fp world
+LIBSOFT_OBJTREE= ${OBJTREE}${.CURDIR}/worldsoft
+LIBSOFTTMP= ${OBJTREE}${.CURDIR}/libsoft
-# Makefile for the 32-bit compat libraries on PowerPC and AMD64.
-# could also be for mips, but that doesn't work today.
-
-# 32 bit world
-LIB32_OBJTREE= ${OBJTREE}${.CURDIR}/world32
-LIB32TMP= ${OBJTREE}${.CURDIR}/lib32
-
-.if ${TARGET_ARCH} == "amd64"
-.if empty(TARGET_CPUTYPE)
-LIB32CPUFLAGS= -march=i686 -mmmx -msse -msse2
-.else
-LIB32CPUFLAGS= -march=${TARGET_CPUTYPE}
-.endif
-LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \
- MACHINE_CPU="i686 mmx sse sse2"
-LIB32WMAKEFLAGS= \
- AS="${XAS} --32" \
- LD="${XLD} -m elf_i386_fbsd -Y P,${LIB32TMP}/usr/lib32" \
- OBJCOPY="${XOBJCOPY}"
-
-.elif ${TARGET_ARCH} == "powerpc64"
-.if empty(TARGET_CPUTYPE)
-LIB32CPUFLAGS= -mcpu=powerpc
-.else
-LIB32CPUFLAGS= -mcpu=${TARGET_CPUTYPE}
-.endif
-LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc
-LIB32WMAKEFLAGS= \
- LD="${XLD} -m elf32ppc_fbsd" \
- OBJCOPY="${XOBJCOPY}"
-.endif
-
-
-LIB32FLAGS= -m32 ${LIB32CPUFLAGS} -DCOMPAT_32BIT \
- -isystem ${LIB32TMP}/usr/include/ \
- -L${LIB32TMP}/usr/lib32 \
- -B${LIB32TMP}/usr/lib32
+LIBSOFTCPUFLAGS=
+LIBSOFTWMAKEENV= CPUTYPE=soft MACHINE=arm MACHINE_ARCH=armv6
+LIBSOFTWMAKEFLAGS=
+LIBSOFTFLAGS= -isystem ${LIBSOFTTMP}/usr/include/ -DCOMPAT_SOFTFP \
+ -L${LIBSOFTTMP}/usr/libsoft \
+ -B${LIBSOFTTMP}/usr/libsoft
.if ${XCC:N${CCACHE_BIN}:M/*}
-LIB32FLAGS+= --sysroot=${WORLDTMP}
+LIBSOFTFLAGS+= --sysroot=${WORLDTMP}
.endif
# Yes, the flags are redundant.
-LIB32WMAKEENV+= MAKEOBJDIRPREFIX=${LIB32_OBJTREE} \
- _LDSCRIPTROOT=${LIB32TMP} \
+LIBSOFTWMAKEENV+= MAKEOBJDIRPREFIX=${LIBSOFT_OBJTREE} \
+ _LDSCRIPTROOT=${LIBSOFTTMP} \
INSTALL="sh ${.CURDIR}/tools/install.sh" \
PATH=${TMPPATH} \
- LIBDIR=/usr/lib32 \
- SHLIBDIR=/usr/lib32 \
- DTRACE="${DTRACE} -32"
-LIB32WMAKEFLAGS+= CC="${XCC} ${LIB32FLAGS}" \
- CXX="${XCXX} ${LIB32FLAGS}" \
- DESTDIR=${LIB32TMP} \
- -DCOMPAT_32BIT \
+ LIBDIR=/usr/libsoft \
+ SHLIBDIR=/usr/libsoft \
+ DTRACE="${DTRACE}"
+LIBSOFTWMAKEFLAGS+= CC="${XCC} ${LIBSOFTFLAGS}" \
+ CXX="${XCXX} ${LIBSOFTFLAGS}" \
+ DESTDIR=${LIBSOFTTMP} \
+ -DCOMPAT_SOFTFP \
-DLIBRARIES_ONLY \
-DNO_CPU_CFLAGS \
MK_CTF=no \
-DNO_LINT \
MK_TESTS=no
+LIBSOFTWMAKE= ${LIBSOFTWMAKEENV} ${MAKE} ${LIBSOFTWMAKEFLAGS} \
+ MK_MAN=no MK_HTML=no
+LIBSOFTIMAKE= ${LIBSOFTWMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} \
+ MK_TOOLCHAIN=no ${IMAKE_INSTALL}
-LIB32WMAKE= ${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \
- MK_MAN=no MK_HTML=no
-LIB32IMAKE= ${LIB32WMAKE:NINSTALL=*:NDESTDIR=*:N_LDSCRIPTROOT=*} \
- MK_TOOLCHAIN=no ${IMAKE_INSTALL}
-
-build32: .PHONY
+buildsoft: .PHONY
@echo
@echo "--------------------------------------------------------------"
- @echo ">>> stage 5.1: building 32 bit shim libraries"
+ @echo ">>> stage 5.1: building softfp shim libraries"
@echo "--------------------------------------------------------------"
- mkdir -p ${LIB32TMP}/usr/include
+ mkdir -p ${LIBSOFTTMP}/usr/include
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.usr.dist \
- -p ${LIB32TMP}/usr >/dev/null
+ -p ${LIBSOFTTMP}/usr >/dev/null
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.include.dist \
- -p ${LIB32TMP}/usr/include >/dev/null
- mtree -deU -f ${.CURDIR}/etc/mtree/BSD.lib32.dist \
- -p ${LIB32TMP}/usr >/dev/null
+ -p ${LIBSOFTTMP}/usr/include >/dev/null
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${LIBSOFTTMP}/usr >/dev/null
.if ${MK_DEBUG_FILES} != "no"
mtree -deU -f ${.CURDIR}/etc/mtree/BSD.debug.dist \
- -p ${LIB32TMP}/usr/lib >/dev/null
- mtree -deU -f ${.CURDIR}/etc/mtree/BSD.lib32.dist \
- -p ${LIB32TMP}/usr/lib/debug/usr >/dev/null
+ -p ${LIBSOFTTMP}/usr/lib >/dev/null
+ mtree -deU -f ${.CURDIR}/etc/mtree/BSD.libsoft.dist \
+ -p ${LIBSOFTTMP}/usr/lib/debug/usr >/dev/null
.endif
mkdir -p ${WORLDTMP}
ln -sf ${.CURDIR}/sys ${WORLDTMP}
.for _t in obj includes
- ${_+_}cd ${.CURDIR}/include; ${LIB32WMAKE} DIRPRFX=include/ ${_t}
- ${_+_}cd ${.CURDIR}/lib; ${LIB32WMAKE} DIRPRFX=lib/ ${_t}
+ ${_+_}cd ${.CURDIR}/include; ${LIBSOFTWMAKE} DIRPRFX=include/ ${_t}
+ ${_+_}cd ${.CURDIR}/lib; ${LIBSOFTWMAKE} DIRPRFX=lib/ ${_t}
.if ${MK_CDDL} != "no"
- ${_+_}cd ${.CURDIR}/cddl/lib; ${LIB32WMAKE} DIRPRFX=cddl/lib/ ${_t}
+ ${_+_}cd ${.CURDIR}/cddl/lib; ${LIBSOFTWMAKE} DIRPRFX=cddl/lib/ ${_t}
.endif
- ${_+_}cd ${.CURDIR}/gnu/lib; ${LIB32WMAKE} DIRPRFX=gnu/lib/ ${_t}
+ ${_+_}cd ${.CURDIR}/gnu/lib; ${LIBSOFTWMAKE} DIRPRFX=gnu/lib/ ${_t}
.if ${MK_CRYPT} != "no"
- ${_+_}cd ${.CURDIR}/secure/lib; ${LIB32WMAKE} DIRPRFX=secure/lib/ ${_t}
+ ${_+_}cd ${.CURDIR}/secure/lib; ${LIBSOFTWMAKE} DIRPRFX=secure/lib/ ${_t}
.endif
.if ${MK_KERBEROS} != "no"
- ${_+_}cd ${.CURDIR}/kerberos5/lib; ${LIB32WMAKE} DIRPRFX=kerberos5/lib ${_t}
+ ${_+_}cd ${.CURDIR}/kerberos5/lib; ${LIBSOFTWMAKE} DIRPRFX=kerberos5/lib ${_t}
.endif
.endfor
.for _dir in usr.bin/lex/lib
- ${_+_}cd ${.CURDIR}/${_dir}; ${LIB32WMAKE} DIRPRFX=${_dir}/ obj
+ ${_+_}cd ${.CURDIR}/${_dir}; ${LIBSOFTWMAKE} DIRPRFX=${_dir}/ obj
.endfor
.for _dir in lib/ncurses/ncurses lib/ncurses/ncursesw lib/libmagic
${_+_}cd ${.CURDIR}/${_dir}; \
WORLDTMP=${WORLDTMP} \
MAKEFLAGS="-m ${.CURDIR}/tools/build/mk ${.MAKEFLAGS}" \
- MAKEOBJDIRPREFIX=${LIB32_OBJTREE} ${MAKE} SSP_CFLAGS= DESTDIR= \
+ MAKEOBJDIRPREFIX=${LIBSOFT_OBJTREE} ${MAKE} SSP_CFLAGS= DESTDIR= \
DIRPRFX=${_dir}/ -DNO_LINT -DNO_CPU_CFLAGS MK_WARNS=no MK_CTF=no \
build-tools
.endfor
${_+_}cd ${.CURDIR}; \
- ${LIB32WMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
-.for _t in obj depend all
- ${_+_}cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIB32WMAKE} \
- -DNO_FSCHG DIRPRFX=libexec/rtld-elf/ ${_t}
- ${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIB32WMAKE} \
- DIRPRFX=usr.bin/ldd ${_t}
-.endfor
+ ${LIBSOFTWMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
-distribute32 install32: .MAKE .PHONY
- ${_+_}cd ${.CURDIR}/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
+distributesoft installsoft: .MAKE .PHONY
+ ${_+_}cd ${.CURDIR}/lib; ${LIBSOFTIMAKE} ${.TARGET:S/soft$//}
.if ${MK_CDDL} != "no"
- ${_+_}cd ${.CURDIR}/cddl/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
+ ${_+_}cd ${.CURDIR}/cddl/lib; ${LIBSOFTIMAKE} ${.TARGET:S/soft$//}
.endif
- ${_+_}cd ${.CURDIR}/gnu/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
+ ${_+_}cd ${.CURDIR}/gnu/lib; ${LIBSOFTIMAKE} ${.TARGET:S/soft$//}
.if ${MK_CRYPT} != "no"
- ${_+_}cd ${.CURDIR}/secure/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
+ ${_+_}cd ${.CURDIR}/secure/lib; ${LIBSOFTIMAKE} ${.TARGET:S/soft$//}
.endif
.if ${MK_KERBEROS} != "no"
- ${_+_}cd ${.CURDIR}/kerberos5/lib; ${LIB32IMAKE} ${.TARGET:S/32$//}
+ ${_+_}cd ${.CURDIR}/kerberos5/lib; ${LIBSOFTIMAKE} ${.TARGET:S/soft$//}
.endif
- ${_+_}cd ${.CURDIR}/libexec/rtld-elf; \
- PROG=ld-elf32.so.1 ${LIB32IMAKE} ${.TARGET:S/32$//}
- ${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIB32IMAKE} \
- ${.TARGET:S/32$//}
Index: lib/Makefile
===================================================================
--- lib/Makefile
+++ lib/Makefile
@@ -172,7 +172,7 @@
_libcasper= libcasper
.endif
-.if ${MK_CLANG} != "no" && !defined(COMPAT_32BIT)
+.if ${MK_CLANG} != "no" && !defined(COMPAT_32BIT) && !defined(COMPAT_SOFTFP)
_clang= clang
.endif

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 27, 3:45 AM (12 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27296662
Default Alt Text
D5605.id54425.diff (12 KB)

Event Timeline