NB: This commit does *NOT* make GEOM the default in FreeBSD

NB: But it will enable it in all kernels not having options "NO_GEOM"

Put the GEOM related options into the intended order.

Add "options NO_GEOM" to all kernel configs apart from NOTES.

In some order of controlled fashion, the NO_GEOM options will be
removed, architecture by architecture in the coming days.

There are currently three known issues which may force people to
need the NO_GEOM option:

boot0cfg/fdisk:
        Tries to update the MBR while it is being used to control
        slices.  GEOM does not allow this as a direct operation.

SCSI floppy drives:
        Appearantly the scsi-da driver return "EBUSY" if no media
        is inserted.  This is wrong, it should return ENXIO.

PC98:
        It is unclear if GEOM correctly recognizes all variants of
        PC98 disklabels.  (Help Wanted!  I have neither docs nor HW)

These issues are all being worked.

Sponsored by:	DARPA & NAI Labs.
This commit is contained in:
Poul-Henning Kamp 2002-10-05 16:35:33 +00:00
parent 226b96fb6d
commit 3bd6561289
23 changed files with 78 additions and 34 deletions

View File

@ -31,6 +31,8 @@ maxusers 0
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options NO_GEOM
# Platforms supported # Platforms supported
options API_UP1000 # UP1000, UP1100 (Nautilus) options API_UP1000 # UP1000, UP1100 (Nautilus)
options DEC_AXPPCI_33 # UDB, Multia, AXPpci33, NoName options DEC_AXPPCI_33 # UDB, Multia, AXPpci33, NoName

View File

@ -18,6 +18,8 @@ cpu EV5
ident SIMOS ident SIMOS
maxusers 10 maxusers 10
options NO_GEOM
options DEC_KN8AE options DEC_KN8AE
options SIMOS options SIMOS
options INET #InterNETworking options INET #InterNETworking

View File

@ -30,6 +30,8 @@ maxusers 0
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options NO_GEOM
options INET #InterNETworking options INET #InterNETworking
options INET6 #IPv6 communications protocols options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem options FFS #Berkeley Fast Filesystem

View File

@ -114,8 +114,12 @@ options PQ_CACHESIZE=512 # color for 512k/16k cache
# #
options INCLUDE_CONFIG_FILE # Include this file in kernel options INCLUDE_CONFIG_FILE # Include this file in kernel
options GEOM # Use the GEOMetry system for options GEOM_AES
# disk-I/O transformations. options GEOM_BSD
options GEOM_GPT
options GEOM_MBR
options GEOM_PC98
options GEOM_SUNLABEL
# #
# The root device and filesystem type can be compiled in; # The root device and filesystem type can be compiled in;

View File

@ -458,8 +458,8 @@ dev/nsp/nsp.c optional nsp
dev/nsp/nsp_pccard.c optional nsp card dev/nsp/nsp_pccard.c optional nsp card
#dev/nsp/nsp_pccard.c optional nsp pccard #dev/nsp/nsp_pccard.c optional nsp pccard
dev/mca/mca_bus.c optional mca dev/mca/mca_bus.c optional mca
dev/mcd/mcd.c optional mcd isa dev/mcd/mcd.c optional mcd isa nowerror
dev/mcd/mcd_isa.c optional mcd isa dev/mcd/mcd_isa.c optional mcd isa nowerror
dev/md/md.c optional md dev/md/md.c optional md
dev/mii/amphy.c optional miibus dev/mii/amphy.c optional miibus
dev/mii/bmtphy.c optional miibus dev/mii/bmtphy.c optional miibus
@ -787,21 +787,21 @@ fs/umapfs/umap_vnops.c optional umapfs
fs/unionfs/union_subr.c optional unionfs fs/unionfs/union_subr.c optional unionfs
fs/unionfs/union_vfsops.c optional unionfs fs/unionfs/union_vfsops.c optional unionfs
fs/unionfs/union_vnops.c optional unionfs fs/unionfs/union_vnops.c optional unionfs
geom/geom_aes.c optional geom geom/geom_aes.c optional geom_aes
geom/geom_bsd.c optional geom geom/geom_bsd.c optional geom_bsd
geom/geom_dev.c optional geom geom/geom_dev.c standard
geom/geom_disk.c optional geom geom/geom_disk.c standard
geom/geom_dump.c optional geom geom/geom_dump.c standard
geom/geom_enc.c optional geom geom/geom_enc.c standard
geom/geom_event.c optional geom geom/geom_event.c standard
geom/geom_gpt.c optional geom geom/geom_gpt.c optional geom_gpt
geom/geom_io.c optional geom geom/geom_io.c standard
geom/geom_kern.c optional geom geom/geom_kern.c standard
geom/geom_mbr.c optional geom geom/geom_mbr.c optional geom_mbr
geom/geom_pc98.c optional geom geom/geom_pc98.c optional geom_pc98
geom/geom_slice.c optional geom geom/geom_slice.c standard
geom/geom_subr.c optional geom geom/geom_subr.c standard
geom/geom_sunlabel.c optional geom geom/geom_sunlabel.c optional geom_sunlabel
crypto/rijndael/rijndael-alg-fst.c optional geom crypto/rijndael/rijndael-alg-fst.c optional geom
crypto/rijndael/rijndael-api-fst.c optional geom crypto/rijndael/rijndael-api-fst.c optional geom
gnu/ext2fs/ext2_alloc.c optional ext2fs \ gnu/ext2fs/ext2_alloc.c optional ext2fs \

