Re: Buildfarm failure on ecpg/test/pgtypeslib - Mailing list pgsql-hackers

From Jim C. Nasby
Subject Re: Buildfarm failure on ecpg/test/pgtypeslib
Date
Msg-id 20060809215114.GX40481@pervasive.com
Whole thread Raw
In response to Re: Buildfarm failure on ecpg/test/pgtypeslib  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Buildfarm failure on ecpg/test/pgtypeslib
List pgsql-hackers
On Wed, Aug 09, 2006 at 05:11:37PM -0400, Tom Lane wrote:
> > Jim C. Nasby wrote:
> >> Platypus just started failing...
> >> http://pgbuildfarm.org/cgi-bin/show_log.pl?nm=platypus&dt=2006-08-09%2010:05:01
> 
> gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline -Wdeclaration-after-statement -Wendif-labels
-fno-strict-aliasing-g  -I./../../include -I../../../../../src/interfaces/libpq -I../../include
-I../../../../../src/include-L../../../../../src/port -L/usr/local/lib -Wl,-R'/home/buildfarm/buildfarm/HEAD/inst/lib'
-L../../ecpglib-L../../pgtypeslib -L../../../libpq num_test2.c -lpgport -lintl -lssl -lcrypto -lz -lreadline -lcrypt
-lm -lpgtypes -lecpg -lpq  -o num_test2
 
> /tmp/buildfarm/ccwtFkAf.o(.text+0x259): In function `main':
> /home/buildfarm/buildfarm/HEAD/pgsql.67800/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc:102: undefined reference
to`PGTYPESdecimal_new'
 
>
/tmp/buildfarm/ccwtFkAf.o(.text+0x292):/home/buildfarm/buildfarm/HEAD/pgsql.67800/src/interfaces/ecpg/test/pgtypeslib/num_test2.pgc:118:
undefinedreference to `PGTYPESdecimal_free'
 
> gmake[5]: *** [num_test2] Error 1
> 
> I note that both those functions exist in ecpg's pgtypeslib in HEAD
> but not in 8.1.  I'm betting you have an older pgtypeslib.so in
> /usr/local/lib and that the poorly-chosen order of -L flags in the
> above command is the problem.
> 
> Basically the bug here is that src/interfaces/ecpg/test/Makefile.regress
> does
> 
> override LDFLAGS += -L../../ecpglib -L../../pgtypeslib -L../../../libpq
> 
> which is guaranteed to create the wrong ordering of -L switches compared
> to anything coming from "configure --with-libraries".  We need all the
> -L switches for inside-the-build-tree directories to come before all the
> ones for other places.  pg_xs.mk does this by the simple expedient of
> including PG_LIBS before LDFLAGS on the link command line;
> Makefile.shlib has a more complex approach involving surgery on LDFLAGS
> itself; but one way or the other you need to be careful.

Makes sense, since the machine has an install of 8.1 out of FreeBSD
ports.

So... do we want something like

override LDFLAGS := $(LDFLAGS_NO_L) -L../../ecpglib -L../../pgtypeslib
-L../../../libpq

?
-- 
Jim C. Nasby, Sr. Engineering Consultant      jnasby@pervasive.com
Pervasive Software      http://pervasive.com    work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf       cell: 512-569-9461


pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: [GENERAL] WIN32 Build?
Next
From: "Jim C. Nasby"
Date:
Subject: Re: 8.2 features status