Progress of Linux on VAX
Maciej W. Rozycki
macro at linux-mips.org
Sun Jul 31 02:08:01 CEST 2016
Hi Jan,
> It's been a long time, since the last e-mail was posted to this mailing
> list, so I have a few questions to ask.
I'll be happy to answer any, although I'll appreciate patience. I've got
lots of issues to address recently, the most involving being PSU failures.
It appears that the units from early 1990s have now reached the age at
which capacitor failures have become a plague. Chemicon SXF parts are
apparently especially notorious for their electrolyte leaks and they were
unfortunately used by DEC in their several PSU models. They need to be
replaced ASAP, before further damage ensues. Replacement PSUs have become
scarce, making PSU repair the only way to move forward, and schematics are
unavailable making it a tough challenge for someone with no previous PSU
repair experience.
> I am wondering about any recent progress of the Linux port on VAX, is
> there still any code being written by J.B.G. or Maciej, maybe others who
> got involved ?
The port has stalled although I still have intent to continue with it.
Unfortunately I have recently discovered my 4000/90 I used for the port
has silently died while in storage and does not want to start. I'm in the
process of dealing with it; hopefully the outcome will be good.
Either way my intent is to move forward sometime, possibly by importing
the old patches into current upstream Linux kernel sources. On the
userland side we have patches for GCC 4.1.2, glibc 2.4 and GDB 6.8.
Binutils work out of the box.
> Have you considered sharing the code on Github or similar git providers
> (it would make it easier for other people to maybe start with the
> contribution) ?
That might be a good idea, thanks, for the new kernel tree.
> What is the status of the code currently written, does it boot any VAX
> machines (which ?) up to a shell prompt ?
Before it died my 4000/90 netbooted over its onboard Ethernet interface,
and then mounted NFS root and continued userland booting over a PMAD-A
TURBOchannel Ethernet option card. It used to reach a Bash prompt with
some software running started by init(8), most notably the NTP daemon. I
suppose more user software would work merely if I got to compiling it.
The reason for the complicated Ethernet setup was the SGEC driver (which
is there among VAX patches) does not work with the /90 for some reason.
I'm told the SGEC is really an early version of the PCI Tulip chip, except
with a different host bus interface. So I suppose rather than trying to
fix up whatever code we have in the SGEC driver we should really wire the
Tulip driver instead, just like we have the TGA and DEFPA PCI drivers
wired for SFB+ and DEFTA TURBOchannel options respectively now.
With userland we have a few issues, the most obvious one piece of core
software being outdated. Before moving forward I have planned to address
a couple of issues which have hindered my progress:
1. `ldconfig' crashes with a stack overflow requiring DSO symlinks to be
created manually.
2. Likewise native GDB crashes with a stack overflow making debugging the
former issue a bit more complicated. A little bit only though as
`gdbserver' actually works with cross-GDB attached remotely. There was
some issue with DWARF record interpretation though IIRC.
3. Native GCC crashes with a stack overflow again, possibly the same issue
as the two former.
Now the stack overflow was a real one, being netbooted my machine had no
swap, but it had 128MB of RAM and consequently roughly as much VM space,
and that indeed got exhausted. So it clearly was an obvious bug
somewhere, perhaps miscompilation even. Which is why I wanted to address
it before moving forward, so that I knew it wasn't carried forward by
chance. NB the kernel itself seemed solid, it was only userland
suffering.
Now with the bug hopefully fixed sometime my plan was to move forward
with glibc first, and that requires a TLS ABI for NPTL support. Version
2.4 is really the last one that (with a hack) along with GCC 4.1.x can be
persuaded to run with LinuxThreads.
With a TLS ABI in place we will be able to submit a VAX glibc port
upstream; with the current glibc consensus-based maintenance model we
might be able to succeed with that, although we might not be able to
persuade people to accept non-IEEE-754 hard float support.
Updates to GCC can then follow, and should be easier as the VAX backend
has been to some extent maintained upstream for the NetBSD project.
Wiring an existing backend to another OS is pretty straightforward, and I
have made patches for all language bindings available as at GCC 4.1,
including Java and Ada.
Again an issue is non-IEEE-754 hard float, which is supported by GCC, but
is not really compatible with Java. I have made some efforts to simulate
IEEE 754 hard float with VAX hard float for finite numeric floating-point
data as the two formats can be converted between each other quite easily.
This conversion has to happen at the boundary between Java bytecode and
native compiled code only. I haven't verified the results as obviously
I'd need to go much further with native userland than I did before I was
faced with the problems mentioned above. The changes let me cross-compile
Classpath successfully though.
Changes to GDB should be easy to port, they're self-contained and not
really extensive. They mostly comprise Linux-specific ptrace(2) bindings
and native support as vax-tdep.c is there in place already.
Anything else should really be a matter of compiling.
> Does anything else work after a completed bootup ?
See the VAX/Linux binary RPM packages and corresponding sources at my
site: <ftp://ftp.linux-mips.org/pub/linux/mips/people/macro/>. Linux
kernel patches are unfortunately offline after the reinstallation of
git.kernel.org following a break-in a few years ago. I did post all my
updates I believe though at one point to our list and they should be
available in the archives.
I do hope to get back to our effort once I'm done with my current
hardware mess and then some DECstation updates with the MIPS port which I
have meant to be doing (SCSI driver). Realistically not before next year
I'm afraid though.
If you have any further questions or comments, then please shout. I've
cc-ed JBG in case he's anything to add. He's been busy recently and I
wouldn't be surprised if he'd missed your posting altogether just as
almost have I.
Maciej
More information about the Vax-linux
mailing list