Provide 32-bit runtime support on amd64 as a separate distribution, lib32.

Prodded by:	obrien
Nodded by:	peter
Approved by:	re
This commit is contained in:
Ruslan Ermilov 2005-06-16 18:16:14 +00:00
parent d873676af6
commit ece6831d38
10 changed files with 54 additions and 14 deletions

View File

@ -71,7 +71,7 @@ TGTS= all all-man buildenv buildkernel buildworld checkdpadd clean \
obj objlink regress rerelease tags toolchain update \ obj objlink regress rerelease tags toolchain update \
_worldtmp _legacy _bootstrap-tools _cleanobj _obj \ _worldtmp _legacy _bootstrap-tools _cleanobj _obj \
_build-tools _cross-tools _includes _libraries _depend \ _build-tools _cross-tools _includes _libraries _depend \
build32 install32 build32 distribute32 install32
BITGTS= files includes BITGTS= files includes
BITGTS:=${BITGTS} ${BITGTS:S/^/build/} ${BITGTS:S/^/install/} BITGTS:=${BITGTS} ${BITGTS:S/^/build/} ${BITGTS:S/^/install/}

View File

@ -435,14 +435,18 @@ build32:
PROG=ld-elf32.so.1 ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t} PROG=ld-elf32.so.1 ${LIB32MAKE} DESTDIR=${LIB32TMP} ${_t}
.endfor .endfor
install32: distribute32 install32:
mkdir -p ${DESTDIR}/usr/lib32 # XXX add to mtree .if make(distribute32)
cd ${.CURDIR}/lib; ${LIB32MAKE} install mkdir -p ${DISTDIR}/${DISTRIBUTION}/usr/lib32 # XXX add to mtree
cd ${.CURDIR}/gnu/lib; ${LIB32MAKE} install .else
.if !defined(NO_CRYPT) mkdir -p ${DESTDIR}/usr/lib32 # XXX add to mtree
cd ${.CURDIR}/secure/lib; ${LIB32MAKE} install
.endif .endif
cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIB32MAKE} install cd ${.CURDIR}/lib; ${LIB32MAKE} ${.TARGET:S/32$//}
cd ${.CURDIR}/gnu/lib; ${LIB32MAKE} ${.TARGET:S/32$//}
.if !defined(NO_CRYPT)
cd ${.CURDIR}/secure/lib; ${LIB32MAKE} ${.TARGET:S/32$//}
.endif
cd ${.CURDIR}/libexec/rtld-elf; PROG=ld-elf32.so.1 ${LIB32MAKE} ${.TARGET:S/32$//}
.endif .endif
@ -550,6 +554,9 @@ redistribute:
@echo ">>> Distributing everything" @echo ">>> Distributing everything"
@echo "--------------------------------------------------------------" @echo "--------------------------------------------------------------"
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute ${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute
.if ${TARGET_ARCH} == "amd64" && !defined(NO_LIB32)
${_+_}cd ${.CURDIR}; ${MAKE} -f Makefile.inc1 distribute32 DISTRIBUTION=lib32
.endif
distribution: distribution:
cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} distribution cd ${.CURDIR}/etc; ${CROSSENV} PATH=${TMPPATH} ${MAKE} distribution

View File

@ -162,8 +162,11 @@ DIST_DOCS_ARCH_DEP= installation relnotes hardware
# Things which without too much trouble can be considered variables # Things which without too much trouble can be considered variables
# BASE_DISTS are special in that they get full /etc installation sets. # BASE_DISTS are special in that they get full /etc installation sets.
# #
OTHER_DISTS?= catpages manpages games proflibs dict info doc OTHER_DISTS?= catpages manpages games proflibs dict info doc ${ARCH_DISTS}
BASE_DISTS?= base BASE_DISTS?= base
.if ${TARGET_ARCH} == "amd64"
ARCH_DISTS?= lib32
.endif
DISTRIBUTIONS?= ${BASE_DISTS} ${OTHER_DISTS} DISTRIBUTIONS?= ${BASE_DISTS} ${OTHER_DISTS}
# mountpoint for filesystems. # mountpoint for filesystems.
@ -351,8 +354,9 @@ release rerelease:
.endif .endif
mkdir -p ${CHROOTDIR} mkdir -p ${CHROOTDIR}
@echo ">>> make release for ${TARGET} started on `LC_ALL=C TZ=GMT date`" @echo ">>> make release for ${TARGET} started on `LC_ALL=C TZ=GMT date`"
cd ${WORLDDIR} && ${NATIVEMAKE} -DNO_GAMES -DNO_HTML -DNO_INFO -DNO_MAN \ cd ${WORLDDIR} && ${NATIVEMAKE} -DNO_GAMES -DNO_HTML -DNO_INFO \
-DNO_NLS -DNO_PROFILE installworld DESTDIR=${CHROOTDIR} -DNO_LIB32 -DNO_MAN -DNO_NLS -DNO_PROFILE installworld \
DESTDIR=${CHROOTDIR}
cd ${WORLDDIR} && ${NATIVEMAKE} distribution DESTDIR=${CHROOTDIR} cd ${WORLDDIR} && ${NATIVEMAKE} distribution DESTDIR=${CHROOTDIR}
if [ -f /etc/resolv.conf ]; then \ if [ -f /etc/resolv.conf ]; then \
cp -p /etc/resolv.conf ${CHROOTDIR}/etc; \ cp -p /etc/resolv.conf ${CHROOTDIR}/etc; \
@ -623,7 +627,8 @@ release.5:
# Remove all the directories we don't need. # Remove all the directories we don't need.
-cd ${RD}/trees && \ -cd ${RD}/trees && \
find ${OTHER_DISTS} -depth -type d -print | xargs rmdir (find ${OTHER_DISTS} -path '*/var/empty' | xargs chflags noschg; \
find ${OTHER_DISTS} -depth -type d -print | xargs rmdir)
touch ${.TARGET} touch ${.TARGET}
# #

View File

@ -0,0 +1,8 @@
#!/bin/sh
#
# $FreeBSD$
#
# Clean the dust.
cd ${RD}/trees/lib32 && \
find . ! -path '*/libexec/*' ! -path '*/usr/lib32/*' -delete

View File

@ -969,6 +969,10 @@ DMenu MenuSubDistributions = {
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_GAMES }, dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_GAMES },
{ " info", "GNU info files", { " info", "GNU info files",
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_INFO }, dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_INFO },
#ifdef __amd64__
{ " lib32", "32-bit runtime compatibility libraries",
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_LIB32 },
#endif
{ " man", "System manual pages - recommended", { " man", "System manual pages - recommended",
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_MANPAGES }, dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_MANPAGES },
{ " catman", "Preformatted system manual pages", { " catman", "Preformatted system manual pages",

View File

@ -24,7 +24,7 @@
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.\" .\"
.Dd August 9, 1997 .Dd June 14, 2005
.Dt SYSINSTALL 8 .Dt SYSINSTALL 8
.Os .Os
.Sh NAME .Sh NAME
@ -419,6 +419,9 @@ Profiled libraries for developers.
Dictionary information (for tools like spell). Dictionary information (for tools like spell).
.It Li info .It Li info
GNU info files and other extra docs. GNU info files and other extra docs.
.It Li lib32
(amd64 only)
32-bit runtime compatibility libraries.
.It Li compat1x .It Li compat1x
Compatibility with Compatibility with
.Fx .Fx

View File

@ -81,6 +81,9 @@ static Distribution DistTable[] = {
DTE_TARBALL("proflibs", &Dists, PROFLIBS, "/"), DTE_TARBALL("proflibs", &Dists, PROFLIBS, "/"),
DTE_TARBALL("dict", &Dists, DICT, "/"), DTE_TARBALL("dict", &Dists, DICT, "/"),
DTE_TARBALL("info", &Dists, INFO, "/"), DTE_TARBALL("info", &Dists, INFO, "/"),
#ifdef __amd64__
DTE_TARBALL("lib32", &Dists, LIB32, "/"),
#endif
DTE_SUBDIST("src", &Dists, SRC, SrcDistTable), DTE_SUBDIST("src", &Dists, SRC, SrcDistTable),
DTE_TARBALL("ports", &Dists, PORTS, "/usr"), DTE_TARBALL("ports", &Dists, PORTS, "/usr"),
DTE_TARBALL("local", &Dists, LOCAL, "/"), DTE_TARBALL("local", &Dists, LOCAL, "/"),

View File

@ -16,6 +16,9 @@
#define DIST_CATPAGES 0x00200 #define DIST_CATPAGES 0x00200
#define DIST_PORTS 0x00400 #define DIST_PORTS 0x00400
#define DIST_LOCAL 0x00800 #define DIST_LOCAL 0x00800
#ifdef __amd64__
#define DIST_LIB32 0x01000
#endif
#define DIST_ALL 0xFFFFF #define DIST_ALL 0xFFFFF
/* Subtypes for SRC distribution */ /* Subtypes for SRC distribution */

View File

@ -969,6 +969,10 @@ DMenu MenuSubDistributions = {
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_GAMES }, dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_GAMES },
{ " info", "GNU info files", { " info", "GNU info files",
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_INFO }, dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_INFO },
#ifdef __amd64__
{ " lib32", "32-bit runtime compatibility libraries",
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_LIB32 },
#endif
{ " man", "System manual pages - recommended", { " man", "System manual pages - recommended",
dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_MANPAGES }, dmenuFlagCheck, dmenuSetFlag, NULL, &Dists, '[', 'X', ']', DIST_MANPAGES },
{ " catman", "Preformatted system manual pages", { " catman", "Preformatted system manual pages",

View File

@ -24,7 +24,7 @@
.\" .\"
.\" $FreeBSD$ .\" $FreeBSD$
.\" .\"
.Dd August 9, 1997 .Dd June 14, 2005
.Dt SYSINSTALL 8 .Dt SYSINSTALL 8
.Os .Os
.Sh NAME .Sh NAME
@ -419,6 +419,9 @@ Profiled libraries for developers.
Dictionary information (for tools like spell). Dictionary information (for tools like spell).
.It Li info .It Li info
GNU info files and other extra docs. GNU info files and other extra docs.
.It Li lib32
(amd64 only)
32-bit runtime compatibility libraries.
.It Li compat1x .It Li compat1x
Compatibility with Compatibility with
.Fx .Fx