Subject: 1.2.1 kernel compilation error
To: None <port-sparc@NetBSD.ORG>
From: Michael K. Sanders <msanders@shell.aros.net>
List: port-sparc
Date: 04/11/1997 13:54:23
Trying to build a slightly trimmed down kernel for my IPC, I get:

cc  -O2 -Werror -Wall -Wstrict-prototypes -Wmissing-prototypes -mno-fpu -I. -I../../../../arch -I../../../.. -DSUN4C -DSWAPPAGER -DVNODEPAGER -DDEVPAGER -DKTRACE -DSYSVMSG -DSYSVSEM -DSYSVSHM -DLKM -DCOMPAT_43 -DCOMPAT_10 -DCOMPAT_11 -DCOMPAT_SUNOS -DCOMPAT_SVR4 -DFFS -DQUOTA -DNFSSERVER -DNFSCLIENT -DKERNFS -DNULLFS -DMFS -DFDESC -DUMAPFS -DLFS -DPORTAL -DPROCFS -DCD9660 -DUNION -DFIFO -DINET -DTCP_COMPAT_42 -DRASTERCONSOLE -D_KERNEL  -c ../../../../arch/sparc/dev/bwtwo.c
../../../../arch/sparc/dev/bwtwo.c: In function `bwtwoattach':
../../../../arch/sparc/dev/bwtwo.c:328: structure has no member named `sc_ovtype'
../../../../arch/sparc/dev/bwtwo.c:328: `BWO_NONE' undeclared (first use this function)
../../../../arch/sparc/dev/bwtwo.c:328: (Each undeclared identifier is reported only once
../../../../arch/sparc/dev/bwtwo.c:328: for each function it appears in.)
*** Error code 1

Stop.

Apparently because SUN4 is not defined in dev/bwtwo.c:

#if defined(SUN4)
        /*
         * Additional overlay plane goo.
         */
        int     sc_ovtype;              /* what kind of color fb? */
#define BWO_NONE        0x00
#define BWO_CGFOUR      0x01
#define BWO_CGEIGHT     0x02
#endif

options SUN4 shouldn't be required for an IPC should it?

Here's the conf file:

# Machine architecture; required by config(8)
machine         sparc

# Options for variants of the Sun SPARC architecure.
# At least one is required.
#options                SUN4            # sun4/100, sun4/200, sun4/300
options         SUN4C           # sun4c - SS1, 1+, 2, ELC, SLC, IPC, IPX, etc.
#options                SUN4M           # sun4m - SS10, SS20, Classic, etc.

#options        MMU_3L          # 3-level MMU on sun4/400

# obsolete timezone spec; optional
#options        TIMEZONE=0, DST=0

# Standard system options
options         SWAPPAGER       # swap and anonymous memory; required
options         VNODEPAGER      # mapped files; required
options         DEVPAGER        # mapped devices; required
options         KTRACE          # system call tracing
options         SYSVMSG         # System V message queues
options         SYSVSEM         # System V semaphores
options         SYSVSHM         # System V shared memory
#options        SHMMAXPGS=1024  # 1024 pages is the default
options         LKM             # loadable kernel modules
#options        INSECURE        # disable kernel security level
#options        UCONSOLE        # allow anyone to steal the virtual console

# Debugging options
#options        DDB             # kernel dynamic debugger
#options        DEBUG           # kernel debugging code
#options        DIAGNOSTIC      # extra kernel sanity checking
#options        KGDB            # support for kernel gdb
#options        KGDBDEV=0xc01   # kgdb device number (dev_t)
#options        KGDBRATE=38400  # baud rate

# Compatibility options
options         COMPAT_43       # 4.3BSD system interfaces
options         COMPAT_10       # NetBSD 1.0 binary compatibility
options         COMPAT_11       # NetBSD 1.1 binary compatibility
options         COMPAT_SUNOS    # SunOS 4.x binary compatibility
options         COMPAT_SVR4     # SunOS 5.x binary compatibility

# Filesystem options
options         FFS             # Berkeley Fast Filesystem
options         QUOTA           # FFS quotas
options         NFSSERVER       # Sun NFS-compatible filesystem server
options         NFSCLIENT       # Sun NFS-compatible filesystem client
options         KERNFS          # kernel data-structure filesystem
options         NULLFS          # NULL layered filesystem
options         MFS             # memory-based filesystem
options         FDESC           # user file descriptor filesystem
options         UMAPFS          # uid/gid remapping filesystem
options         LFS             # Log-based filesystem (still experimental)
options         PORTAL          # portal filesystem (still experimental)
options         PROCFS          # /proc
options         CD9660          # ISO 9660 + Rock Ridge file system
options         UNION           # union file system
options         FIFO            # POSIX fifo support (in all filesystems)

# Networking options
options         INET            # IP stack
options         TCP_COMPAT_42   # compatibility with 4.2BSD TCP/IP
#options        GATEWAY         # IP packet forwarding
#options        ISO,TPIP        # OSI networking
#options        EON             # OSI tunneling over IP
#options        CCITT,LLC,HDLC  # X.25

# Options for SPARCstation hardware
options         RASTERCONSOLE   # fast rasterop console

# Generic swap; second partition of root disk or network.
config          netbsd  swap generic

# Main bus and CPU .. all systems.
mainbus0 at root
cpu0    at mainbus0

# Bus types found on SPARC systems.
sbus0   at mainbus0                             # sun4c
#obio0  at mainbus0                             # sun4 and sun4m
#vmes0  at mainbus0                             # sun4
#vmel0  at mainbus0                             # sun4
#iommu0 at mainbus0                             # sun4m
#sbus0  at iommu0                               # sun4m

audio0  at mainbus0                             # sun4c
#audio0 at obio0                                # sun4m

auxreg0 at mainbus0                             # sun4c
#auxreg0        at obio0                                # sun4m

# Power status and control register found on Sun4m systems
#power0 at obio0

# Mostek clock found on 4/300, sun4c, and sun4m systems.
# The Mostek clock NVRAM is the "eeprom" on sun4/300 systems.
clock0  at mainbus0                             # sun4c
#clock0 at obio0                                # sun4m
#clock0 at obio0 addr 0xf2000000                # sun4/300

# Intersil clock found on 4/100 and 4/200 systems.
#oclock0        at obio0 addr 0xf3000000                # sun4/200
#oclock0        at obio0 addr 0x03000000                # sun4/100

# Memory error registers.
memreg0 at mainbus0                             # sun4c
#memreg0        at obio0                                # sun4m
#memreg0        at obio0 addr 0xf4000000                # sun4/200 and sun4/300
#memreg0        at obio0 addr 0x04000000                # sun4/100

# Timer chip found on 4/300, sun4c, and sun4m systems.
timer0  at mainbus0                             # sun4c
#timer0 at obio0                                # sun4m
#timer0 at obio0 addr 0xef000000                # sun4/300

# EEPROM found on 4/100 and 4/200 systems.  Note that the 4/300
# doesn't use this driver; the `EEPROM' is in the NVRAM on the
# Mostek clock chip on 4/300 systems.
#eeprom0        at obio0 addr 0xf2000000                # sun4/200
#eeprom0        at obio0 addr 0x02000000                # sun4/100

