Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F148788025
D22251.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
7 KB
Referenced Files
None
Subscribers
None
D22251.diff
View Options
Index: head/Makefile.inc1
===================================================================
--- head/Makefile.inc1
+++ head/Makefile.inc1
@@ -802,11 +802,10 @@
XCFLAGS+= ${BFLAGS}
.endif
-.if ${MK_LIB32} != "no" && (${TARGET_ARCH} == "amd64" || \
- ${TARGET_ARCH} == "powerpc64" || ${TARGET_ARCH:Mmips64*} != "")
+.if ${MK_LIB32} == "yes"
_LIBCOMPAT= 32
.include "Makefile.libcompat"
-.elif ${MK_LIBSOFT} != "no" && ${TARGET_ARCH:Marmv[67]*} != ""
+.elif ${MK_LIBSOFT} == "yes"
_LIBCOMPAT= SOFT
.include "Makefile.libcompat"
.endif
Index: head/Makefile.libcompat
===================================================================
--- head/Makefile.libcompat
+++ head/Makefile.libcompat
@@ -111,28 +111,10 @@
.endfor
${_+_}cd ${.CURDIR}; \
${LIBCOMPATWMAKE} -f Makefile.inc1 -DNO_FSCHG libraries
-.if ${libcompat} == "32"
-.for _t in ${_obj} all
-.if !defined(NO_RTLD)
- ${_+_}cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIBCOMPATWMAKE} \
- -DNO_FSCHG DIRPRFX=libexec/rtld-elf/ ${_t}
-.endif
- ${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIBCOMPATWMAKE} \
- DIRPRFX=usr.bin/ldd ${_t}
-.endfor
-.endif
distribute${libcompat} install${libcompat}: .PHONY
.for _dir in ${_LC_LIBDIRS.yes}
${_+_}cd ${.CURDIR}/${_dir}; ${LIBCOMPATIMAKE} ${.TARGET:S/${libcompat}$//}
.endfor
-.if ${libcompat} == "32"
-.if !defined(NO_RTLD)
- ${_+_}cd ${.CURDIR}/libexec/rtld-elf; \
- PROG=ld-elf32.so.1 ${LIBCOMPATIMAKE} ${.TARGET:S/32$//}
-.endif
- ${_+_}cd ${.CURDIR}/usr.bin/ldd; PROG=ldd32 ${LIBCOMPATIMAKE} \
- ${.TARGET:S/32$//}
-.endif
-.endif
+.endif # !targets(__<${_this:T}>__)
Index: head/libexec/Makefile
===================================================================
--- head/libexec/Makefile
+++ head/libexec/Makefile
@@ -74,6 +74,7 @@
.if !defined(NO_PIC) && !defined(NO_RTLD)
_rtld-elf= rtld-elf
+SUBDIR.${MK_LIB32}+= rtld-elf32
.endif
.if ${MK_RBOOTD} != "no"
Index: head/libexec/rtld-elf/Makefile
===================================================================
--- head/libexec/rtld-elf/Makefile
+++ head/libexec/rtld-elf/Makefile
@@ -4,6 +4,8 @@
# linker:
# make DEBUG_FLAGS=-g WITHOUT_TESTS=yes all
+RTLD_ELF_DIR:= ${.PARSEDIR}
+
.include <src.opts.mk>
PACKAGE= clibs
MK_PIE= no # Always position independent using local rules
@@ -25,16 +27,16 @@
xmalloc.c \
debug.c \
libmap.c
-MAN= rtld.1
+MAN?= rtld.1
CSTD?= gnu99
CFLAGS+= -Wall -DFREEBSD_ELF -DIN_RTLD -ffreestanding
CFLAGS+= -I${SRCTOP}/lib/csu/common
-.if exists(${.CURDIR}/${MACHINE_ARCH})
+.if exists(${RTLD_ELF_DIR}/${MACHINE_ARCH})
RTLD_ARCH= ${MACHINE_ARCH}
.else
RTLD_ARCH= ${MACHINE_CPUARCH}
.endif
-CFLAGS+= -I${.CURDIR}/${RTLD_ARCH} -I${.CURDIR}
+CFLAGS+= -I${RTLD_ELF_DIR}/${RTLD_ARCH} -I${RTLD_ELF_DIR}
.if ${MACHINE_ARCH} == "powerpc64"
LDFLAGS+= -nostdlib -e _rtld_start
.else
@@ -81,16 +83,16 @@
.if ${MK_SYMVER} == "yes"
VERSION_DEF= ${LIBCSRCDIR}/Versions.def
-SYMBOL_MAPS= ${.CURDIR}/Symbol.map
+SYMBOL_MAPS= ${RTLD_ELF_DIR}/Symbol.map
VERSION_MAP= Version.map
LDFLAGS+= -Wl,--version-script=${VERSION_MAP}
-.if exists(${.CURDIR}/${RTLD_ARCH}/Symbol.map)
-SYMBOL_MAPS+= ${.CURDIR}/${RTLD_ARCH}/Symbol.map
+.if exists(${RTLD_ELF_DIR}/${RTLD_ARCH}/Symbol.map)
+SYMBOL_MAPS+= ${RTLD_ELF_DIR}/${RTLD_ARCH}/Symbol.map
.endif
.endif
-.sinclude "${.CURDIR}/${RTLD_ARCH}/Makefile.inc"
+.sinclude "${RTLD_ELF_DIR}/${RTLD_ARCH}/Makefile.inc"
# Since moving rtld-elf to /libexec, we need to create a symlink.
# Fixup the existing binary that's there so we can symlink over it.
@@ -99,10 +101,12 @@
-chflags -h noschg ${DESTDIR}/usr/libexec/${PROG}
.endif
-.PATH: ${.CURDIR}/${RTLD_ARCH}
+.PATH: ${RTLD_ELF_DIR}/${RTLD_ARCH}
+.if ${.CURDIR} == ${RTLD_ELF_DIR}
HAS_TESTS=
SUBDIR.${MK_TESTS}+= tests
+.endif
.include <bsd.prog.mk>
${PROG_FULL}: ${VERSION_MAP}
Index: head/libexec/rtld-elf32/Makefile
===================================================================
--- head/libexec/rtld-elf32/Makefile
+++ head/libexec/rtld-elf32/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+NEED_COMPAT= 32
+.include <bsd.compat.mk>
+
+PROG= ld-elf32.so.1
+MAN=
+
+.PATH: ${SRCTOP}/libexec/rtld-elf
+.include "${SRCTOP}/libexec/rtld-elf/Makefile"
Index: head/share/mk/bsd.compat.mk
===================================================================
--- head/share/mk/bsd.compat.mk
+++ head/share/mk/bsd.compat.mk
@@ -26,8 +26,9 @@
LIB32CPUFLAGS+= -target x86_64-unknown-freebsd13.0
.endif
LIB32CPUFLAGS+= -m32
-LIB32WMAKEENV= MACHINE=i386 MACHINE_ARCH=i386 \
- MACHINE_CPU="i686 mmx sse sse2"
+LIB32_MACHINE= i386
+LIB32_MACHINE_ARCH= i386
+LIB32WMAKEENV= MACHINE_CPU="i686 mmx sse sse2"
LIB32WMAKEFLAGS= \
AS="${XAS} --32" \
LD="${XLD} -m elf_i386_fbsd -L${LIBCOMPATTMP}/usr/lib32"
@@ -40,7 +41,8 @@
LIB32CPUFLAGS= -mcpu=${COMPAT_CPUTYPE}
.endif
LIB32CPUFLAGS+= -m32
-LIB32WMAKEENV= MACHINE=powerpc MACHINE_ARCH=powerpc
+LIB32_MACHINE= powerpc
+LIB32_MACHINE_ARCH= powerpc
LIB32WMAKEFLAGS= \
LD="${XLD} -m elf32ppc_fbsd"
@@ -61,7 +63,8 @@
.endif
.endif
LIB32CPUFLAGS+= -mabi=32
-LIB32WMAKEENV= MACHINE=mips MACHINE_ARCH=mips
+LIB32_MACHINE= mips
+LIB32_MACHINE_ARCH= mips
.if ${COMPAT_ARCH:Mmips64el*} != ""
LIB32WMAKEFLAGS= LD="${XLD} -m elf32ltsmip_fbsd"
.else
@@ -82,7 +85,9 @@
HAS_COMPAT=SOFT
LIBSOFTCFLAGS= -DCOMPAT_SOFTFP
LIBSOFTCPUFLAGS= -mfloat-abi=softfp
-LIBSOFTWMAKEENV= CPUTYPE=soft MACHINE=arm MACHINE_ARCH=${COMPAT_ARCH}
+LIBSOFT_MACHINE= arm
+LIBSOFT_MACHINE_ARCH= ${COMPAT_ARCH}
+LIBSOFTWMAKEENV= CPUTYPE=soft
LIBSOFTWMAKEFLAGS= -DCOMPAT_SOFTFP
.endif
@@ -114,8 +119,8 @@
# Generic code for each type.
# Set defaults based on type.
libcompat= ${_LIBCOMPAT:tl}
-_LIBCOMPAT_MAKEVARS= _OBJTOP TMP CPUFLAGS CFLAGS CXXFLAGS WMAKEENV \
- WMAKEFLAGS WMAKE
+_LIBCOMPAT_MAKEVARS= _OBJTOP TMP CPUFLAGS CFLAGS CXXFLAGS \
+ _MACHINE _MACHINE_ARCH WMAKEENV WMAKEFLAGS WMAKE
.for _var in ${_LIBCOMPAT_MAKEVARS}
.if !empty(LIB${_LIBCOMPAT}${_var})
LIBCOMPAT${_var}?= ${LIB${_LIBCOMPAT}${_var}}
@@ -131,6 +136,9 @@
--sysroot=${LIBCOMPATTMP} \
${BFLAGS}
+LIBCOMPATWMAKEENV+= MACHINE=${LIBCOMPAT_MACHINE}
+LIBCOMPATWMAKEENV+= MACHINE_ARCH=${LIBCOMPAT_MACHINE_ARCH}
+
# -B is needed to find /usr/lib32/crti.o for GCC and /usr/libsoft/crti.o for
# Clang/GCC.
LIBCOMPATCFLAGS+= -B${LIBCOMPATTMP}/usr/lib${libcompat}
@@ -139,6 +147,8 @@
LIBDIR_BASE:= /usr/lib${libcompat}
_LIB_OBJTOP= ${LIBCOMPAT_OBJTOP}
CFLAGS+= ${LIBCOMPATCFLAGS}
+MACHINE= ${LIBCOMPAT_MACHINE}
+MACHINE_ARCH= ${LIBCOMPAT_MACHINE_ARCH}
.endif
.endif
Index: head/share/mk/src.opts.mk
===================================================================
--- head/share/mk/src.opts.mk
+++ head/share/mk/src.opts.mk
@@ -126,7 +126,6 @@
LDNS \
LDNS_UTILS \
LEGACY_CONSOLE \
- LIB32 \
LIBPTHREAD \
LIBTHR \
LLVM_COV \
@@ -357,6 +356,13 @@
__DEFAULT_NO_OPTIONS+=GDB_LIBEXEC
.else
__DEFAULT_YES_OPTIONS+=GDB_LIBEXEC
+.endif
+# LIB32 is supported on amd64, mips64, and powerpc64
+.if (${MACHINE_ARCH} == "amd64" || ${MACHINE_ARCH:Mmips64*} || \
+ ${MACHINE_ARCH} == "powerpc64")
+__DEFAULT_YES_OPTIONS+=LIB32
+.else
+BROKEN_OPTIONS+=LIB32
.endif
# Only doing soft float API stuff on armv6 and armv7
.if ${__T} != "armv6" && ${__T} != "armv7"
Index: head/usr.bin/Makefile
===================================================================
--- head/usr.bin/Makefile
+++ head/usr.bin/Makefile
@@ -226,6 +226,7 @@
SUBDIR.${MK_KERBEROS_SUPPORT}+= compile_et
SUBDIR.${MK_LDNS_UTILS}+= drill
SUBDIR.${MK_LDNS_UTILS}+= host
+SUBDIR.${MK_LIB32}+= ldd32
SUBDIR.${MK_LOCATE}+= locate
# XXX msgs?
SUBDIR.${MK_MAIL}+= biff
Index: head/usr.bin/ldd32/Makefile
===================================================================
--- head/usr.bin/ldd32/Makefile
+++ head/usr.bin/ldd32/Makefile
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+NEED_COMPAT= 32
+.include <bsd.compat.mk>
+
+PROG= ldd32
+MAN=
+
+.PATH: ${SRCTOP}/usr.bin/ldd
+.include "${SRCTOP}/usr.bin/ldd/Makefile"
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Mar 21, 5:40 AM (15 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30064213
Default Alt Text
D22251.diff (7 KB)
Attached To
Mode
D22251: libcompat: build 32-bit rtld and ldd as part of "everything"
Attached
Detach File
Event Timeline
Log In to Comment