view doc/README.SunOS @ 267:f8fe0f87b7c1

- removed configure-based checks for using --noexecstack / -Wa,--noexecstack in make A{S,C,}FLAGS variables, b/c inconsistent behaviour across platforms and often unusable, b/c: * braindead defaults (e.g. ASFLAGS on pretty much everything GNU, used in default suffix rules with *both* cc for .S and as for .s) * often took decisions on bogus private STACK headers in ELF files, set on platforms that lack any implementation, so pointless * tests have shown that only some GNU/* platforms and FreeBSD actually make use of this, if at all, that is... and for those, will switch back to .section .note.GNU-stack (next commit)
author Tassilo Philipp
date Sat, 27 May 2017 19:18:23 +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!