# Zilog 8530 serial chips.  Each has two-channels.
# zs0 is ttya and ttyb.  zs1 is the keyboard and mouse.
zs0     at mainbus0                                     # sun4c
#zs0    at obio0                                        # sun4m
#zs0    at obio0 addr 0xf1000000 level 12 flags 0x103   # sun4/200 and sun4/300
#zs0    at obio0 addr 0x01000000 level 12 flags 0x103   # sun4/100
zs1     at mainbus0                                     # sun4c
#zs1    at obio0                                        # sun4m
#zs1    at obio0 addr 0xf0000000 level 12 flags 0x103   # sun4/200 and sun4/300
#zs1    at obio0 addr 0x00000000 level 12 flags 0x103   # sun4/100
#zs2    at obio0 addr 0xe0000000 level 12 flags 0x103   # sun4/300

#
# Note the flags on the esp entries below, that work around
# deficiencies in the current driver:
#       bits 0-7:  disable disconnect/reselect for the corresponding target
#       bits 8-15: disable synch negotiation for target [bit-8]
#       Note: targets 4-7 have disconnect/reselect enabled on the premise
#             that tape devices normally have one of these targets. Tape
#             devices should be allowed to disconnect for the SCSI bus
#             to operate acceptably.
#

# sun4/300 SCSI - an NCR53c94 or equivalent behind
# an LSI Logic DMA controller
#dma0   at obio0 addr 0xfa001000 level 4                # sun4/300
#esp0   at obio0 addr 0xfa000000 level 4 flags 0xff0f   #

