@@ -3,9 +3,7 @@ Frequently Asked Questions (FAQ) for PostgreSQL
3
3
Sun Solaris specific
4
4
to be read in conjunction with the installation instructions
5
5
============================================================
6
- last updated: $Date: 2006/10/02 23:01:17 $
7
-
8
- current maintainer: Peter Eisentraut <peter_e@gmx.net>
6
+ last updated: $Date: 2006/10/04 22:03:22 $
9
7
10
8
11
9
Contents:
@@ -15,6 +13,10 @@ Contents:
15
13
3) Why does configure complain about a failed test program?
16
14
4) Why does my 64-bit build sometimes crash?
17
15
5) How can I compile for optimum performance?
16
+ 6) How to compile PostgreSQL with Sun Studio?
17
+ 7) Where I can download prepared Solaris packages?
18
+ 8) How to tune PostgreSQL and Solaris for best performance?
19
+ 9) Can I use dtrace for tracing PostgreSQL?
18
20
19
21
1) What tools do I need to build and install PostgreSQL on Solaris?
20
22
@@ -23,18 +25,27 @@ You will need
23
25
- GNU zip (for installing the documentation)
24
26
- GNU make
25
27
- GNU readline library (optional)
26
- - GCC (if you don't have Sun's compiler)
28
+ - Sun Studio CC or GCC
29
+
30
+ You can download Sun Studio from:
31
+ http://developers.sun.com/prodtech/cc/downloads/index.jsp
27
32
28
- If you like Solaris packages, you can find these tools here:
29
- http://www.sunfreeware.com
33
+ Many of GNU tools are integrated into the Solaris 10 or they are
34
+ present on the Solaris companion CD.
35
+
36
+ If you like packages for older version of Solaris, you can find these
37
+ tools here:
38
+ http://www.sunfreeware.com or http://www.blastwave.org
30
39
31
40
If you prefer sources, look here:
32
41
http://www.gnu.org/order/ftp.html
33
42
34
- You can build with either GCC or Sun's compiler suite. We have heard
35
- reports of problems when using gcc 2.95.1; gcc 2.95.3 or later is
36
- recommended. If you are using Sun's compiler, be careful *not* to
37
- select /usr/ucb/cc; use /opt/SUNWspro/bin/cc.
43
+ You can build with either GCC or Sun's compiler suite. For better
44
+ code optimalization Sun's compiler is strongly recommended on the
45
+ SPARC architecture. We have heard reports of problems when using
46
+ gcc 2.95.1; gcc 2.95.3 or later is recommended. If you are using
47
+ Sun's compiler, be careful *not* to select /usr/ucb/cc;
48
+ use /opt/SUNWspro/bin/cc.
38
49
39
50
40
51
2) Why do I get problems when building with OpenSSL support?
@@ -53,15 +64,17 @@ This is because of a namespace conflict between the standard
53
64
Upgrading your OpenSSL installation to version 0.9.6a fixes this
54
65
problem.
55
66
67
+ Solaris 9 and above already newer version of OpenSSL.
68
+
56
69
57
70
3) Why does configure complain about a failed test program?
58
71
59
72
This is probably a case of the run-time linker being unable to find
60
- libz or some other non-standard library, such as libssl. To point it
61
- to the right location, set the LD_LIBRARY_PATH environment variable ,
62
- e.g.,
73
+ some library. On solaris 8 and older it should be libz or some other
74
+ non-standard library, such as libssl. To point it to the right location ,
75
+ set the LD_LIBRARY_PATH environment variable, e.g.,
63
76
64
- LD_LIBRARY_PATH=/usr/local /lib:/usr/local/ssl /lib
77
+ LD_LIBRARY_PATH=/usr/sfw /lib:/opt/sfw/lib:/ usr/local/lib
65
78
export LD_LIBRARY_PATH
66
79
67
80
and restart configure. You will also have to keep this setting
@@ -88,3 +101,77 @@ to read
88
101
does not matter.)
89
102
90
103
Then build as usual.
104
+
105
+
106
+ 5) How can I compile for optimum performance?
107
+
108
+ On SPARC architecture Sun Studio is strongly recommended for compilation.
109
+ Try using -xO5 optimalization flag to generate significantly faster binaries.
110
+ Do not use any flags which modify behavior of floating point operations and
111
+ errno processing (e.g. -fast). These flags should raise some nonstandard
112
+ PostgreSQL behavior for example in the date/time computing.
113
+
114
+ If you do not reason to use 64-bit binaries on SPARC, prefer 32-bit version.
115
+ The 64-bit operations are slower and 64-bit binaries are slower then 32-bits.
116
+ And on other side a 32-bit code on the AMD64 CPU family is not native and
117
+ that is why 32-bit code is significant slower on this CPU family.
118
+
119
+
120
+ 6) How to compile PostgreSQL with Sun Studio?
121
+
122
+ On Solaris 10 you can performed following steps:
123
+
124
+ export CC=/opt/SUNWspro/bin/cc
125
+ export CFLAGS=-xO5
126
+ export LDFLAGS=-lm
127
+ ./configure --without-readline
128
+ gmake
129
+
130
+
131
+ 7) Where I can download prepared Solaris packages?
132
+
133
+ The PostgreSQL is bundled with Solaris 10 (from update 2). Official packages
134
+ are too available on http://pgfoundry.org/projects/solarispackages/.
135
+
136
+ Packages for older Solaris version (8,9) you can download from:
137
+ http://www.sunfreeware.com or http://www.blastwave.org
138
+
139
+
140
+ 8) How to tune PostgreSQL and Solaris for best performance?
141
+
142
+ Some tuning tricks can be found here:
143
+ http://www.sun.com/servers/coolthreads/tnb/applications_postgresql.jsp
144
+
145
+ This article is primary focused on T2000 platform, however, many of
146
+ recommendations are general for other hardware with Solaris.
147
+
148
+
149
+ 9) Can I use dtrace for tracing PostgreSQL?
150
+
151
+ The PostgreSQL 8.2 has implemented dtrace support. You can enable it by
152
+ the --enable-dtrace configure switch. If you want to compile a 64-bit code
153
+ with dtrace you must specify DTRACEFLAGS='-64', e.g.
154
+
155
+ Using gcc compiler:
156
+ $ ./configure CC='gcc -m64' --enable-dtrace DTRACEFLAGS='-64' ...
157
+
158
+ Using Sun compiler:
159
+ $ configure CC='/opt/SUNWspro/bin/cc -xtarget=native64' --enable-dtrace DTRACEFLAGS='-64'
160
+
161
+
162
+ If you have some problem with postgres linking, looks like:
163
+
164
+ Undefined first referenced
165
+ symbol in file
166
+ AbortTransaction utils/probes.o
167
+ CommitTransaction utils/probes.o
168
+ ld: fatal: Symbol referencing errors. No output written to postgres
169
+ collect2: ld returned 1 exit status
170
+ gmake: *** [postgres] Error 1
171
+
172
+ , check if you have Solaris 10u3 or newer installed on your box.
173
+
174
+ You can also find more information here:
175
+ http://blogs.sun.com/robertlor/entry/user_level_dtrace_probes_in
176
+
177
+