View File

@ -193,6 +193,7 @@ dev/syscons/scvidctl.c optional sc
dev/syscons/scvtb.c optional sc dev/syscons/scvtb.c optional sc
dev/syscons/syscons.c optional sc dev/syscons/syscons.c optional sc
dev/syscons/sysmouse.c optional sc dev/syscons/sysmouse.c optional sc
geom/geom_bsd.c standard
isa/atkbd_isa.c optional atkbd isa/atkbd_isa.c optional atkbd
isa/atkbdc_isa.c optional atkbdc isa/atkbdc_isa.c optional atkbdc
isa/fd.c optional fdc isa/fd.c optional fdc

View File

@ -146,6 +146,8 @@ dev/syscons/scvidctl.c optional sc
dev/syscons/scvtb.c optional sc dev/syscons/scvtb.c optional sc
dev/syscons/syscons.c optional sc dev/syscons/syscons.c optional sc
dev/syscons/sysmouse.c optional sc dev/syscons/sysmouse.c optional sc
geom/geom_bsd.c standard
geom/geom_mbr.c standard
gnu/i386/fpemul/div_small.s optional gpl_math_emulate \ gnu/i386/fpemul/div_small.s optional gpl_math_emulate \
warning "kernel contains GPL contaminated math emulator" warning "kernel contains GPL contaminated math emulator"
gnu/i386/fpemul/errors.c optional gpl_math_emulate gnu/i386/fpemul/errors.c optional gpl_math_emulate
@ -285,7 +287,7 @@ i386/isa/pcvt/pcvt_vtf.c optional vt
i386/isa/pmtimer.c optional pmtimer i386/isa/pmtimer.c optional pmtimer
i386/isa/prof_machdep.c optional profiling-routine i386/isa/prof_machdep.c optional profiling-routine
i386/isa/rc.c count rc i386/isa/rc.c count rc
i386/isa/scd.c count scd i386/isa/scd.c count scd nowerror
i386/isa/spic.c optional spic i386/isa/spic.c optional spic
i386/isa/spigot.c count spigot i386/isa/spigot.c count spigot
i386/isa/spkr.c optional speaker i386/isa/spkr.c optional speaker

View File

@ -99,6 +99,7 @@ dev/syscons/scvidctl.c optional sc
dev/syscons/scvtb.c optional sc dev/syscons/scvtb.c optional sc
dev/syscons/syscons.c optional sc dev/syscons/syscons.c optional sc
dev/syscons/sysmouse.c optional sc dev/syscons/sysmouse.c optional sc
geom/geom_gpt.c standard
isa/atkbd_isa.c optional atkbd isa/atkbd_isa.c optional atkbd
isa/atkbdc_isa.c optional atkbdc isa/atkbdc_isa.c optional atkbdc
isa/fd.c optional fdc isa/fd.c optional fdc

View File

