On Mon, Jul 11, 2022, 1:48 PM Gavin Tersteeg <gctersteeg@gmail.com> wrote:
Hello, and greetings!

I guess as this is my first post here, I should give some u background on what I have been working on. Last summer I spent a lot of time getting UNIX V6 working on my PDP-11/23 system. It took a lot of tinkering with the kernel and drivers to make it work in the way I wanted to, but in the end I was left with a system that ran well enough to do some demonstrations at VCFMW.

This year I want to do more stuff with 1970s era UNIX, but now with even more technical restrictions. I have had a Heathkit H-11 (consumer grade PDP-11/03) for a while now, and I have been looking for something interesting to do with it. From my research, it seems like there were two different UNIX variants that could run on a system like this. These variants were LSX and MINI-UNIX. MINI-UNIX seems to require a decent mass-storage device like a RK05 and some porting to work on an 11/03, while LSX is designed to work on exactly the hardware specs that I have on hand.

So on to the actual issues I am having at the moment: I have put together a SIMH instance to get the ball rolling in building a kernel that will boot on my EIS-less 11/03, but I am having significant difficulty actually getting the kernel to build. The first issue is that the C compiler will randomly spit out a "0: Missing temp file" when attempting to compile something. This is annoying, but circumventable by just running the same command over and over until it works. The second issue, however, is much more of a road block for me. I can't seem to get the kernel to actually link together once everything is compiled. When the final "ld -X" is executed, I always get the following errors:

(This is from the build script found in the "shlsx" file)

I am assuming that this is some sort of issue with the object file orderings, but I simply do not know enough about V6 ld to properly debug this issue. I am hoping that somebody here has already run into this issue, and knows what I am doing wrong.

_end is the end of the text segment. _edata same for the data. You can create these two by just creating a file that defines them as symbols = . And global. And link that file last. Though crt is supposed to have that. 

_decmch is likely in m.s so maybe that's not included.  Iirc it should be next to last...

You might already have files with these symbols... nm is your friend here...


If I can get this working, I have a long laundry list of modifications and experiments that I want to run with LSX, but as it stands, this is where I am stuck at.

Thank you,