Subject: kernel clock.c not compiling correctly for VAX410?
To: None <port-vax@netbsd.org>
From: NetBSD Mailing list <netbsd@mrynet.com>
List: port-vax
Date: 02/24/2000 08:03:11
I just experienced something rather strange with clock.c and a 
VAX41 config file kernel build:

	ld -N -Ttext 80000000 -e start -S -o netbsd ${SYSTEM_OBJ} vers.o
	ka410.o: Undefined symbol `_clk_adrshift' referenced from text segment
	ka410.o: Undefined symbol `_clk_tweak' referenced from text segment
	ka410.o: Undefined symbol `_clk_page' referenced from text segment
	ka410.o: Undefined symbol `_clk_page' referenced from text segment
	ka410.o: Undefined symbol `_clk_page' referenced from text segment
	ka410.o: Undefined symbol `_clk_page' referenced from text segment
	ka410.o: Undefined symbol `_chip_clkread' referenced from data segment
	ka410.o: Undefined symbol `_chip_clkwrite' referenced from data segment

I tried twice to build from a 'make clean,' and this still occured.
I finally rm'd clock.o and manually compiled clock.c with a define for
VAX410 added to the command used by make:

mod70# cc  -O2 -Werror -Wall -Wmissing-prototypes -Wstrict-prototypes  
	-Wpointer-arith -Wno-main -mno-pic -I. -I../../../../arch -I../../../..
	-nostdinc -I../../../../../gnu/sys -DLKM -DMAXUSERS=16 -D_KERNEL  
	-D_VAX_INLINE_ -DVAX410=1 -c ../../../../arch/vax/vax/clock.c

The kernel then linked successfully with 'make.'   I rebooted, and the
kernel seems happy so far.

	mod70# uname -a  
	NetBSD mod70.mrynet.lv 1.4S NetBSD 1.4S (PUTZVAX) #4: Thu Feb 24 07:40:47 PST 2000 
	staylor@mod70.mrynet.lv:/usr/src/sys/arch/vax/compile/PUTZVAX vax

Trying to determine the possibility of a local desync with the source tree,
I re-supped and checked about and did find the VAX410 define after a config:

	mod70# grep 410 *.h
	opt_vax410.h:#define    VAX410  1

My particular config file is tacked on the email below.  Perhaps there is
actually an oversight in the config file, but that would seem unlikely since
compiling clock.o explicitly with the define resolved the issue.

Can anyone suggest what I might check further for a desync, or perhaps build
a kernel with the below config file to confirm whether the problem lies 
within my local tree or not?

Thanks,
-skots
--
Scott G. Akmentins-Taylor     InterNet: staylor@mrynet.com
MRY Systems			        staylor@mrynet.lv
    (Skots Gregorijs Akmentins-Teilors -- just call me "Skots")
		----- Labak miris neka sarkans -----

====================================
#
# PUTZVAX VAX configuration file; mod70.mrynet.lv
#

include         "arch/vax/conf/std.vax"

# Here are all different supported CPU types listed.
# Here are all different supported CPU types listed.
#options        "VAX8600"
#options        "VAX8200"
#options        "VAX780"
#options        "VAX750"
#options        "VAX630"        # MV II
#options        "VAX650"        # MV III, 3600, 3800, 3900
#options        "VAX670"        # VAX 4000/300
options         "VAX410"        # VS 2000, 3100
#options        "VAX43"         # VS 3100/76
#options        "VAX46"         # VS 4000/60
#options        "VAX48"         # VS 4000 VLC
#options        "VAX49"         # VS 4000/90

# Max users on system; this is just a hint
maxusers        16

# Kernel compiled-in symbolic debugger & system call tracer
#options        DDB
#options        DDB_HISTORY_SIZE=100    # enable history editing in DDB
#options        KTRACE
#options        DIAGNOSTIC,DEBUG,KMEMSTATS,PMAPDEBUG,TRAPDEBUG

options         SCSIVERBOSE             # Verbose SCSI errors

# Pull in config fragments for kernel crypto.  This is required for
# options IPSEC etc. to work. If you want to run with IPSEC, uncomment
# one of these, based on whether you use crypto-us or crypto-intl, and
# adjust the prefixes as necessary.

#prefix ../crypto-us/sys
#cinclude "conf/files.crypto-us"
#prefix

#prefix ../crypto-intl/sys
#cinclude "conf/files.crypto-intl"
#prefix

# Network support
#options        GATEWAY
options         INET
options         INET6           # IPV6
#options        IPSEC           # IP security
#options        IPSEC_ESP       # IP security (encryption part; define w/IPSEC)
#options        IPSEC_DEBUG     # debug for IP security

# All supported filesystem types
file-system     FFS
#file-system    LFS
#file-system    MFS
file-system     NFS
#file-system    FDESC
#file-system    KERNFS
#file-system    NULLFS
#file-system    OVERLAY         # overlay file system
file-system     PROCFS
#file-system    UMAPFS
#file-system    UNION
file-system     CD9660

#options        QUOTA
#options        FFS_EI          # FFS Endian Independant support
#options        SOFTDEP         # FFS soft updates support.
options         NFSSERVER
#options        NFS_BOOT_BOOTP,NFS_BOOT_DHCP    # Use bootp <> dhcp
#options        NFS_BOOT_BOOTPARAM      # Use the Sun way for netbooting.

# WS console uses VT100 terminal emulation
options         WSEMUL_VT100
options         WSDISPLAY_DEFAULTSCREENS=8

# System V shared memory & semaphores support.
options         SYSVMSG
options         SYSVSEM
options         SYSVSHM