@ -135,6 +135,9 @@ dev/syscons/scterm.c optional sc
dev/syscons/scterm-dumb.c optional sc dev/syscons/scterm-dumb.c optional sc
dev/syscons/scvidctl.c optional sc dev/syscons/scvidctl.c optional sc
dev/syscons/sysmouse.c optional sc dev/syscons/sysmouse.c optional sc
geom/geom_mbr.c standard
geom/geom_bsd.c standard
geom/geom_pc98.c standard
gnu/i386/fpemul/div_small.s optional gpl_math_emulate \ gnu/i386/fpemul/div_small.s optional gpl_math_emulate \
warning "kernel contains GPL contaminated math emulator" warning "kernel contains GPL contaminated math emulator"
gnu/i386/fpemul/errors.c optional gpl_math_emulate gnu/i386/fpemul/errors.c optional gpl_math_emulate

View File

@ -16,6 +16,8 @@ dev/ofw/ofw_console.c optional ofw_console
dev/ofw/openfirm.c standard dev/ofw/openfirm.c standard
dev/sio/sio.c optional sio dev/sio/sio.c optional sio
dev/sio/sio_isa.c optional sio isa dev/sio/sio_isa.c optional sio isa
geom/geom_bsd.c standard
geom/geom_sunlabel.c standard
libkern/ffs.c standard libkern/ffs.c standard
kern/subr_diskmbr.c standard kern/subr_diskmbr.c standard
kern/syscalls.c optional ktr kern/syscalls.c optional ktr

View File

@ -86,7 +86,13 @@ DDB_TRACE
DDB_UNATTENDED DDB_UNATTENDED
GDB_REMOTE_CHAT opt_ddb.h GDB_REMOTE_CHAT opt_ddb.h
GDBSPEED opt_ddb.h GDBSPEED opt_ddb.h
GEOM NO_GEOM opt_geom.h
GEOM_AES opt_geom.h
GEOM_BSD opt_geom.h
GEOM_GPT opt_geom.h
GEOM_MBR opt_geom.h
GEOM_PC98 opt_geom.h
GEOM_SUNLABEL opt_geom.h
HW_WDOG HW_WDOG
KSTACK_PAGES KSTACK_PAGES
KSTACK_MAX_PAGES KSTACK_MAX_PAGES

View File

