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).

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