I compiled PostgreSQL-8.2.0 on Solaris 8, but I cannot execute
binaries because it cannot find linked shared libraries, like
libgcc_s.so.

    % cd src/interfaces/libp
    % rm libpq.so*
    % make
    gcc -shared -h libpq.so.5  fe-auth.o fe-connect.o fe-exec.o fe-misc.o 
fe-print.o fe-lobj.o fe-protocol2.o fe-protocol3.o pqexpbuffer.o pqsignal.o 
fe-secure.o md5.o ip.o wchar.o encnames.o noblock.o pgstrcasecmp.o thread.o 
inet_aton.o strlcpy.o getaddrinfo.o  -L../../../src/port -lsocket -lnsl 
-Wl,-R'/usr/local/pgsql/lib' -o libpq.so.5.0
    rm -f libpq.so.5
    ln -s libpq.so.5.0 libpq.so.5
    rm -f libpq.so
    ln -s libpq.so.5.0 libpq.so
    % ldd libpq.so
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libgcc_s.so.1 =>         (file not found)
        libc.so.1 =>     /usr/lib/libc.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libmp.so.2 =>    /usr/lib/libmp.so.2
        /usr/platform/SUNW,Sun-Blade-100/lib/libc_psr.so.1


I think the following patch is needed, so that LD_RUN_PATH is also
passed to -R option.

*** src/makefiles/Makefile.solaris.old  Sat Dec 10 06:19:36 2005
--- src/makefiles/Makefile.solaris      Thu Dec  7 14:03:43 2006
***************
*** 4,12 ****
  
  ifeq ($(with_gnu_ld), yes)
  export_dynamic = -Wl,-E
! rpath = -Wl,-rpath,'$(rpathdir)'
  else
! rpath = -Wl,-R'$(rpathdir)'
  endif
  
  DLSUFFIX = .so
--- 4,12 ----
  
  ifeq ($(with_gnu_ld), yes)
  export_dynamic = -Wl,-E
! rpath = -Wl,-rpath,'$(rpathdir):$(LD_RUN_PATH)'
  else
! rpath = -Wl,-R'$(rpathdir):$(LD_RUN_PATH)'
  endif
  
  DLSUFFIX = .so

---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
       subscribe-nomail command to [EMAIL PROTECTED] so that your
       message can get through to the mailing list cleanly

Reply via email to