Re: [HACKERS] more dirmod CYGWIN - Mailing list pgsql-patches

From Bruce Momjian
Subject Re: [HACKERS] more dirmod CYGWIN
Date
Msg-id 200410131021.i9DAL8f02521@candle.pha.pa.us
Whole thread Raw
In response to Re: [HACKERS] more dirmod CYGWIN  (Reini Urban <rurban@x-ray.at>)
Responses Re: [HACKERS] more dirmod CYGWIN
List pgsql-patches
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 majordomo@postgresql.org

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (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)

pgsql-patches by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [pgsql-hackers-win32] Static build of libpq fails
Next
From: Bruce Momjian
Date:
Subject: Re: [pgsql-hackers-win32] pg_ctl: WIN32 for CYGWIN also (services)