... | @@ -6,63 +6,22 @@ These instructions have only been checked for GHC 6.12.1 on Solaris 10 on SPARC. |
... | @@ -6,63 +6,22 @@ These instructions have only been checked for GHC 6.12.1 on Solaris 10 on SPARC. |
|
|
|
|
|
GHC versions 6.10.1 and earlier don't have a working SPARC native code generator, and have many small build issues with Solaris. Use GHC 6.12.1 or later.
|
|
GHC versions 6.10.1 and earlier don't have a working SPARC native code generator, and have many small build issues with Solaris. Use GHC 6.12.1 or later.
|
|
|
|
|
|
## Installing GNU packages
|
|
## Get the latest development tools
|
|
|
|
|
|
|
|
|
|
GHC relies on many GNU-isms that are not supported by the native Solaris build tools. The following environment is known to work. Later versions may work but have not been tested. Taking the time to install these tools is likely to be less painful than debugging build problems due to unsupported versions (and this is your official warning).
|
|
|
|
|
|
|
|
> <table><tr><th> GNU binutils 2.20 </th>
|
|
|
|
> <th> for GNU ld, maybe others
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GNU coreutils 8.4 </th>
|
|
|
|
> <th> for GNU tr, maybe others
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GNU make 3.81 </th>
|
|
|
|
> <th> make files use GNU extensions
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GNU m4 1.4.13 </th>
|
|
|
|
> <th></th></tr>
|
|
|
|
> <tr><th> GNU sed 4.2 </th>
|
|
|
|
> <th> build scripts use GNU extensions
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GNU tar 1.20 </th>
|
|
|
|
> <th> Solaris tar doesn't handle large file names
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GNU grep 2.5 </th>
|
|
|
|
> <th> build scripts use GNU extensions
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GNU readline 5 </th>
|
|
|
|
> <th></th></tr>
|
|
|
|
> <tr><th> GNU ncurses 5.5 </th>
|
|
|
|
> <th></th></tr>
|
|
|
|
> <tr><th> Python 2.6.4 </th>
|
|
|
|
> <th> needed to run the testsuite with multiple threads
|
|
|
|
> </th></tr>
|
|
|
|
> <tr><th> GCC 4.1.2 </th>
|
|
|
|
> <th> this exact version is strongly recommended
|
|
|
|
> </th></tr></table>
|
|
|
|
|
|
|
|
|
|
|
|
Some of these can be obtained as binary versions from the [ blastwave.org](http://www.blastwave.org/) collection, others need to be downloaded as source from [ gnu.org](http://www.gnu.org).
|
|
|
|
|
|
|
|
|
|
|
|
The blastwave libraries are usually installed under `/opt/csw`, so you may need to manually set `LD_LIBRARY_PATH` to point to them:
|
|
|
|
|
|
|
|
```wiki
|
|
|
|
export LD_LIBRARY_PATH=/opt/csw/lib
|
|
|
|
```
|
|
|
|
|
|
|
|
## Using a bootstrapping GHC
|
|
See [Solaris Preparations](building/preparation/solaris).
|
|
|
|
|
|
|
|
## Building the distribution
|
|
|
|
|
|
|
|
|
|
You can either get a binary distribution from the GHC download page or use some other pre-existing GHC binary. These binaries usually assume that required libraries are reachable via LD_LIBRARY_PATH, or are in `/opt/csw`. If you get errors about missing libraries or header files, then the easiest solution is to create soft links to them in, `lib/ghc-6.12.1` and `lib/ghc-6.12.1/include` of the installed binary distribution. These paths are always searched for libraries / headers.
|
|
See the general [build instructions](building/quick-start).
|
|
|
|
|
|
# What can go wrong
|
|
## What can go wrong
|
|
|
|
|
|
|
|
|
|
The rest of this page discusses problems with specific tool versions. If you stick to the versions in the above list then you shouldn't have to read further.
|
|
The rest of this page discusses problems with specific tool versions. If you stick to the versions in the above list then you shouldn't have to read further.
|
|
|
|
|
|
## Only some GCC versions work
|
|
### Only some GCC versions work
|
|
|
|
|
|
- GCC version 4.1.2 is known to work. Use this version if possible.
|
|
- GCC version 4.1.2 is known to work. Use this version if possible.
|
|
|
|
|
... | @@ -90,7 +49,7 @@ GCC version 4.0.2 does not support thread local state (TLS), at least on SPARC. |
... | @@ -90,7 +49,7 @@ GCC version 4.0.2 does not support thread local state (TLS), at least on SPARC. |
|
GCC version 3.4.x is reported ([\#951](https://gitlab.haskell.org//ghc/ghc/issues/951)) to mis-compile the runtime system leading to a runtime error `schedule: re-entered unsafely`.
|
|
GCC version 3.4.x is reported ([\#951](https://gitlab.haskell.org//ghc/ghc/issues/951)) to mis-compile the runtime system leading to a runtime error `schedule: re-entered unsafely`.
|
|
But such a gcc version is sufficient for most user programs in case you just installed a ghc binary distribution.
|
|
But such a gcc version is sufficient for most user programs in case you just installed a ghc binary distribution.
|
|
|
|
|
|
## Using the wrong assembler
|
|
### Using the wrong assembler
|
|
|
|
|
|
|
|
|
|
If you fail to install GNU binutils then GHC will try to use the native Sun assembler, and you'll get something like this:
|
|
If you fail to install GNU binutils then GHC will try to use the native Sun assembler, and you'll get something like this:
|
... | @@ -110,7 +69,7 @@ The offending line is: |
... | @@ -110,7 +69,7 @@ The offending line is: |
|
.section .note.GNU-stack,"",@progbits
|
|
.section .note.GNU-stack,"",@progbits
|
|
```
|
|
```
|
|
|
|
|
|
## Split objects
|
|
### Split objects
|
|
|
|
|
|
|
|
|
|
Split objects didn't work in GHC 6.10.x, not sure about GHC 6.12.1.
|
|
Split objects didn't work in GHC 6.10.x, not sure about GHC 6.12.1.
|
... | @@ -125,7 +84,7 @@ If you run into linker problems then you can try turning it off by adding the fo |
... | @@ -125,7 +84,7 @@ If you run into linker problems then you can try turning it off by adding the fo |
|
SplitObjs=NO
|
|
SplitObjs=NO
|
|
```
|
|
```
|
|
|
|
|
|
## Test Failures
|
|
### Test Failures
|
|
|
|
|
|
|
|
|
|
The following regression tests are known to fail on SPARC/Solaris10 with GHC 6.12.1, using the 6.12.1 testsuite. Some of these are not platform specific.
|
|
The following regression tests are known to fail on SPARC/Solaris10 with GHC 6.12.1, using the 6.12.1 testsuite. Some of these are not platform specific.
|
... | | ... | |