# sun4c or sun4m SCSI - an NCR53c94 or equivalent behind
# specialized DMA glue
dma0    at sbus0 slot ? offset ?                        # on-board SCSI
esp0    at sbus0 slot ? offset ? flags 0xff0f           # sun4c
#esp0   at dma0 flags 0xff0f                            # sun4m

# FSBE/S SCSI - an NCR53c94 or equivalent behind
#dma*   at sbus? slot ? offset ?                        # SBus SCSI
#esp*   at sbus? slot ? offset ? flags 0xff0f           # two flavours
#esp*   at dma? flags 0xff0f                            # depending on model

# sun4m Ethernet - an AMD 7990 LANCE behind
# specialized DMA glue
#ledma0 at sbus0 slot ? offset ?                        # sun4m on-board
#le0    at ledma0                                       #

# Additional SBus LANCE devices - glued on by lebuffer (not yet implemented)
#lebuffer*      at sbus0 slot ? offset ?                # sun4m SBus
#le*    at lebuffer?                                    #

# sun4/300 and sun4c Ethernet - an AMD 7990 LANCE
le0     at sbus0 slot ? offset ?                        # sun4c on-board
le*     at sbus? slot ? offset ?

#le0    at obio0 addr 0xf9000000 level 6                # sun4/300

# sun4/100 and sun4/200 Ethernet - an Intel 82586 on-board
# or on a Multibus/VME card.
#ie0    at obio0 addr 0xf6000000 level 6                # sun4/200 on-board
#ie0    at obio0 addr 0x06000000 level 6                # sun4/100 on-board

#ie1    at vmes0 addr 0xffe88000 level 5 vect 0x75
#ie2    at vmes0 addr 0xff31ff02 level 5 vect 0x76
#ie3    at vmes0 addr 0xff35ff02 level 5 vect 0x77
#ie4    at vmes0 addr 0xff2dff02 level 5 vect 0x7c

# Xylogics 753 or 7053 VME SMD disk controllers and disks, found
# on sun4 systems.
#xdc0   at vmel0 addr 0xffffee80 level 3 vect 0x44
#xdc1   at vmel0 addr 0xffffee90 level 3 vect 0x45
#xdc2   at vmel0 addr 0xffffeea0 level 3 vect 0x46
#xdc3   at vmel0 addr 0xffffeeb0 level 3 vect 0x47
#xd*    at xdc? drive ?

# Xylogics 451 or 451 VME SMD disk controllers and disks, found
# on sun4 systems.
#xyc0   at vmes0 addr 0xffffee40 level 3 vect 0x48
#xyc1   at vmes0 addr 0xffffee48 level 3 vect 0x49
#xy*    at xyc? drive ?