@ -1,5 +1,7 @@
#include "opt_geom.h" #include "opt_geom.h"
#ifndef GEOM #ifndef NO_GEOM
#warning "The mcd driver is currently not compatible with GEOM"
#else
/* /*
* Copyright 1993 by Holger Veit (data part) * Copyright 1993 by Holger Veit (data part)
* Copyright 1993 by Brian Moore (audio part) * Copyright 1993 by Brian Moore (audio part)

View File

@ -2,6 +2,9 @@
* $FreeBSD$ * $FreeBSD$
*/ */
#include "opt_geom.h"
#ifdef NO_GEOM
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
#include <sys/kernel.h> #include <sys/kernel.h>
@ -209,3 +212,5 @@ static driver_t mcd_isa_driver = {
static devclass_t mcd_devclass; static devclass_t mcd_devclass;
DRIVER_MODULE(mcd, isa, mcd_isa_driver, mcd_devclass, NULL, 0); DRIVER_MODULE(mcd, isa, mcd_isa_driver, mcd_devclass, NULL, 0);
#endif /* GEOM */

View File

@ -35,6 +35,9 @@
* $FreeBSD$ * $FreeBSD$
*/ */
#include "opt_geom.h"
#ifndef NO_GEOM
#include <sys/param.h> #include <sys/param.h>
#include <sys/systm.h> #include <sys/systm.h>
#include <sys/kernel.h> #include <sys/kernel.h>
@ -263,15 +266,6 @@ disk_invalidate (struct disk *disk)
{ {
} }
SYSCTL_INT(_debug_sizeof, OID_AUTO, disklabel, CTLFLAG_RD,
0, sizeof(struct disklabel), "sizeof(struct disklabel)");
SYSCTL_INT(_debug_sizeof, OID_AUTO, diskslices, CTLFLAG_RD,
0, sizeof(struct diskslices), "sizeof(struct diskslices)");
SYSCTL_INT(_debug_sizeof, OID_AUTO, disk, CTLFLAG_RD,
0, sizeof(struct disk), "sizeof(struct disk)");
static void static void
g_kern_disks(void *p) g_kern_disks(void *p)
{ {
@ -309,3 +303,5 @@ sysctl_disks(SYSCTL_HANDLER_ARGS)
SYSCTL_PROC(_kern, OID_AUTO, disks, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NOLOCK, 0, 0, SYSCTL_PROC(_kern, OID_AUTO, disks, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_NOLOCK, 0, 0,
sysctl_disks, "A", "names of available disks"); sysctl_disks, "A", "names of available disks");
#endif

View File

@ -30,6 +30,8 @@ maxusers 0
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options NO_GEOM
options INET #InterNETworking options INET #InterNETworking
options INET6 #IPv6 communications protocols options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem options FFS #Berkeley Fast Filesystem

View File

@ -31,6 +31,8 @@ maxusers 0
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options NO_GEOM
options INET #InterNETworking options INET #InterNETworking
options INET6 #IPv6 communications protocols options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem options FFS #Berkeley Fast Filesystem

View File

@ -1,5 +1,7 @@
#include "opt_geom.h" #include "opt_geom.h"
#ifndef GEOM #ifndef NO_GEOM
#warning "The scd driver is currently incompatible with GEOM"
#else
/*- /*-
* Copyright (c) 1995 Mikael Hybsch * Copyright (c) 1995 Mikael Hybsch
* All rights reserved. * All rights reserved.

View File

@ -31,6 +31,8 @@ maxusers 0
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
makeoptions NO_CPU_COPTFLAGS=true #Ignore any x86 CPUTYPE makeoptions NO_CPU_COPTFLAGS=true #Ignore any x86 CPUTYPE
options NO_GEOM
#options SKI #Support for HP simulator #options SKI #Support for HP simulator
options INET #InterNETworking options INET #InterNETworking
options INET6 #IPv6 communications protocols options INET6 #IPv6 communications protocols

View File

@ -33,6 +33,8 @@ maxusers 32
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
makeoptions NO_CPU_COPTFLAGS=true #Ignore any x86 CPUTYPE makeoptions NO_CPU_COPTFLAGS=true #Ignore any x86 CPUTYPE
options NO_GEOM
options SKI #Support for HP simulator options SKI #Support for HP simulator
options INET #InterNETworking options INET #InterNETworking
#options INET6 #IPv6 communications protocols #options INET6 #IPv6 communications protocols

View File

@ -20,7 +20,7 @@
#include <sys/disk.h> #include <sys/disk.h>
#include <sys/diskslice.h> #include <sys/diskslice.h>
#include <sys/disklabel.h> #include <sys/disklabel.h>
#ifndef GEOM #ifdef NO_GEOM
#include <sys/kernel.h> #include <sys/kernel.h>
#include <sys/sysctl.h> #include <sys/sysctl.h>
#include <sys/malloc.h> #include <sys/malloc.h>
@ -440,7 +440,7 @@ SYSCTL_INT(_debug_sizeof, OID_AUTO, diskslices, CTLFLAG_RD,
SYSCTL_INT(_debug_sizeof, OID_AUTO, disk, CTLFLAG_RD, SYSCTL_INT(_debug_sizeof, OID_AUTO, disk, CTLFLAG_RD,
0, sizeof(struct disk), "sizeof(struct disk)"); 0, sizeof(struct disk), "sizeof(struct disk)");
#endif #endif /* NO_GEOM */
/*- /*-
* Disk error is the preface to plaintive error messages * Disk error is the preface to plaintive error messages

View File

@ -31,6 +31,8 @@ maxusers 0
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
options NO_GEOM
options PC98 #PC98 options PC98 #PC98
options MATH_EMULATE #Support for x87 emulation options MATH_EMULATE #Support for x87 emulation
options INET #InterNETworking options INET #InterNETworking

View File

@ -33,6 +33,8 @@ makeoptions WERROR=-Wno-error #XXX: We don't want -Werror just now
options POWERMAC #NewWorld Apple PowerMacs options POWERMAC #NewWorld Apple PowerMacs
options PSIM #GDB PSIM ppc simulator options PSIM #GDB PSIM ppc simulator
options NO_GEOM
options INET #InterNETworking options INET #InterNETworking
options INET6 #IPv6 communications protocols options INET6 #IPv6 communications protocols
options GEOM #GEOMetry subsystem options GEOM #GEOMetry subsystem

View File

@ -33,6 +33,8 @@ makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
# Platforms supported # Platforms supported
# At this time all platforms are supported, as-is. # At this time all platforms are supported, as-is.
options NO_GEOM
options INET #InterNETworking options INET #InterNETworking
options INET6 #IPv6 communications protocols options INET6 #IPv6 communications protocols
options FFS #Berkeley Fast Filesystem options FFS #Berkeley Fast Filesystem