I have added the attached patch to allow Cygwin /contrib compiles.  I am
a little confused why Cygwin requires -lpgport and no other platform
does, but it is in the Cygwin-specific section so we can always improve
it later if we find the cause.

Thanks.

---------------------------------------------------------------------------

Reini Urban wrote:
> Bruce Momjian schrieb:
> > Reini Urban wrote:
> >>Bruce Momjian schrieb:
> >>>I have applied all parts of your patch now.
> >>Thanks. Core builds and works fine now. (plperl IPC problems aside)
> >>
> >>But there's are still some more minor SHLIB glitches,
> >>which only affects contrib, because -lpgport is missing for various dll's.
> > 
> > FYI, I think we fixed plperl for Win32 today.
> 
> !! good to hear.
> I will come with my promised basic plperl regressiontests soon.
> No time at all yet.
> 
> >>SHLIB_LINK doesn't contain the libs only the paths, because they are 
> >>filtered out somewhere.
> >>But first I want to find the real cause of the problem.
> >>Maybe LIB is just missing a -lpgport.
> > 
> > Would you please post the link command and error that is failing below:
> 
> well, all dll contrib's which use pgport functions miss -lpgport.
> ltree, spi, tsearch, tsearch2, ...
> 
> make[1]: Entering directory 
> `/usr/src/postgresql/postgresql-8.0.0cvs/contrib/ltree'
> sed 's,MODULE_PATHNAME,$libdir/ltree,g' ltree.sql.in >ltree.sql
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o ltree_io.o ltree_io.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o ltree_op.o ltree_op.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o lquery_op.o lquery_op.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o _ltree_op.o _ltree_op.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o crc32.o crc32.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o ltxtquery_io.o ltxtquery_io.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o ltxtquery_op.o ltxtquery_op.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o ltree_gist.o ltree_gist.c
> gcc -g -fno-strict-aliasing -Wall -Wmissing-prototypes 
> -Wmissing-declarations  -DLOWER_NODE -I. -I..
> /../src/include   -c -o _ltree_gist.o _ltree_gist.c
> dlltool --export-all  --output-def ltree.def ltree_io.o ltree_op.o 
> lquery_op.o _ltree_op.o crc32.o ltxtquery_io.o ltxtquery_op.o 
> ltree_gist.o _ltree_gist.o
> dllwrap -o ltree.dll --dllname ltree.dll  --def ltree.def ltree_io.o 
> ltree_op.o lquery_op.o _ltree_op.o crc32.o ltxtquery_io.o ltxtquery_op.o 
> ltree_gist.o _ltree_gist.o ../../src/utils/dllinit.o -L../../src/port 
> -L/usr/local/lib -L../../src/backend -lpostgres
> lquery_op.o(.text+0x1a4): In function `checkLevel':
> /usr/src/postgresql/postgresql-8.0.0cvs/contrib/ltree/lquery_op.c:94: 
> undefined reference to `_pg_strncasecmp'
> ltxtquery_op.o(.text+0x1b6): In function `checkcondition_str':
> /usr/src/postgresql/postgresql-8.0.0cvs/contrib/ltree/ltxtquery_op.c:57: 
> undefined reference to `_pg_strncasecmp'
> collect2: ld gab 1 als Ende-Status zur"uck
> dllwrap: gcc exited with status 1
> make[1]: *** [libltree.a] Fehler 1
> make[1]: Leaving directory 
> `/usr/src/postgresql/postgresql-8.0.0cvs/contrib/ltree'
> 
> I still have to live with the attached patch, which will give then:
> 
> make[1]: Entering directory 
> `/usr/src/postgresql/postgresql-8.0.0cvs/contrib/ltree'
> dlltool --export-all  --output-def ltree.def ltree_io.o ltree_op.o 
> lquery_op.o _ltree_op.o crc32.o ltxtquery_io.o ltxtquery_op.o 
> ltree_gist.o _ltree_gist.o
> dllwrap -o ltree.dll --dllname ltree.dll  --def ltree.def ltree_io.o 
> ltree_op.o lquery_op.o _ltree_op.o crc32.o ltxtquery_io.o ltxtquery_op.o 
> ltree_gist.o _ltree_gist.o ../../src/utils/dllinit.o -L../
> ../src/port -L/usr/local/lib -L../../src/backend -lpostgres -lpgport
> dlltool --dllname ltree.dll  --def ltree.def --output-lib libltree.a
> make[1]: Leaving directory 
> `/usr/src/postgresql/postgresql-8.0.0cvs/contrib/ltree'
> 
> make -C src ok
> make -C contrib ok
> 
> make check MAX_CONNECTIONS=5 ...
> hangs as reported today in parallel schedule of create_misc.
> 
> INSERT INTO iportaltest (i, d, p)
>     VALUES (2, 89.05, '(4.0,2.0),(3.0,1.0)'::polygon);
> hangs ... until
>    Cancel request sent
>    FATAL:  terminating connection due to administrator command
> 
> I'll investigate why.
> -- 
> Reini Urban
> http://xarch.tu-graz.ac.at/home/rurban/

> --- postgresql-8.0.0cvs/src/Makefile.shlib.orig       2004-09-03 01:06:43.000000000 
> +0200
> +++ postgresql-8.0.0cvs/src/Makefile.shlib    2004-10-04 12:39:15.000000000 +0200
> @@ -216,6 +216,7 @@
>  
>  ifeq ($(PORTNAME), cygwin)
>    shlib                      = $(NAME)$(DLSUFFIX)
> +  SHLIB_LINK         += -lpgport
>  endif
>  
>  ifeq ($(PORTNAME), win32)
> 

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to [EMAIL PROTECTED]

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073
Index: src/Makefile.shlib
===================================================================
RCS file: /cvsroot/pgsql/src/Makefile.shlib,v
retrieving revision 1.83
diff -c -c -r1.83 Makefile.shlib
*** src/Makefile.shlib  13 Oct 2004 09:51:47 -0000      1.83
--- src/Makefile.shlib  13 Oct 2004 10:17:36 -0000
***************
*** 216,221 ****
--- 216,223 ----
  
  ifeq ($(PORTNAME), cygwin)
    shlib                       = $(NAME)$(DLSUFFIX)
+   # needed for /contrib modules, not sure why
+   SHLIB_LINK          += -lpgport
  endif
  
  ifeq ($(PORTNAME), win32)
---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to