Platform Notes (Solaris/Illumos)

From FreeM Wiki
Revision as of 22:07, 27 March 2025 by Smw (talk | contribs) (→‎Verified Releases)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Port Category

The Solaris port is a Tier 1 Port, and Solaris 8 on 64-bit SPARC is the platform where primary development occurs.

Verified Releases

  • 0.62.3 (Solaris 5.8 sparc64, Solaris 5.10 i86pc, Solaris 5.11 i86pc, Solaris 5.11 sparc64, OpenIndiana Hipster 5.11 amd64, 27 Mar 2025
  • 0.62.2 (Solaris 5.8 sparc64, Solaris 5.10 i86pc, Solaris 5.11 i86pc, Solaris 5.11 sparc64, OpenIndiana Hipster 5.11 amd64, 23 Mar 2025)
  • 0.62.1 (Solaris 5.10 i86pc, 17 Mar 2025)
  • cvs-current (Solaris 5.8 sparc64, Solaris 11.4 sparc64 and i86pc)
  • 0.62.1 (Solaris 5.8 sparc64, Solaris 11.4 sparc64 and i86pc, OpenIndiana Hipster, 16 Mar 2025)
  • 0.61.2 (Solaris 5.8 sparc64, Solaris 11.4 sparc64 and i86pc)
  • 0.59.0 (Solaris 10 sparc64, 4 Aug 2023)
  • 0.59.0 (Solaris 7 sparc32, 4 Aug 2023)
  • 0.59.0 (Solaris 11.4 i86pc, 4 Aug 2023)
  • 0.57.0 (Solaris 11.3 sparc64, 4 Aug 2023)

Build Notes

Solaris 7

  • If using the old sunfreeware.com GNU toolchain packages on Solaris 7, you will need the latest 7_Recommended.zip patch cluster.
  • The mktemp utility may lock up several times during the configure phase. If this happens, you may simply kill the process with pkill -9 mktemp. This does not appear to harm the build.

Solaris 8

Binary Packages

On Solaris 8, you can install a binary release:

$ sudo pkgadd -d CLDfreem-<version>-solaris5.8-sparcv9.pkg

Once this is done, add yourself to the freem group:

  1. Open /etc/group as root in your favorite text editor
  2. Find the line beginning with freem
  3. Append your username to the end of that line
  4. Save the file
  5. Exit the editor

Now, you can start the FreeM daemon as follows:

$ sudo /etc/init.d/freem start

Building From Source

You will need the latest 8_Recommended.zip patch cluster for Solaris, as well as:

  • gcc (3.4 or higher recommended)
  • autoconf
  • automake
  • libtool
  • texinfo
  • readline (recommended but not strictly required)

Solaris 9

TBD

Solaris 10

TBD

Solaris 11

We build with the IPS packages for the GNU toolchain here. The Sun C compiler can also be used here (at least the version from Developer Studio 12.6).

Necessary Packages

$ sudo pkg install gcc automake autoconf gnu-make git readline libtool texinfo ncurses

Dealing with ncurses

You will need to tell the configure script not to bother with the wide-character ncurses library (does not apply to releases later than 0.61.2):

$ ./configure --without-ncursesw

OpenIndiana

Binary Packages

On OpenIndiana, you can install a binary release:

$ sudo pkgadd -d CLDfreem-<version>-openindiana5.11-amd64.pkg

Once this is done, add yourself to the freem group, and start the FreeM daemon as follows:

$ sudo /etc/init.d/freem start

Building From Source

See instructions for Solaris 11, but with the exception that configure must be run as follows:

$ ./configure MAKE=gmake

Testing Details

We build and test the Solaris port of FreeM on the following systems:

Sun Ultra 10

  • Sun Ultra 10 with a 400MHz UltraSPARC-IIi CPU (64-bit)
  • 640MB RAM
  • Solaris 5.8 Generic_117350-39
  • gcc v3.4.6
  • autoconf 2.69
  • automake 1.16.5

Sun SPARCserver 20

  • Sun SPARCserver 20 with dual 100MHz Ross HyperSPARC CPUs (32-bit)
  • 512MB RAM
  • Solaris 7 with the latest 7_Recommended.zip patch cluster applied (REQUIRED FOR SOLARIS 7)
  • gcc v3.4.6
  • autoconf 2.68
  • automake 1.11.1

SunFire T2000

  • Sun UltraSPARC T1 CPU (64-bit)
  • Solaris 10

Oracle SPARC T4-1

  • Oracle SPARC T4 CPU (64-bit)
  • Solaris 11.4 11.4.0.15.0
  • gcc v7.3.0
  • autoconf 2.69
  • automake 1.15
  • Oracle Developer Studio 12.6 (SunCC compiler)

x86 VM

  • Solaris 11.4 11.4.0.15.0
  • gcc v7.3.0
  • autoconf 2.69
  • automake 1.15

OpenIndiana (Illumos)

  • Proxmox VM
  • OpenIndiana Hipster 5.11 illumos-053feb1540
  • gcc 14.2.0
  • autoconf 2.72
  • automake 1.16.5


This port should theoretically run on any Solaris or Illumos machine running Solaris 7 or newer.

Required Kernel Tuning

Solaris 11

TBD

Solaris 8

Append the following to /etc/system and reboot:

set shmsys:shminfo_shmmax = 67108864
set shmsys:shminfo_shmmni = 0x1000
set shmsys:shminfo_shmseg = 0x100

Starting FreeM Daemon Automatically

These instructions apply only to source builds. The binary packages install the init script automatically.

  • Copy scripts/solaris-init/freem to /etc/init.d
  • Make a symbolic link from /etc/rc3.d/S20freem to /etc/init.d/freem
  • Run /etc/init.d/freem start