mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-09 08:10:09 +08:00
aa39e9a80c
around 64-bit vsnprintf bug.
103 lines
3.4 KiB
Plaintext
103 lines
3.4 KiB
Plaintext
============================================================
|
|
Frequently Asked Questions (FAQ) for PostgreSQL 7.2
|
|
Sun Solaris specific
|
|
to be read in conjunction with the installation instructions
|
|
============================================================
|
|
last updated: $Date: 2002/03/04 17:47:11 $
|
|
|
|
current maintainer: Peter Eisentraut <peter_e@gmx.net>
|
|
|
|
|
|
Contents:
|
|
|
|
1) What tools do I need to build and install PostgreSQL on Solaris?
|
|
2) Why do I get problems when building with OpenSSL support?
|
|
3) Why does configure complain about a failed test program?
|
|
4) How do I ensure that pg_dump and pg_restore can handle files > 2 Gb?
|
|
5) Why does my 64-bit build sometimes crash?
|
|
|
|
|
|
1) What tools do I need to build and install PostgreSQL on Solaris?
|
|
|
|
You will need
|
|
|
|
- GNU zip (for installing the documentation)
|
|
- GNU make
|
|
- GNU readline library (optional)
|
|
- GCC (if you don't have Sun's compiler)
|
|
|
|
If you like Solaris packages, you can find these tools here:
|
|
http://www.sunfreeware.com
|
|
|
|
If you prefer sources, look here:
|
|
http://www.gnu.org/order/ftp.html
|
|
|
|
You can build with either GCC or Sun's compiler suite. We have heard reports
|
|
of problems when using gcc 2.95.1; gcc 2.95.3 is recommended. If you are
|
|
using Sun's compiler, be careful *not* to select /usr/ucb/cc; use
|
|
/opt/SUNWspro/bin/cc.
|
|
|
|
|
|
2) Why do I get problems when building with OpenSSL support?
|
|
|
|
When you build PostgreSQL with OpenSSL support you might get
|
|
compilation errors in the following files:
|
|
|
|
src/backend/libpq/crypt.c
|
|
src/backend/libpq/password.c
|
|
src/interfaces/libpq/fe-auth.c
|
|
src/interfaces/libpq/fe-connect.c
|
|
|
|
This is because of a namespace conflict between the standard
|
|
/usr/include/crypt.h header and the header files provided by OpenSSL.
|
|
|
|
Upgrading your OpenSSL installation to version 0.9.6a fixes this
|
|
problem.
|
|
|
|
|
|
3) Why does configure complain about a failed test program?
|
|
|
|
This is probably a case of the run-time linker being unable to find
|
|
libz or some other non-standard library, such as libssl. To point it
|
|
to the right location, set the LD_LIBRARY_PATH environment variable,
|
|
e.g.,
|
|
|
|
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib
|
|
export LD_LIBRARY_PATH
|
|
|
|
and restart configure. You will also have to keep this setting
|
|
whenever you run any of the installed PostgreSQL programs.
|
|
|
|
Alternatively, set the environment variable LD_RUN_PATH. See the
|
|
ld(1) man page for more information.
|
|
|
|
|
|
4) How do I ensure that pg_dump and pg_restore can handle files > 2 Gb?
|
|
|
|
By default, gcc will build programs that only handle 32-bit file offsets.
|
|
This is not a real problem for the server but can easily be trouble for
|
|
pg_dump and pg_restore. Before running 'configure', set your CFLAGS variable
|
|
to specify support for files with 64-bit offsets. This has been verified
|
|
to work on Solaris 7:
|
|
|
|
CFLAGS="`getconf LFS_CFLAGS`"; export CFLAGS
|
|
|
|
|
|
5) Why does my 64-bit build sometimes crash?
|
|
|
|
On Solaris 7 and older, the 64-bit version of libc has a buggy vsnprintf
|
|
routine, which leads to erratic core dumps in PostgreSQL. The simplest known
|
|
workaround is to force PostgreSQL to use its own version of vsnprintf rather
|
|
than the library copy. To do this, after you run 'configure' edit two files
|
|
produced by configure:
|
|
|
|
(1) In src/Makefile.global, change the line
|
|
SNPRINTF =
|
|
to read
|
|
SNPRINTF = snprintf.o
|
|
|
|
(2) In src/backend/port/Makefile, add "snprintf.o" to OBJS. (Skip this
|
|
step if you see "$(SNPRINTF)" already listed in OBJS.)
|
|
|
|
Then build as usual.
|