Do we want to split release.9 into MD parts now or not?

From: Ruslan Ermilov <ru_at_FreeBSD.org>
Date: Tue, 20 May 2003 12:34:23 +0300
[Reattaching current_at_ as this turns out to be a normal discussion.]

On Tue, May 20, 2003 at 01:47:49AM -0700, David O'Brien wrote:
> On Tue, May 20, 2003 at 11:40:52AM +0300, Ruslan Ermilov wrote:
> > > legacy assumption that every platform has boot floppies.  Yet another way
> > > that release/Makefile needs a *major* over haul.  I'd take that on, but I
> > > know the resulting argument that would entail.
> > 
> > I hardly would call the src/release/Makefile,v 1.775 commit as the
> > step in this direction.  ;)
> 
> Feh.  I call src/release/Makefile,v 1.775 a total step in the right
> direction.  release.9 should be made separate for each platform (I wont
> play these floppy games for AMD64) and then the commonality extracted to
> release.9.common.  We've been in-line ".ifdef" special casing everything
> related to the floppies and CDROM boot image for too long.  We would
> never tolerate that in our C code.
>  
There are only 5 architecture ifdefs in release.9, let's consider
them all:

>>> .if ${TARGET_ARCH} != "ia64" || ${TARGET_ARCH} == ${MACHINE_ARCH}

release.9 for ia64 cannot be currently cross-built -- gpt(8)
is built on ia64 only.  When gpt(8) is unconditionalized,
this may be removed.

>>> .if ${TARGET} == "pc98"

We want pccard.conf on pc98.

>>> .if ${TARGET_ARCH} != "ia64"

ia64 doesn't have boot blocks.

>>> .if ${TARGET} == "i386"

/boot/mbr only exists on i386.

>>> .if ${TARGET_ARCH} == "alpha" && !defined(NO_FLOPPIES)

A bandaid for Alpha kern.flp being low on space (kgzip(1)
support would fix that).

That's all about it; another 80% of release.9 is MI.


There are only 4 architecture ifdefs in doMFSKERN, let's consider
them all:

>>> .if ${TARGET} == "i386"

Clearly this is a huge optimization for the space on boot
floppies; the reason this is ifdefed is only because other
arches don't have the support for kgzip(1) at the moment.

>>> .elif ${TARGET_ARCH} == "ia64"

ia64 provides the EFI boot loader; there are rumors that
for newer ia32 machines this could also be made a case.

>>> .if ${TARGET_ARCH} != "ia64"

On ia64, we must use ACPI; outstanding ACPI issues don't
allow us to enable it unconditionally for installation
kernels on i386.  I'd rewrite this one to be:

    .if ${TARGET} == "i386"

>>> .if ${TARGET_ARCH} == "i386" && ${AUTO_KEYBOARD_DETECT}

I have no idea why we need to boot(8) i386 with -P.

Overall, I think that having 9 architecture ifdefs for
the whole boot floppies creation process is allowable,
especially bearing in mind that they are real tiny,
and 3 of them can be considered temporary.

On the contrary, in my opinion splitting release.9 into
MD subtargets would bring a lot more disorder here.

I'd have liked to hear other opinions now (our opinions,
David, we already know ;-).


Cheers,
-- 
Ruslan Ermilov		Sysadmin and DBA,
ru_at_sunbay.com		Sunbay Software AG,
ru_at_FreeBSD.org		FreeBSD committer,
+380.652.512.251	Simferopol, Ukraine

http://www.FreeBSD.org	The Power To Serve
http://www.oracle.com	Enabling The Information Age

Received on Tue May 20 2003 - 00:34:34 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:08 UTC