summaryrefslogtreecommitdiff
path: root/bootstrap/README.Solaris
blob: f1817b6ade9bb029d58f29e84efdc975bfc44a0c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
$NetBSD: README.Solaris,v 1.16 2021/11/23 09:10:03 schmonz Exp $

You will need a working C compiler. Any version of gcc >2.8 should
work, 2.95.x and 3.x have been tested. SunPro 5 and 8 have been
tested, but versions in between should work, too.

The following packages are the minimum required on Solaris 8 to
bootstrap and build packages.

	- SUNWsprot
	- SUNWarc
	- SUNWbtool
	- SUNWtoo
	- SUNWscpu
	- SUNWxcu4

Realistically you will need more, such as SUNWlibm, and SUNWlibC for
C++ packages if you are using SunPro.

Please note the use of GNU binutils on Solaris is not supported.

pkgsrc in Solaris Zones
-----------------------

If you are trying to bootstrap pkgsrc in a Solaris Zone then you will
need to install the following packages (assuming you will bootstrap using
Sun's gcc package):

	- SUNWgccruntime
	- SUNWgcc
	- SUNWbinutils
	- SUNWbtool
	- SUNWggrp
	- SUNWxcu4
	- SUNWcs
	- SUNWsprot
	- SUNWlibm
	- SUNWloc
	- SUNWsndm

Tested on OpenSolaris 5.11 snv_105 and pkgsrc bootstrap as at Jan 2009.

If you are using gcc
--------------------
It makes life much simpler if you only use the same gcc consistently
for building all packages.

See http://www.NetBSD.org/docs/software/packages.html for
binary kits and initial packages, including gcc.

If the gcc installation is not in your $PATH you will need to pass
additional flags to bootstrap, for example:

	env CC=/opt/gcc-4.6.3/bin/gcc \
	    GCCBASE=/opt/gcc-4.6.3 \
	    ./bootstrap --abi=64

It is recommended that an external gcc be used only for bootstrapping,
and that you set USE_PKGSRC_GCC=yes in mk.conf so that the appropriate
pkgsrc gcc is installed and used.

Binary packages of gcc can be found through
http://www.sunfreeware.com/

If you are using Sun WorkShop
-----------------------------
You will need at least the following packages installed to build C and
C++ packages.

WorkShop 5.0:

	SPROcc		Sun WorkShop Compiler C 5.0
	SPROcpl		Sun WorkShop Compiler C++ 5.0
	SPROild		Sun WorkShop Incremental Linker
	SPROlang	Sun WorkShop Compilers common components

Sun ONE Studio 8:

	SPROcc		Sun ONE Studio 8 Compiler C
	SPROcpl		Sun ONE Studio 8 Compiler C++
	SPROdwrfb	DwarfSupportLibrary binaries
	SPROild		Sun ONE Studio 8 Incremental Linker
	SPROlang	Sun ONE Studio 8 Compilers Common Components
	SPROsbld	Sun ONE Studio 8 Linker Stab Library
	SPROscl		Sun ONE Studio 8 Standard Class Library for C++
	SPROtlbn7	Sun ONE Studio 8 Tools.h++ 7.1 Class Library for C++
	SPROutool	Sun ONE Studio 8 Common Tools

The corresponding 64-bit packages are also required to build 64-bit
binaries and libraries.

To build 64-bit binaries, pass '--abi=64' to bootstrap, and also see the
crle(1) man page to configure the runtime linking environment.

pkgsrc defaults to finding the Sun compiler in /opt/SUNWspro.  If you use a
different prefix, pass SUNWSPROBASE in the environment to bootstrap.  If 'cc'
is not in your path, pass CC as well.  So, to build 64-bit Sun compiler
bootstrap with a non-standard install:

	env CC=/opt/studio12/SUNWspro/bin/cc \
	    SUNWSPROBASE=/opt/studio12/SUNWspro \
	    ./bootstrap --abi=64

When bootstrap is finished your default mk.conf will contain ABI and
SUNWSPROBASE so you will not need to set these variables again.

Whichever compiler you use, please ensure the compiler tools and
your $prefix are in your PATH. This includes /usr/ccs/{bin,lib}
and eg. /usr/pkg/{bin,sbin}.

You should set the following variables in your mk.conf file:
	CC= 	cc
	CXX=	CC
	CPP=	cc -E
	CXXCPP=	CC -E

Common problems
---------------
Sometimes, when using libtool, /bin/ksh crashes with a segmentation fault. The
workaround is to use another shell for the configure scripts, for example by
installing shells/bash and adding the following lines to your mk.conf:

	CONFIG_SHELL=   ${LOCALBASE}/bin/bash
	WRAPPER_SHELL=  ${LOCALBASE}/bin/bash

Then, rebuild the devel/libtool-base package.

bootstrap-pkgsrc has been tested on Solaris 2.6 -> 11.