Linux on VAX
Maciej W. Rozycki
macro at linux-mips.org
Wed Nov 13 03:57:53 CET 2019
Hi Jan,
> > > The next issue is moving from reload to LRA, but that is not imminent.
> > > I'm sure our assistance would be welcome here, but our port has never
> > > reached the stability required for the GCC test suite to produce stable
> > > results, which in turn is required for port verification.
> >
> > I volunteered some years ago and I volunteer again: Having ported the
> > GNU compiler toolchain to VMS/AXP, I believe to have some experience
> > maintaining this code ;-)
> >
> > Can you point me to a (github?) repo where this code is hosted ?
>
> Hello Klaus,
>
> I managed to locate the old CVS system with the files, but I assume
> that some work on the code has been done afterwards.
> http://linux-vax.cvs.sourceforge.net/viewvc/linux-vax/
My understanding is Klaus referred to GCC rather than the Linux kernel.
The problem I came across WRT stability was probably neither as I had
issues with many programs exhausting the stack space despite a decent
amount (in VAX terms) of RAM installed in my system (128MiB). For example
`bash' mostly worked (full-fledged, linked with `ncurses', etc.) as did
`init' (SysVinit), however e.g. `ldconfig' invoked to update `ld.so.cache'
crashed as did other programs.
IIRC I got `gdbserver' working, which would allow remote debugging
(always good with an unstable system!), but cross-GDB (run on an x86/Linux
host) had issues with interpreting DWARF in VAX/ELF binaries, so I didn't
get there yet. Native VAX/Linux GDB outright crashed as did native GCC.
I don't recall the kernel crashing though, so fatal breakage was all
confined to the userland. I can't completely preclude a GCC code
generation bug having been the cause though. It was fully reproducible in
the same scenarios, so I don't think a hardware issue was the cause.
> Maybe Maciej could point you to a newer archive?
I have an old `kernel.org' VAX repo GIT checkout, as at 2.6.23-rc4, from
before the break-in caused most repos to go, I have forward-ported the
original VAX stuff up to 2.6.27-rc8 (though I mostly used 2.6.18), and
used a huge pile of patches on top of that. Some was platform-specific,
such as VAXstation 4000/90 support or TURBOchannel support for same and
for the VAXstation 4000/60. And some was generic, such as an interrupt
handling rewrite, including mapping the hardware SPL model to truly
Linux-style mask-and-ack management, modelled after the Alpha port
(otherwise horrible interrupt latencies resulted in lost timer ticks and
prevented NTP timekeeping from working and caused other problems).
I could publish this stuff at `ftp.linux-mips.org' I suppose, although I
do think if we were to go anywhere on the kernel side we'd have to start
by taking the current version of Linux rather than ancient 2.6 and redo
the port on top of that.
As to the userland part, including a port of glibc 2.4 (the final one I
could make LinuxThreads work with) in particular, it's all still there at:
<ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/>
with source stuff in SRPMS/ (mixed with MIPS and some Alpha stuff), and
then VAX host binaries in RPMS/vax/, VAX target toolchain pieces in
RPMS/i386/ (vax-linux-* files) and VAX target libraries in RPMS/noarch/
(again vax-linux-* files). I still have the old build environment set up,
with RPM having tweaks applied (and also published at the above site) such
as to work with cross-compilation, e.g. library dependencies are correctly
determined for non-native ELF binaries.
I still have some VAX hardware that works (my 4000/90, mysteriously, went
braindead as in "all diagnostic LEDs steady lit after power-up" and then
became alive again after a year or so of being braindead, for a reason I
still haven't figured out and probably never will), so I could try pushing
this effort forward again if motivated enough.
Maciej
More information about the Vax-linux
mailing list