I wrote:
> What exactly is in /client/lib ... could it be that there is an existing
> SSL-dependent installation of libpq in there?  In theory the link should
> find the libpq in ../../../../src/interfaces/libpq not the one in
> /client/lib, but we've seen bizarre linker search behavior before ...

Actually, not so bizarre as all that: looking at your command again, the
-L/client/lib is in there twice:

gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wendif-labels
-fno-strict-aliasing   -L../../../../src/port -L/client/lib  -Wl,-bnoentry
-Wl,-H512 -Wl,-bM:SRE -o libecpg.so libecpg.a -Wl,-bE:libecpg.exp
-L../pgtypeslib -L../../../../src/interfaces/libpq -L../../../../src/port
-L/client/lib -lpgtypes -lpq -lm 

Assuming there is a libpq in /client/lib, I bet this patch will help.

                        regards, tom lane

*** src/Makefile.shlib.orig     Fri Oct 28 13:32:22 2005
--- src/Makefile.shlib  Sat Dec  3 14:58:32 2005
***************
*** 76,81 ****
--- 76,84 ----
  # Insert -L from LDFLAGS after any -L already present in SHLIB_LINK
  SHLIB_LINK := $(filter -L%, $(SHLIB_LINK)) $(filter -L%, $(LDFLAGS)) 
$(filter-out -L%, $(SHLIB_LINK))
  
+ # Need a -L-free version of LDFLAGS to use in combination with SHLIB_LINK
+ LDFLAGS_NO_L := $(filter-out -L%, $(LDFLAGS))
+ 
  # Default shlib naming convention used by the majority of platforms
  shlib         = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION).$(SO_MINOR_VERSION)
  shlib_major   = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
***************
*** 154,160 ****
  ifeq ($(PORTNAME), hpux)
    shlib                       = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
    ifeq ($(with_gnu_ld), yes)
!     LINK.shared               = $(CC) $(LDFLAGS) -shared -Wl,-h -Wl,$(soname)
    else
      # can't use the CC-syntax rpath pattern here
      rpath =
--- 157,163 ----
  ifeq ($(PORTNAME), hpux)
    shlib                       = lib$(NAME)$(DLSUFFIX).$(SO_MAJOR_VERSION)
    ifeq ($(with_gnu_ld), yes)
!     LINK.shared               = $(CC) $(LDFLAGS_NO_L) -shared -Wl,-h 
-Wl,$(soname)
    else
      # can't use the CC-syntax rpath pattern here
      rpath =
***************
*** 309,315 ****
  # AIX case
  $(shlib): lib$(NAME).a
        $(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
!       $(COMPILER) $(LDFLAGS) $(LDFLAGS_SL) -o $@ $< 
-Wl,-bE:lib$(NAME)$(EXPSUFF) $(SHLIB_LINK)
        
  endif # PORTNAME == aix
  
--- 312,318 ----
  # AIX case
  $(shlib): lib$(NAME).a
        $(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
!       $(COMPILER) $(LDFLAGS_NO_L) $(LDFLAGS_SL) -o $@ $< 
-Wl,-bE:lib$(NAME)$(EXPSUFF) $(SHLIB_LINK)
        
  endif # PORTNAME == aix
  

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to