MirBSD going ELF

Sponsored by
HostEurope Logo

MirBSD going ELF

⚠ This page contains old, outdated, obsolete, … historic or WIP content! No warranties e.g. for correctness!

[ old MirBSD™ logo ]

This is an archived weblog of the development leading to MirOS. All entries are courtesy of tg@ and historic.

News bottom

I am going to update my own system, remove everything old stuff and build basic packages. Then I'll sign and upload stuff. Review in a while for status information.

Later that day
The snapshot has successfully been (historic: http://templeofhate.com/tglaser/obsd/) uploaded here and verified by checksums. It is available for download, http install and pgp verification of the RIPEMD-160 checksum file. This opens the development branch for MirBSD snapshot #3 and deems Snap#2 RC4 the RELEASE version.

I found that it's better to not interrupt CTM while it's updating the CVS repo. But then, the 3000A base splitfile should be out, so I'm waiting for it. No updates scheduled in the next days. But I still hope to get the ELF patch after FOSDEM (where I'll test belgian beer).

Got the ELF diff and an ELF snap (not installed, because OpenBSD and MirBSD differ too much). I'll start playing with it after FOSDEM. In the meanwhile, tell Wim to make the OpenBSD-cvs 3000A base CTM delta. Thank you.

Diary of a success - installation of ELF
Instead of going to FOSDEM today (which I couldn't yet for various reasons), I started ./sbin/mount of Todd Fries' ELF snapshot and got a result :)

Then I copied over ldconfig and ldconfig'd ./usr/lib/ of ELF, since my MirBSD system is fully static yet. Now I'm going to look for development stuff (gcc, binutils, etc.) and copy that over to /usr...
Being lazy, I just copy over the entire of usr/bin and usr/lib/gcc-lib; the first time I missed usr/libexec/ld.so though. Works fine now.
Well, do not forget editing /etc/mk.conf before issuing the make build. OTOH, we only process make build until the libs are built (and installed), since we have to build GCC 3.2 before that (using the newly built libs).
After issuing make obj *hint*, the "make build" command fails because the gcc can't create binaries. D'oh. Copy over .a libs from todd.
And don't forget *.o files.
Then patch egcc, make update-patches and try to build it (and test) manually...
Well, my libc.a makes ld throw an internal bfd error. Let's see what I can do...
Found out why: the OpenBSD developers seem to always include SCCS info in the .o files, so they seem not to have looked at it: like this:
#if defined(SYSLIBC_SCCS)
- you'd need to swap the order of these two lines... *sigh*
Also, there's a file called perform.h in gcc/config/i386/ which is not (yet or any more?) in egcs... gah!
After some bitching around, stealing stuff from the base system and other files, maybe egcc builds now. I'll go to bed, though.

On CVS commit messages
I decided to make a standard in CVS commit messages for MirBSD diffs: "pre-build" means "intended for a build, but not sure if complete (distfile lists, etc.)"; "post-build" means "make build and make release finished" (unless otherwise spoken, make release is not excluded). "intermediate" means "i'm too lazy to make build or even release"; "unstable", "development" and "broken" mean they should not be used unless you know what you do.

After getting back from FOSDEM, I hacked gcc and g++ 3.2.1 (no 3.2.2 yet) to succeed in ELF, and make a new set of diffs against nearly the same date as the last MirBSD a.out snapshot (since I don't dare to compile or even boot an ELF kernel yet - even if an ELF+LBA boot loader was promised to me on FOSDEM by Henning.

I successfully even built an ELF kernel, it's just that I have no idea how to boot it ;-)
Anyways, an ELF snapshot will make its ways to the new download place soon.

After finding out httpd is not chrooted on TOH, I was able to make some more free space on the server. And I uploaded the first MirBSD ELF snapshot (called #2 too, because the code base is nearly the same) including obsd.*, my-ports.tgz and gcc/g++ packages. The boot loader is still missing, and there are still no shared libraries, but you can switch them on in /etc/mk.conf now. I left it out in order to ease transition.

Minor one: added an include file in the machine/ area which drahn@ forgot to send me because *sigh* it was added, and not in the cvs repo before. Are there other ones as well? I want a boot loader!
Complete overhaul of editors/jupp port (jupprc and man page) as well.

Well, past midnight of yesterday: added utf-8 support to sirc and made it parse iso-8859-1 still correctly. Well, I still do not speak even any little bit perl, but it sorta works...

Seems as the djb man page distfile tarballs are irretrievable; that's why I started to mirror them.

I compiled my local stuff dynamically, but it's still darn unstable. I should chat a bit with drahn@.
Update the ports diff, including INDEX. Found out that my dsirc[6] diffs were crap and needed to be updated. I hope they do work now.

Startet re-synching the tree to -current (3.3-beta) after backing out everything ELF from /sys
Do not use yet. - Proves that many stuff was not really compiled with egcc ($CC). This sucks.

Made both make build and make release succeed; some of the changes should have gone in earlier. OTOH, catching up with -current again will be another hassle.

I got Transgaming WineX to compile with a bit of hassle, but it does not run (without Windows® installed) yet. I'll investigate this further. - Probably I will update MirBSD only twice the next days; when 3.3 goes tagged and when 3.3-current/i386 becomes ELF.
Ha! I knew! Building just another a.out kernel is impossible!

gcc 3.2.2 is driving me crazy. It ceases to build correctly, so switch back to gcc 3.2.1 - but backport nice changes like the revamped propolice and other stuff.
Booting ELF kernels works.

Hmm, who has doubted it? MirBSD is now self-hosting again, thanks to Master drahn, who made it working. This will enable me to publish another official snapshot (#3) soon. The diffs (against CTM tho) are already up.

Making the snapshot. It is fairly interesting how much breaks in the very last moments. For now, there will be no shared object of libstdc++ v3. The pic library is installed, though.

No snapshot today, I've had way too many issues and lost over 40 emails. Maybe tomorrow.

Follow this hRef (hypertext reference) to read about the story of MirBSD after the snapshot #3, or go back to the log overview or to the MirOS main page.

Hope you like it. Have a lot of fun...

MirBSD Logo