Sparc

Tracker 4.44

### 4.5.11: Sparc port

The Sparc version is probably the most tested since this is the architecture I happen to develop tracker under.

Tracker has run on Sparc 1, 1+, 5, 10, 20, under both SunOS 4.1.3 and Solaris 2.x. There are still problems though, thanks to the brain damaged way Sun is running their business (insert your favorite expletives here).

In case you don't have acc (ansi C compiler), tracker also works with the old K&R cc and also with gcc. In fact, it is recommended to compile tracker with gcc as gcc optimizes better (at least in tracker's case).

If you have Solaris 2.x, use target name ``solaris`' instead of ``sparc`' (thanks to Dave Tiller, See Credits.) include file names may change between ``sun/audioio.h`' and ``sys/audio.io.h`' or some other weird combination. Ask Sun about that!

If you don't hear any sound, don't forget to check that the Sparc isn't sending its output to the audio jack instead of the speaker or headphones.

There is a bug in older kernels of Sparc 5 that sometimes crashes the machine when you play with ``ioctl`' and ``audio`'. It's easy to check: run tracker twice in quick succession. If the machine seems to hang five seconds when launching tracker the second time, you have it! Upgrade, or you run the risk of crashing your machine!

There is some intricate code in ``Arch/Sparc/audio.c`' to check for the precise hardware used in your Sparc.

The `AUDIO_GETDEV` ioctl changed between SunOs 4 and Solaris 2, hence the two distinct checks.

In case the code doesn't recognize your hardware, it reverts to base 8000Hz Ulaw, unless you explicitly asks for a different frequency. It also informs you about what hardware you have. Report the result to me together with your audio manpage, and I'll fix it for the next release of tracker.

For the adventurous, there is a possible change to tracker which I haven't put into the Makefile because it's too complicated. It turns out that tracker is linked with ``-static`' because this consumes much less cpu in the critical modules. In fact, these critical modules are just ``resample.o`' and ``Arch/Sparc/audio.o`'. If you feel like it, you can use your linker separately to link these statically (something like ``ld -Bstatic -onew.o resample.o Arch/Sparc/audio.o`') and then link the whole executable dynamically.

On my setup, tracker shrinks from 188416 to 73728 bytes without any performance degradation.