Port-vax archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

KA655 Kernel Compile and Corrupt Object Files



TL;DR: gcc produces corrupted kernel object files on a diskless, hardware KA655 -- diskless, simh KA655 works fine.  Requesting someone with a disked, hardware KA655 (or perhaps other CVAX or other NIC) to try to compile for troubleshooting isolation and seeking other input.

Dear port-vax,
Compiling the 10.1 kernel sources under NetBSD 10.1 on a KA655 w/32MB RAM (1GB paging file) and NFS storage takes 3 to 4 days*.  However, make fails at link time, with the linker reporting that a random object file is corrupted.  When inspected with file(1), the object file in question is never VAX ELF, but usually "data" or sometimes "DIY_Thermocam raw data..."

ld -Map netbsd.map --cref -N -Ttext 80000000 -e start -X -o netbsd ${SYSTEM_OBJ:[@]:Nswapnetbsd.o} ${EXTRA_OBJ} vers.o swapnetbsd.o
mscp_disk.o: file not recognized: file format not recognized
*** Error code 1

Stop.
make: stopped in /usr/src/sys/arch/vax/compile/NDDNVAXen

Deleting the corrupt object file and rerunning make sometimes works, but sometimes the file will compile in a corrupted way again.

To troubleshoot, I took my already diskless installation and rigged it up in simh:
load -r ka655x.bin
set cpu 32m
att nvr rasterloopzero-KA655.nvr
SET XQ TYPE=DEQNA
SET XQ MAC=08-00-2B-xx-xx-xx
at xq ethx
BOOT CPU

The kernel compile works without observable difficulty on simh, but fails with the real hardware.  The real hardware seems to behave well with dist GENERIC or the simh compiled NDDNVAXen kernels otherwise -- including the NFS based paging file.  It has never panicked or machine checked, despite some CPU and network paging stress during compile (and unlike my old KA630 that temporarily had the bad RAM card.)

I compared the object files produced by the simh and hardware compilations and found that they mostly differed, which was surprising since the config files and the make/compile options (including -O2) were the same in each instance, for (unwrapped) example:

gcc
 -fno-pic
 -ffreestanding
 -fno-zero-initialized-in-bss
 -fno-delete-null-pointer-checks
 -g
 -O2
 -fno-strict-aliasing
 -fno-common
 -std=gnu99
 -Werror
 -Wall
 -Wno-main
 -Wno-format-zero-length
 -Wpointer-arith
 -Wmissing-prototypes
 -Wstrict-prototypes
 -Wold-style-definition
 -Wswitch
 -Wshadow
 -Wcast-qual
 -Wwrite-strings
 -Wno-unreachable-code
 -Wno-pointer-sign
 -Wno-attributes
 -Wno-type-limits
 -Wno-sign-compare
 -Walloca
 -Wno-address-of-packed-member
 -D_VAX_INLINE_
 -I. -I../../../../external/bsd/libnv/dist
 -I../../../../external/bsd/acpica/dist
 -I../../../../../common/lib/libx86emu
 -I../../../../../common/lib/libc/misc
 -I../../../../../common/include
 -I../../../../arch
 -I../../../..
 -nostdinc
 -DCOMPAT_UTILS
 -D_KERNEL
 -D_KERNEL_OPT
 -std=gnu99
 -I../../../../lib/libkern/../../../common/lib/libc/quad
 -I../../../../lib/libkern/../../../common/lib/libc/string
 -I../../../../lib/libkern/../../../common/lib/libc/arch/vax/string
 -I../../../../lib/libkern/../../../common/lib/libc/arch/vax/atomic
 -I../../../../lib/libkern/../../../common/lib/libc/hash/sha3
 -c ../../../../dev/wscons/wsmouse.c
 -o wsmouse.o

When comparing two different hardware compilations, it was observed that their object files (including which files were corrupted) differed.

Has anyone been able to compile the 10.1 kernel on a hardware KA655 (or perhaps any CVAX?)  Would anyone with a KA655 and disk storage (or perhaps a DELQA) be able to test compiling the kernel, as a way to rule out NFS and the DEQNA?  (I have another DEQNA that I have been meaning to test with, also.)

Or, can anyone provide other ideas or compiler options or point me to relevant man pages/tools I can use to troubleshoot further?  I am still reading the rather, er... comprehensive gcc(1) man page.

* It's funny... for comparison, I swear I saw a 25MHz (or so) 68030 Macintosh w/5MB RAM and a hard disk compile the kernel in just a few hours, circa 1995.

--
Thanks and kind regards,
    _____    
   | * * |   Josh Moyer (he/him) <JMoyer%NODOMAIN.NET@localhost>
   |*(*)*|   http://jmoyer.nodomain.net/
    \ - /    http://www.nodomain.net/
     \//     
             Love, Responsibility, Justice
             Liebe, Verantwortung, Gerechtigkeit
             
             Please don't eat the animals.
             Thanks.


Home | Main Index | Thread Index | Old Index