Add support for aout to ELF conversion to install.md, copied from the sparc

miniroot install.md.  Add usr/bin/file and usr/share/misc/magic to the
miniroot - used by the install.md changes.  Upgrades will now move the
standard a.out shared libraries to /emul/aout.
This commit is contained in:
mhitch 2002-07-23 03:52:02 +00:00
parent e438da348e
commit 5055d25658
2 changed files with 130 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: install.md,v 1.18 2002/04/15 02:48:17 mhitch Exp $
# $NetBSD: install.md,v 1.19 2002/07/23 03:52:02 mhitch Exp $
#
#
# Copyright (c) 1996 The NetBSD Foundation, Inc.
@ -327,3 +327,124 @@ __md_copy_kernel_1
done
umount -f /mnt2 > /dev/null 2>&1
}
md_lib_is_aout() {
local r
test -h $1 && return 1
test -f $1 || return 1
r=`file $1 | sed -n -e '/ELF/p'`
test -z "$r" || return 1
return 0
}
md_mv_usr_lib() {
local root
root=$1
for f in $root/usr/lib/lib*.so.[0-9]*.[0-9]* ; do
md_lib_is_aout $f || continue
mv -f $f $root/emul/aout/usr/lib || return 1
done
return 0
}
md_x_shlib_set_14=" \
libICE.so.6.3 \
libPEX5.so.6.0 \
libSM.so.6.0 \
libX11.so.6.1 \
libXIE.so.6.0 \
libXaw.so.6.1 \
libXext.so.6.3 \
libXi.so.6.0 \
libXmu.so.6.0 \
libXp.so.6.2 \
libXt.so.6.0 \
libXtst.so.6.1 \
liboldX.so.6.0"
md_mv_x_lib() {
local root xlibdir
root=$1
xlibdir=$2
for f in $md_x_shlib_set_14; do
md_lib_is_aout $root/$xlibdir/$f || continue
mv -f $root/$xlibdir/$f $root/emul/aout/$xlibdir || return 1
done
return 0
}
md_mv_aout_libs()
{
local root xlibdir
root=/mnt # XXX - should be global
if [ -d $root/emul/aout/. ]; then
echo "Using existing /emul/aout directory"
else
echo "Creating /emul/aout hierachy"
mkdir -p $root/usr/aout || return 1
if [ ! -d $root/emul ]; then
mkdir $root/emul || return 1
fi
if [ -h $root/emul/aout ]; then
echo "Preserving existing symbolic link from /emul/aout"
mv -f $root/emul/aout $root/emul/aout.old || return 1
fi
ln -s ../usr/aout $root/emul/aout || return 1
fi
# Create /emul/aout/etc and /emul/aout/usr/lib
if [ ! -d $root/emul/aout/etc ]; then
mkdir $root/emul/aout/etc || return 1
fi
if [ ! -d $root/emul/aout/usr/lib ]; then
mkdir -p $root/emul/aout/usr/lib || return 1
fi
# Move ld.so.conf
if [ -f $root/etc/ld.so.conf ]; then
mv -f $root/etc/ld.so.conf $root/emul/aout/etc || return 1
fi
# Finally, move the aout shared libraries from /usr/lib
md_mv_usr_lib $root || return 1
# If X11 is installed, move the those libraries as well
xlibdir="/usr/X11R6/lib"
if [ -d $root/$xlibdir/. ]; then
mkdir -p $root/emul/aout/$xlibdir || return 1
md_mv_x_lib $root $xlibdir || return 1
fi
echo "a.out emulation environment setup completed."
}
md_prepare_upgrade()
{
cat << 'EOF'
This release uses the ELF binary object format. Existing (a.out) binaries
can still be used on your system after it has been upgraded, provided
that the shared libraries needed by those binaries are made available
in the filesystem hierarchy rooted at /emul/aout.
This upgrade procedure will now establish this hierarchy by moving all
shared libraries in a.out format found in /usr/lib to /emul/aout/usr/lib.
It will also move the X11 shared libraries in a.out format from previous
NetBSD/sparc X11 installation sets, if they are installed.
EOF
md_mv_aout_libs || {
echo "Failed to setup a.out emulation environment"
return 1
}
return 0
}
# Flag to notify upgrade.sh of the existence of md_prepare_upgrade()
md_upgrade_prep_needed=1

View File

@ -1,14 +1,18 @@
# $NetBSD: list,v 1.16 2002/05/29 04:11:02 lukem Exp $
# $NetBSD: list,v 1.17 2002/07/23 03:52:02 mhitch Exp $
# Amiga extra's
PROG sbin/disklabel
PROG sbin/mount_ados
PROG sbin/mount_kernfs
PROG usr/bin/file
PROG usr/bin/netstat
PROG usr/bin/printf
PROG usr/bin/vi
PROG usr/sbin/loadkmap
# usr/bin/file needs libz
LIBS -lz
# crunchgen source directory specials
SPECIAL loadkmap srcdir sys/arch/amiga/stand/loadkmap
SPECIAL vi srcdir usr.bin/vi/build
@ -26,6 +30,9 @@ SYMLINK /tmp/hosts etc/hosts
# and the termcap file
COPY ${ARCHDIR}/termcap.vt usr/share/misc/termcap
# and the magic file
COPY ${DESTDIR}/usr/share/misc/magic usr/share/misc/magic
# and the installation scripts
COPY ${ARCHDIR}/install.md install.md
COPY ${ARCHDIR}/dot.profile .profile