Kill aout to elf upgrade path. From an old comment in the makefile:
# If -DWANT_AOUT is specified, a `make world' with OBJFORMAT=elf will # update the legacy support for aout. This includes all libraries, ld.so # and boot objects. This part of build should be regarded as # deprecated and you should _not_ expect to be able to do this past the # release of 4.0. You have exactly one major release to move entirely # to elf. Now that we're past 5.0, these aren't needed at all anymore and it is well past its freshness date.
This commit is contained in:
parent
02a0965ef6
commit
3226556327
46
Makefile
46
Makefile
@ -17,13 +17,6 @@
|
||||
# upgrade - Upgrade a.out (2.2.x/3.0) system to the new ELF way
|
||||
# most - Build user commands, no libraries or include files.
|
||||
# installmost - Install user commands, no libraries or include files.
|
||||
# aout-to-elf - Upgrade a system from a.out to elf format (see below).
|
||||
# aout-to-elf-build - Build everything required to upgrade a system from
|
||||
# a.out to elf format (see below).
|
||||
# aout-to-elf-install - Install everything built by aout-to-elf-build (see
|
||||
# below).
|
||||
# move-aout-libs - Move the a.out libraries into an aout sub-directory
|
||||
# of each elf library sub-directory.
|
||||
#
|
||||
# This makefile is simple by design. The FreeBSD make automatically reads
|
||||
# the /usr/share/mk/sys.mk unless the -m argument is specified on the
|
||||
@ -63,28 +56,6 @@
|
||||
# and once the world is built you can cross build a kernel using the
|
||||
# buildkernel target.
|
||||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
# Upgrading an i386 system from a.out to elf format
|
||||
#
|
||||
#
|
||||
# The aout->elf transition build is performed by doing a `make upgrade' (or
|
||||
# `make aout-to-elf') or in two steps by a `make aout-to-elf-build' followed
|
||||
# by a `make aout-to-elf-install', depending on user preference.
|
||||
# You need to have at least 320 MB of free space for the object tree.
|
||||
#
|
||||
# The upgrade process checks the installed release. If this is 3.0-CURRENT,
|
||||
# it is assumed that your kernel contains all the syscalls required by the
|
||||
# current sources.
|
||||
#
|
||||
# The upgrade procedure will stop and ask for confirmation to proceed
|
||||
# several times. On each occasion, you can type Ctrl-C to abort the
|
||||
# upgrade. Optionally, you can also start it with NOCONFIRM=yes and skip
|
||||
# the confirmation steps.
|
||||
#
|
||||
# ----------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
# Define the user-driven targets. These are listed here in alphabetical
|
||||
# order, but that's not important.
|
||||
#
|
||||
@ -193,23 +164,6 @@ make:
|
||||
${MMAKE} all && \
|
||||
${MMAKE} install DESTDIR=${MAKEPATH} BINDIR=
|
||||
|
||||
#
|
||||
# Define the upgrade targets. These are listed here in alphabetical
|
||||
# order, but that's not important.
|
||||
#
|
||||
UPGRADE= aout-to-elf aout-to-elf-build aout-to-elf-install \
|
||||
move-aout-libs
|
||||
|
||||
#
|
||||
# Handle the upgrade targets, using the source relative mk files.
|
||||
#
|
||||
|
||||
upgrade: aout-to-elf
|
||||
|
||||
${UPGRADE} : upgrade_checks
|
||||
@cd ${.CURDIR}; \
|
||||
${_MAKE} -f Makefile.upgrade -m ${.CURDIR}/share/mk ${.TARGET}
|
||||
|
||||
#
|
||||
# universe
|
||||
#
|
||||
|
255
Makefile.upgrade
255
Makefile.upgrade
@ -1,255 +0,0 @@
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
# This makefile contains rules for preforming upgrades that are outside
|
||||
# the scope of the normal build world process.
|
||||
#
|
||||
|
||||
#
|
||||
# Make sure the PATH is set correctly
|
||||
#
|
||||
PATH=/sbin:/bin:/usr/sbin:/usr/bin
|
||||
|
||||
#
|
||||
# Build things relative to the user's preferred object directory,
|
||||
# defaulting to /usr/obj if not defined.
|
||||
#
|
||||
MAKEOBJDIRPREFIX?=/usr/obj
|
||||
|
||||
#
|
||||
# The installed operating system release gives us the hint as to whether
|
||||
# we need to build a kernel too.
|
||||
#
|
||||
INSTALLEDVERSION!=sh ${.CURDIR}/tools/tools/upgrade/getosreldate.sh
|
||||
INSTALLEDNAME!=uname -r
|
||||
|
||||
#
|
||||
# Upgrade the installed make to the current version using the installed
|
||||
# headers, libraries and build tools. This is required on installed versions
|
||||
# prior to 2.2.5 in which the installed make doesn't support the -m argument.
|
||||
#
|
||||
make :
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Upgrading the installed make"
|
||||
@echo "--------------------------------------------------------------"
|
||||
@cd ${.CURDIR}/usr.bin/make; \
|
||||
make obj && make depend && make all && make install
|
||||
|
||||
#
|
||||
# Upgrade from aout to elf, doing an aout build first to ensure that there
|
||||
# are up-to-date tools before building the initial elf world. The aout
|
||||
# tools just built into the object directory tree and executed from there
|
||||
# during the elf build. Then install the aout tools, build an aout kernel
|
||||
# with them (in case the installed kernel is an older version), then
|
||||
# install the elf world.
|
||||
#
|
||||
aout-to-elf aout-to-elf-install : /var/db/update.cfg \
|
||||
${MAKEOBJDIRPREFIX}/do_aout_buildworld \
|
||||
${MAKEOBJDIRPREFIX}/do_elf_buildworld \
|
||||
${MAKEOBJDIRPREFIX}/do_move_aout_libs \
|
||||
${MAKEOBJDIRPREFIX}/do_aout_installworld \
|
||||
${MAKEOBJDIRPREFIX}/do_elf_installworld \
|
||||
${MAKEOBJDIRPREFIX}/do_elf_kernel \
|
||||
${MAKEOBJDIRPREFIX}/do_set_objformat \
|
||||
${MAKEOBJDIRPREFIX}/do_reboot
|
||||
|
||||
# front-load all the information we're going to need.
|
||||
/var/db/update.cfg:
|
||||
@if [ -f ${.CURDIR}/tools/tools/upgrade/doupgrade.sh ]; then \
|
||||
MACHINE=${MACHINE} CURDIR=${.CURDIR} sh ${.CURDIR}/tools/tools/upgrade/doupgrade.sh 1 /var/db/update.cfg; \
|
||||
else \
|
||||
echo "Your source tree must not be fully populated; unable to find upgrade script"; echo "in ${.CURDIR}/tools/tools/upgrade/doupgrade.sh."; exit 1; \
|
||||
fi
|
||||
|
||||
#
|
||||
# Just do the build parts of the transition build.
|
||||
#
|
||||
aout-to-elf-build : \
|
||||
${MAKEOBJDIRPREFIX}/do_aout_buildworld \
|
||||
${MAKEOBJDIRPREFIX}/do_elf_buildworld
|
||||
|
||||
#
|
||||
# The installed system may not have tools capable of building an elf
|
||||
# aware world, so a complete aout buildworld is required to get a known
|
||||
# set of tools.
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_aout_buildworld :
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Doing an aout buildworld to get an up-to-date set of tools"
|
||||
@echo "--------------------------------------------------------------"
|
||||
@cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/aout \
|
||||
OBJFORMAT=aout REALLY_WANT_DEPRECIATED_AOUT=yes \
|
||||
${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk buildworld
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_aout_buildworld
|
||||
|
||||
#
|
||||
# Temporary path for initial elf build.
|
||||
#
|
||||
AOUTTMPPATH= ${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/sbin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/bin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/sbin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/bin:${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp/usr/games
|
||||
|
||||
#
|
||||
# Use the aout tools from the aout buildworld to do an elf buildworld.
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_elf_buildworld :
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Doing an elf buildworld using the aout tools in the aout"
|
||||
@echo " obj tree."
|
||||
@echo "--------------------------------------------------------------"
|
||||
@cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/elf \
|
||||
PATH=${AOUTTMPPATH} OBJFORMAT=elf NOTOOLS=1 \
|
||||
TOOLROOT=${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp \
|
||||
X11BASE=/nonexistent \
|
||||
${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk buildworld
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_elf_buildworld
|
||||
|
||||
#
|
||||
# ldconfig should list the directories that the system is currently using.
|
||||
#
|
||||
CUSTOM_LIBDIRS!=ldconfig -r | grep search | sed "s/search directories: //" | sed "s/:/ /g"
|
||||
|
||||
#
|
||||
# These are the standard library directories that should end up containing
|
||||
# just elf libraries.
|
||||
#
|
||||
LIBDIRS=/usr/lib /usr/lib/compat /usr/local/lib /usr/X11R6/lib
|
||||
|
||||
#
|
||||
# Go through the list of library directories from ldconfig and add any
|
||||
# directory that doesn't contain an aout path component to the list of
|
||||
# library directories to search.
|
||||
#
|
||||
.for _lib in ${CUSTOM_LIBDIRS}
|
||||
_lib1=${_lib:S/\/aout//}
|
||||
.if ${_lib1} == ${_lib}
|
||||
.if ${LIBDIRS:R:M${_lib:R}} == ""
|
||||
LIBDIRS+=${_lib}
|
||||
.endif
|
||||
.endif
|
||||
.endfor
|
||||
|
||||
#
|
||||
# Go through the list of library directories and prepare a list of
|
||||
# aout directories.
|
||||
#
|
||||
AOUTLIBDIRS=
|
||||
.for _lib in ${LIBDIRS}
|
||||
AOUTLIBDIRS+=${_lib}/aout
|
||||
.endfor
|
||||
|
||||
#
|
||||
# Move the aout libraries into an aout sub-directory of each elf library
|
||||
# directory.
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_move_aout_libs move-aout-libs :
|
||||
.if !defined(NOCONFIRM)
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " You are about to move all the installed a.out libraries into"
|
||||
@echo " an aout sub-directory of each elf library directory. You can"
|
||||
@echo " type Ctrl-C to abort now or press return to start the moving"
|
||||
@echo " the libraries."
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo Directories to search: ${LIBDIRS}
|
||||
@/bin/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e"
|
||||
@sh ${.CURDIR}/tools/tools/upgrade/move_aout_libs.sh ${LIBDIRS}
|
||||
.else
|
||||
@NOCONFIRM=1 sh ${.CURDIR}/tools/tools/upgrade/move_aout_libs.sh ${LIBDIRS}
|
||||
.endif
|
||||
@ldconfig ${AOUTLIBDIRS}
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_move_aout_libs
|
||||
|
||||
#
|
||||
# Before installing the aout world, allow for the possibility that the
|
||||
# world about to be installed has some different syscalls to the installed
|
||||
# kernel which will make shutting the system down problematic. We set aside
|
||||
# copies of certain programs which match the running kernel.
|
||||
#
|
||||
# Install the aout world so that anything that isn't replaced by the
|
||||
# elf world will be updated.
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_aout_installworld :
|
||||
.if ${INSTALLEDVERSION} < 300003
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Saving a copy of programs required to shut the system down"
|
||||
@echo "--------------------------------------------------------------"
|
||||
@cp /bin/sh ${MAKEOBJDIRPREFIX}
|
||||
@cp /sbin/reboot ${MAKEOBJDIRPREFIX}
|
||||
.endif
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_aout_installworld
|
||||
|
||||
#
|
||||
# Build and install a new kernel, as well as the boot blocks necessary to
|
||||
# boot it.
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_elf_kernel :
|
||||
@if [ -f /var/db/update.cfg -a -f ${.CURDIR}/tools/tools/upgrade/doupgrade.sh ]; then \
|
||||
MACHINE=${MACHINE} CURDIR=${.CURDIR} sh ${.CURDIR}/tools/tools/upgrade/doupgrade.sh 2 /var/db/update.cfg; \
|
||||
fi
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_elf_kernel
|
||||
@rm -f /var/db/update.cfg
|
||||
|
||||
#
|
||||
# Install the elf world overwriting just about all the previously installed
|
||||
# aout world. Any aout things that need to be kept have already been
|
||||
# installed in different places (typically in aout subdirectories).
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_elf_installworld :
|
||||
.if !defined(NOCONFIRM)
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " You are about to update the installed system (or the system"
|
||||
@echo " that your DESTDIR points to) with the elf versions of"
|
||||
@echo " everything, replacing the aout versions. You can type Ctrl-C"
|
||||
@echo " to abort now, leaving just the aout world installed, or"
|
||||
@echo " press return to start the second phase of the update."
|
||||
@echo "--------------------------------------------------------------"
|
||||
@/bin/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e"
|
||||
.endif
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Doing an elf installworld using the aout tools in the aout"
|
||||
@echo " obj tree."
|
||||
@echo "--------------------------------------------------------------"
|
||||
@cd ${.CURDIR}; MAKEOBJDIRPREFIX=${MAKEOBJDIRPREFIX}/elf \
|
||||
PATH=${AOUTTMPPATH} OBJFORMAT=elf NOTOOLS=1 \
|
||||
TOOLROOT=${MAKEOBJDIRPREFIX}/aout${.CURDIR}/tmp \
|
||||
${MAKE} -f Makefile.inc1 -m ${.CURDIR}/share/mk installworld
|
||||
@if [ ! -f /etc/pam.conf ]; then cp ${.CURDIR}/etc/pam.conf /etc; fi
|
||||
@if [ ! -f /etc/auth.conf ]; then cp ${.CURDIR}/etc/auth.conf /etc; fi
|
||||
@if [ ! -f /etc/login.conf ]; then cp ${.CURDIR}/etc/login.conf /etc; fi
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_elf_installworld
|
||||
|
||||
#
|
||||
# Now that the elf world has been installed, we can set the default
|
||||
# object format to elf.
|
||||
#
|
||||
${MAKEOBJDIRPREFIX}/do_set_objformat :
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Setting the default object format to elf"
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo "OBJFORMAT=elf" > ${DESTDIR}/etc/objformat
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_set_objformat
|
||||
|
||||
#
|
||||
# Time to reboot!
|
||||
${MAKEOBJDIRPREFIX}/do_reboot :
|
||||
.if !defined(NOCONFIRM)
|
||||
@echo
|
||||
@echo "--------------------------------------------------------------"
|
||||
@echo " Your system has now been fully updated to elf!"
|
||||
@echo
|
||||
@echo " It's now time to reboot from your new ELF kernel."
|
||||
@echo " You can type Ctrl-C to abort this (at your own risk)"
|
||||
@echo " or press return to reboot the system."
|
||||
@echo "--------------------------------------------------------------"
|
||||
@${MAKEOBJDIRPREFIX}/sh -c "read -p \"Return to continue or Ctrl-C to abort: \" _e"
|
||||
.endif
|
||||
@echo " Rebooting......."
|
||||
@echo "--------------------------------------------------------------"
|
||||
@touch ${MAKEOBJDIRPREFIX}/do_reboot
|
||||
@-${MAKEOBJDIRPREFIX}/reboot
|
Loading…
Reference in New Issue
Block a user