undefined reference to `is_absolute_path'

Started by Joe Conwayover 22 years ago3 messages
#1Joe Conway
mail@joeconway.com

For the past few days I'm seeing this when building php on machines
where I build Postgres from cvs:

gcc -o conftest -g -O2 -L/usr/lib -Wl,-rpath,/usr/local/pgsql/lib
-L/usr/local/pgsql/lib conftest.c -lcrypt -lmm -lpspell -lpq -lmhash
-lmcrypt -lltdl -lldap -llber -lcrypt -lpam -lgmp -lfreetype -lpng -lz
-ljpeg -lz -ldb-4.0 -lgdbm -lcurl -lbz2 -lz -lssl -lcrypto -lresolv -lm
-ldl -lnsl -lcurl -lssl -lcrypto -ldl -lxml2 -lz -lm -lcrypt 1>&5
/usr/local/pgsql/lib/libpq.so: undefined reference to `is_absolute_path'
collect2: ld returned 1 exit status

It looks like is_absolute_path is function in a new file src/port/path.c.

I also see:
ar crs libpq.a fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o
fe-lobj.o pqexpbuffer.o dllist.o pqsignal.o fe-secure.o wchar.o
encnames.o ip.o md5.o
ranlib libpq.a

Doesn't path.o need to be linked in similar to the other backend files?

Joe

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Joe Conway (#1)
Re: undefined reference to `is_absolute_path'

Joe Conway <mail@joeconway.com> writes:

Doesn't path.o need to be linked in similar to the other backend files?

Yeah. I poked Bruce about that last week, but he hasn't fixed it yet
(he was out of town last week, and might still be...). I don't have
time to deal with it now, but will apply a patch if you provide one.

regards, tom lane

#3Joe Conway
mail@joeconway.com
In reply to: Tom Lane (#2)
1 attachment(s)
Re: undefined reference to `is_absolute_path'

Tom Lane wrote:

Yeah. I poked Bruce about that last week, but he hasn't fixed it yet
(he was out of town last week, and might still be...). I don't have
time to deal with it now, but will apply a patch if you provide one.

Not sure if there is a better fix, but this seemed to do it for me.

Joe

Attachments:

is_absolute_path-fix.patchtext/plain; name=is_absolute_path-fix.patchDownload
Index: src/interfaces/libpq/Makefile
===================================================================
RCS file: /opt/src/cvs/pgsql-server/src/interfaces/libpq/Makefile,v
retrieving revision 1.74
diff -c -r1.74 Makefile
*** src/interfaces/libpq/Makefile	29 Mar 2003 11:31:51 -0000	1.74
--- src/interfaces/libpq/Makefile	14 Apr 2003 20:17:36 -0000
***************
*** 22,28 ****
  
  OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
        pqexpbuffer.o dllist.o pqsignal.o fe-secure.o wchar.o encnames.o ip.o \
!       md5.o \
        $(filter getaddrinfo.o inet_aton.o snprintf.o strerror.o, $(LIBOBJS))
  
  
--- 22,28 ----
  
  OBJS= fe-auth.o fe-connect.o fe-exec.o fe-misc.o fe-print.o fe-lobj.o \
        pqexpbuffer.o dllist.o pqsignal.o fe-secure.o wchar.o encnames.o ip.o \
!       md5.o path.o \
        $(filter getaddrinfo.o inet_aton.o snprintf.o strerror.o, $(LIBOBJS))
  
  
***************
*** 48,53 ****
--- 48,56 ----
  ip.c: $(backend_src)/libpq/ip.c
  	rm -f $@ && $(LN_S) $< .
  
+ path.c: $(backend_src)/../port/path.c
+ 	rm -f $@ && $(LN_S) $< .
+ 
  # We use several backend modules verbatim, but since we need to
  # compile with appropriate options to build a shared lib, we can't
  # necessarily use the same object files as the backend uses. Instead,
***************
*** 74,78 ****
  	rm -f $(DESTDIR)$(includedir)/libpq-fe.h $(DESTDIR)$(includedir_internal)/libpq-int.h $(includedir_internal)/pqexpbuffer.h
  
  clean distclean maintainer-clean: clean-lib
! 	rm -f $(OBJS) dllist.c md5.c ip.c wchar.c encnames.c
  	rm -f $(OBJS) getaddrinfo.c inet_aton.c snprintf.c strerror.c
--- 77,81 ----
  	rm -f $(DESTDIR)$(includedir)/libpq-fe.h $(DESTDIR)$(includedir_internal)/libpq-int.h $(includedir_internal)/pqexpbuffer.h
  
  clean distclean maintainer-clean: clean-lib
! 	rm -f $(OBJS) dllist.c md5.c ip.c wchar.c encnames.c path.c
  	rm -f $(OBJS) getaddrinfo.c inet_aton.c snprintf.c strerror.c