6.3. Sun Solaris
Prev | Chapter 6. Ports | Next

## 6.3. Sun Solaris

MPlayer should work on Solaris 2.6 or newer.

On UltraSPARCs, MPlayer takes advantage of their VIS extensions (equivalent to MMX), currently only in libmpeg2, libvo and libavcodec, but not in mp3lib. You can watch a VOB file on a 400MHz CPU. You'll need mLib installed.

To build the package you will need GNU make (`gmake`, `/opt/sfw/gmake`), native Solaris make will not work. Typical error you get when building with Solaris' make instead of GNU make:

       % /usr/ccs/bin/make
       make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

On Solaris SPARC, you need the GNU C/C++ Compiler; it does not matter if GNU C/C++ compiler is configured with or without the GNU assembler.

On Solaris x86, you need the GNU assembler and the GNU C/C++ compiler, configured to use the GNU assembler! The mplayer code on the x86 platform makes heavy use of MMX, SSE and 3DNOW! instructions that cannot be compiled using Sun's assembler `/usr/ccs/bin/as`.

The `configure` script tries to find out, which assembler program is used by your "gcc" command (in case the autodetection fails, use the `--as=/wherever/you/have/installed/gnu-as` option to tell the `configure` script where it can find GNU "as" on your system).

Error message from `configure` on a Solaris x86 system using GCC without GNU assembler:

       % configure
       ...
       Checking assembler (/usr/ccs/bin/as) ... , failed
       Please upgrade(downgrade) binutils to 2.10.1...

(Solution: Install and use a gcc configured with `--with-as=gas`)

Typical error you get when building with a GNU C compiler that does not use GNU as:

       % gmake
       ...
       gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
            -fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
       Assembler: mplayer.c
       "(stdin)", line 3567 : Illegal mnemonic
       "(stdin)", line 3567 : Syntax error
       ... more "Illegal mnemonic" and "Syntax error" errors ...

Due to bugs in Solaris 8, you may not be able to play DVD discs larger than 4 GB:

- The sd(7D) driver on Solaris 8 x86 has a bug when accessing a disk block >4GB on a device using a logical blocksize != DEV_BSIZE (i.e. CD-ROM and DVD media). Due to a 32Bit int overflow, a disk address modulo 4GB is accessed (http://groups.yahoo.com/group/solarisonintel/message/22516). This problem does not exist in the SPARC version of Solaris 8.

- A similar bug is present in the hsfs(7FS) filesystem code (aka ISO9660), hsfs may not not support partitions/disks larger than 4GB, all data is accessed modulo 4GB (http://groups.yahoo.com/group/solarisonintel/message/22592). The hsfs problem can be fixed by installing patch 109764-04 (sparc) / 109765-04 (x86).

On Solaris with an UltraSPARC CPU, you can get some extra speed by using the CPU's VIS instructions for certain time consuming operations. VIS acceleration can be used in MPlayer by calling functions in Sun's mediaLib.

VIS accelerated operations from mediaLib are used for mpeg2 video decoding and for color space conversion in the video output drivers.

Prev | Up | Next
6.2. *BSD | Home | 6.4. Silicon Graphics Irix