# NCR5380-based "Sun SCSI 3" VME SCSI controller.
# This driver has several flags which may be enabled by OR'ing
# the values and using the "flags" directive.
# Valid flags are:
#
#       0x01            Use DMA (may be polled)
#       0x02            Use DMA completion interrupts
#       0x04            Allow disconnect/reselect
#
# E.g. the following would enable DMA, interrupts, and reselect:
# si0   at vmes0 addr 0xff200000 level 3 vect 0x40 flags 0x07
#
# By default, DMA is enabled in the driver.
#si0    at vmes0 addr 0xff200000 level 3 vect 0x40

# NCR5380-based "SCSI Weird" on-board SCSI interface found
# on sun4/100 systems.  The flags are the same as the "si"
# controller.  Note, while DMA is enabled by default, only
# polled DMA works at this time, and reselects do not work
# on this particular controller.
#sw0    at obio0 addr 0x0a000000 level 3

# Sun "bwtwo" black and white framebuffer, found on sun4, sun4c, and sun4m
# systems.  If your sun4 system has a cgfour installed in the P4 slot,
# the P4 entries for "bwtwo" will attach to the overlay plane of the
# "cgfour".
bwtwo0  at sbus0 slot ? offset ?                # sun4c on-board
bwtwo*  at sbus? slot ? offset ?                # sun4c and sun4m
#bwtwo0 at obio0 addr 0xfd000000 level 4        # sun4/200
#bwtwo0 at obio0 addr 0xfb300000 level 4        # sun4/300 in P4 slot
#bwtwo0 at obio0 addr 0x0b300000 level 4        # sun4/100 in P4 slot

# Sun "cgtwo" VME color framebuffer
#cgtwo0 at vmes0 addr 0xff400000 level 4 vect 0xa8

# Sun "cgthree" Sbus color framebuffer
#cgthree0 at sbus? slot ? offset ?
cgthree* at sbus? slot ? offset ?
#cgthree0 at obio? slot ? offset ?              # sun4m
#cgthree* at obio? slot ? offset ?              # sun4m

# Sun "cgfour" color framebuffer with overlay plane.  See above comment
# regarding overlay plane.
#cgfour0        at obio0 addr 0xfb300000 level 4        # sun4/300 P4
#cgfour0        at obio0 addr 0x0b300000 level 4        # sun4/100 P4

# Sun "cgsix" accelerated color framebuffer.
#cgsix0 at sbus? slot ? offset ?
cgsix*  at sbus? slot ? offset ?
#cgsix0 at obio0 addr 0xfb000000 level 4        # sun4/300 P4
#cgsix0 at obio0 addr 0x0b000000 level 4        # sun4/100 P4

# Sun "cgeight" 24-bit framebuffer
#cgeight0 at obio0 addr 0xfb300000 level 4      # sun4/300 P4
#cgeight0 at obio0 addr 0x0b300000 level 4      # sun4/100 P4

# SCSI bus layer.  SCSI devices attach to the SCSI bus, which attaches
# to the underlying hardware controller.
scsibus* at esp?
#scsibus* at si?
#scsibus* at sw?

# These entries find devices on all SCSI busses and assign
# unit numers dynamically.
sd*     at scsibus? target ? lun ?              # SCSI disks
st*     at scsibus? target ? lun ?              # SCSI tapes
cd*     at scsibus? target ? lun ?              # SCSI CD-ROMs
ch*     at scsibus? target ? lun ?              # SCSI changer devices

# Floppy controller and drive found on SPARCstations.
fdc0    at mainbus0                             # sun4c controller
#fdc0   at obio0                                # sun4m controller
fd*     at fdc0                                 # the drive itself

pseudo-device   loop            # loopback interface; required
pseudo-device   pty     32      # pseudo-ttys (for network, etc.)
#pseudo-device  sl      2       # SLIP interfaces
pseudo-device   kbd             # Sun keyboard
#pseudo-device  ppp     2       # PPP interfaces
pseudo-device   tun     4       # Network "tunnel" device
pseudo-device   bpfilter 16     # Berkeley Packet Filter
pseudo-device   vnd     4       # disk-like interface to files
pseudo-device   ccd     4       # concatenated and striped disks
#pseudo-device  strip   1       # radio clock