view doc/README.SunOS @ 27:523c45dfa8fb

- refactored arm calling conventions' callvm code, so that the code that keeps the caller from overwriting the return value on some platforms also works on OpenBSD (before we casted the function pointer to have long long as return type, to hint the caller that there is one, but that triggers an intentional SIGABRT on OpenBSD for security reasons; now the decl reflects this, directly)
author cslag
date Tue, 15 Sep 2015 12:48:52 +0200
parents 3e629dc19168
children c81374ac9fba
line wrap: on
line source

Building DynCall on Solaris and other SunOS distributions
=========================================================


Current Status of Solaris Architectures:

i386      : ok.
AMD64     : ok.
SPARC     : no dyncallback support.
SPARC64   : bugs in dyncall (see BUGS), no dyncallback support.

Supported Compilers: SunPro C/C++ compiler and GCC.
Supported Build-Systems: configure/make, Makefile.embedded and CMake.


Details
=======
It has been ported and tested for x86 and sparc32/64 on Solaris 10/X86 
using the SunPro compiler suite and sun's make. The same goes for
OpenSolaris distributions - the library builds and runs fine on Nexenta
x86 and x64.
On Solaris, it also cross-builds for amd64 just fine, but the we don't
have access to a x64 Solaris to run the tests.


Building DynCall:
-----------------

  $ ./configure
  $ make



It is also possible to use 'Makefile.embedded' for sun make, GNU make and
BSD make:


Build with SUN make and compilers from sun using Makefile.embedded:
-------------------------------------------------------------------

  $ make -f Makefile.embedded sun
  $ (cd test; make -f Makefile.embedded sun)


Build for sparc64 with SUN make and compilers from sun using Makefile.embedded:
-------------------------------------------------------------------------------

  $ make -f Makefile.embedded sun-64bit
  $ (cd test; make -f Makefile.embedded sun-64bit)


Build with SUN make and GNU C compiler using Makefile.embedded:
---------------------------------------------------------------

  $ make -f Makefile.embedded sun-gcc
  $ (cd test; make -f Makefile.embedded sun-gcc)
 

Build for sparc64 with SUN make and GNU C compiler using Makefile.embedded:
---------------------------------------------------------------------------

  $ make -f Makefile.embedded sun-gcc-64bit
  $ (cd test; make -f Makefile.embedded sun-gcc-64bit)


NOTE: There are still issues with the sparc64 port on Solaris.


Build with CMake, Sun make and SunPro for sparc64:
--------------------------------------------------

  $ cmake -DCMAKE_C_FLAGS=-m64 -DCMAKE_ASM_FLAGS=-m64 -DCMAKE_CXX_FLAGS=-m64 .
  $ make

Installation
------------

  $ make -f Makefile.embedded PREFIX=<some/prefix> install


Tested Platforms
----------------

x86/amd64: 
  - using Solaris 10 using SunPro Tools
  - using Nexenta (SunOS 5.11 kernel) using GNU tools

sparc 32/64 bit:
  - SunOS 5.1 using SunPro and GCC on a Sun Fire V440 via developer account
    thanks to gwdg.de!