# Old compat stuff; needed to run 4.3BSD Reno programs.
# Note that if COMPAT_ULTRIX is set, you lose compatibility with
# 4.3BSD Reno programs and get Ultrix compatibility instead.
# (They cannot coexist).
#options        COMPAT_VAX1K    # Must be present to run pre-1.4 binaries.
#options        COMPAT_43
#options        COMPAT_09
#options        COMPAT_10
#options        COMPAT_11
#options        COMPAT_12
#options        COMPAT_13
#options        COMPAT_14
##options       COMPAT_ULTRIX
#options        COMPAT_IBCS2    # DEC SVR.3 compatilibity

options         LKM

# Kernel(s) to compile
config          netbsd root on ? type ?

mainbus0        at root

# All buses; from the beginning attached to mainbus.
#abus0          at mainbus0             # Master bus on VAX 8600
#sbi0           at mainbus0             # SBI, master bus on 11/780.
#cmi0           at mainbus0             # 11/750 internal bus.
#bi0            at mainbus0             # VAX 8200 
vsbus0          at mainbus0             # All VAXstations
#ibus0          at mainbus0             # All Microvax
#nbi0           at mainbus0             # VAX 8800
#xmi0           at mainbus0             # VAX 6000

# Vsbus, the virtual VAXstation bus, and possible devices.
le0             at vsbus0 csr 0x200e0000 # LANCE ethernet
#ze0            at vsbus0 csr 0x20008000 # SGEC ethernet
dz0             at vsbus0 csr 0x200a0000 # DC-367 DZ-11 lookalike ctlr
dz0             at vsbus0 csr 0x25000000 # VS4000/90 serial line
#hdc0           at vsbus0 csr 0x200c0000 # HDC9224 MFM/floppy ctlr
ncr0            at vsbus0 csr 0x200c0080 # VS2000/3100 SCSI-ctlr
ncr1            at vsbus0 csr 0x200c0180 # VS2000/3100 SCSI-ctlr
smg0            at vsbus0 csr 0x200f0000 # Small monochrome display ctlr.
#clr0           at vsbus0 csr 0x30000000 # 4- or 8-bitplans color graphics

#rd*            at hdc0 drive?          # RD5x disks
#ry*            at hdc0 drive?          # RX floppies

# Ibus, the internal bus on most Microvaxen
#uba0           at ibus0                # Qbus adapter
#ze0            at ibus0                # SGEC on-board ethernet
##shac0         at ibus0                # DSSI controller

# Devices connected at VAXBI
#cpu*           at bi? node?            # KA820/KA825 cpu
#mem*           at bi? node?            # Memory subsystems
##uba*          at bi? node?            # DWBUA BI-Unibus adapter
##ni*           at bi? node?            # DEBNA/DEBNT ethernet adapter
##kdb*          at bi? node?            # KDB50 MSCP disk ctlr
##mscpbus*      at kdb?

# CMI (VAX 11/750)
#mem*           at cmi? tr?             # Memory subsystems
#uba*           at cmi? tr?             # Unibus adapters
#mba*           at cmi? tr?             # Massbus adapters

# SBI (VAX 11/780, VAX 8600)
#sbi*           at abus0                # VAX 8600 can have up to 4 SBI's.

#mem*           at sbi? tr?             # Memory subsystems
#uba*           at sbi? tr?             # Unibus adapters
#mba*           at sbi? tr?             # Massbus adapters

# Devices on Massbus adapters
#hp*            at mba? drive?          # RM/RP disk drives

# Devices on Unibus/Qbus adapters
#uda0           at uba? csr 0172150     # UDA50/RQDX?
#uda1           at uba? csr 0160334
#mtc0           at uba? csr 0174500     # Tape MSCP ctlr
##ts0           at uba? csr 0172520     # TS11/TSV05 tape.
##qd0           at uba? csr 0177400     # 4- or 8-bitplans color graphics
##qv0           at uba? csr 0177400     # Monochrome graphics
##de0           at uba? csr 0174510     # DELUA/DEUNA
#qe0            at uba? csr 0174440     # DEQNA/DELQA
#dhu0           at uba? csr 0160440     # DHU-11
#dz0            at uba? csr 0160100     # DZ-11
#dl0            at uba? csr 0176500     # DL-11

# MSCP devices
#mscpbus*       at uda?
#mscpbus*       at mtc?
##mscpbus*      at kdb?

#ra*            at mscpbus? drive?      # MSCP disk
#rx*            at mscpbus? drive?      # MSCP floppy
#mt*            at mscpbus? drive?      # MSCP tape

# VS2000 builtin MFM controller (HDC9224)
#hdc0           at vsbus0               # The strange builtin MFM controller

# SCSI devices
scsibus*        at ncr?

sd*             at scsibus? target? lun?
st*             at scsibus? target? lun?
cd*             at scsibus? target? lun?
ch*             at scsibus? target? lun?
ss*             at scsibus? target? lun?
uk*             at scsibus? target? lun?

# VAXstation graphics support
wsdisplay0      at smg0
#wsdisplay0     at clr0
#wsdisplay0     at qd0
#wsdisplay0     at qv0
lkc0            at dz0

pseudo-device   loop    1
pseudo-device   pty     48
pseudo-device   bpfilter 8              # Not supported by de yet.
#pseudo-device  sl      2
#pseudo-device  ppp     2
pseudo-device   tun     2
#pseudo-device  gre     2               # generic L3 over IP tunnel
pseudo-device   gif     4               # IPv[46] over IPv[46] tunnel (RFC1933)
#pseudo-device  faith   1               # IPv[46] tcp relay translation i/f
#pseudo-device  tb      1
pseudo-device   vnd     4
#pseudo-device  ccd     4
#pseudo-device  raid    4               # RAIDframe disk driver
# rnd is EXPERIMENTAL
#pseudo-device  rnd                     # /dev/random and in-kernel generator