============================================================ 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:24 $ current maintainer: Peter Eisentraut 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.