Wednesday, September 10, 2008

edelib on SunOS 5.7

Just putting a first impressions after compiling edelib on SPARC powered Ultra-1 SunOS 5.7. This should be, according to this page, Solaris 7 or Solaris 2.5; I never managed to get into this naming scheme.

Ultra-1 always associated me with durability, a feature not known for today's computers. Just when I remember what we did with those few pieces in our lab, how much they were forcefully shutdowned (by plugging out power cable) and how much data they crunched with 200 MHz cpu's... and they still happily running today. Without a problem. That is a quality!

For those unlucky who have no clue what I'm talking about, here are detail specs with images. In short, a very old computer, powered with 64-bit UltraSPARC 200MHz processor and cca. 32 MB or RAM. A perfect piece and platform to test against.

To be honest, some time before I checked edelib status on this computer (ChangeLog says December, 2007) and things changed a bit since that time.

So what we have here? First of all, D-BUS compilation was disabled; I neither don't have nerves to compile it and, most important, I'm lacking space on hard drive (just another indicator how modern software is bloat). I had to disable it manually (commenting parts in Jamfiles and removing checks for pkg-config, because it was not present), but that was 1-2 minute job.

This gave me a nice TODO: some option to disable D-BUS in edelib (during configure phase) would be nice and, when given, should only skip compiling Edbus code much like --without-x does. edelib also utilize --without-x and when given, all code with FLTK involvement will be omitted during compilation (with X11 parts of course). And was used here.

After these preparations, configure script did it's job, reporting small syntax error during XDG mime database presence detection; some csh quirk and should be fixed soon. Compilation then died on regex.h (GNU regex library copy used internally) due some gcc extension (nothing that #ifdef can't fix), which was pretty good; I thought things will be a lot worse :)

Next target was to run tests. Here is the result:

Tests: 55 Passed: 52 Failed: 3 (time: 0.26)

Those 3 failed tests were:

test for mime types since database wasn't installed

test for directory functions; check was for "/root" and Solaris does not have it

and test for binary presence; there are some hardcoded values in test which are standard for Linux systems; Solaris places binaries somehow differently

So, nothing critical. The last thing was to try some tests with the new IPC code I added and after few linker Undefined... errors, additional linking with libxnet was solution (in this library Solaris keeps networking primitives). Test worked as charm :)

ADDON: I just modified build system so shared library could be created too.

Now, the real job would be to compile and run current EDE 2.0 code here. That will be left for the future ;)