Okay, tried getting 7.0.3 running but no luck.

Downloaded beta6 of 7.1, and I got some compiler errors about missing
definitions of tcl functions.

Tcl support is mandatory for my application, so I can't get around this.

I had to add the compiler flag "-L/usr/lib -ltcl80" to GNUMakefile.shlib, in
the win section, for the dll wrapper.

Here is what I get now:

dlltool --export-all --output-def pgtcl.def pgtcl.o pgtclCmds.o pgtclId.o
dllwrap -o pgtcl.dll --dllname pgtcl.dll --def pgtcl.def pgtcl.o pgtclCmds.o
pgtclId.o ../../../src/utils/dllinit.o -L../../../src/backend -lpostgres -
lcygipc -lcygwin -lcrypt -lkernel32 -L../../../src/interfaces/libpq -lpq -
L/usr/local/lib -lcrypt -L/usr/lib -ltcl80
pgtclId.o(.text+0xa98):pgtclId.c: undefined reference
to 'Tcl_CreateFileHandler'

pgtclId.o(.text+0xac8):pgtclId.c: undefined reference to

collect2: ld returned 1 exit status
dllwrap: gcc exited with status 1
make[2]: *** [libpgtcl.a] Error 1
make[2]: Leaving directory `/usr/src/postgresql-
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/postgresql-7.1beta6/src/interfaces'
make: *** [all] Error 2

Any ideas what I need to do?

This is similar to a problem I had with compiling on AIX. In both cases,
even though configure has an option for the tclConfig.sh, and finds it, it
doesn't actually use it. I had to add compiler flags in the Makefiles for
AIX too.


Search Discussions

  • Tom Lane at Mar 20, 2001 at 4:23 pm

    "Tim Dunnington" <timbert@timshouse.com> writes:
    pgtclId.o(.text+0xa98):pgtclId.c: undefined reference
    to 'Tcl_CreateFileHandler'
    pgtclId.o(.text+0xac8):pgtclId.c: undefined reference to
    Just a WAG: is it possible you are picking up include files for a
    different version of Tcl than what you are linking with? IIRC, we
    have support for a couple of different generations of Tcl, and whether
    we should call those two routines or not is one of the version-dependent
    issues. If configure got the wrong include files then possibly this
    could be the outcome.

    regards, tom lane
  • Tom Lane at Mar 20, 2001 at 10:48 pm

    "Tim Dunnington" <timbert@timshouse.com> writes:
    Do I need a particular release of tcl (ie, tcl 8.1 or 8.3 or something)?
    Oh, I see the problem. Observe this comment in the libpgtcl sources:

    Another headache is that Ousterhout keeps changing the Tcl I/O interfaces.
    libpgtcl currently claims to work with Tcl 7.5, 7.6, and 8.0, and each of
    'em is different. Worse, the Tcl_File type went away in 8.0, which means
    there is no longer any platform-independent way of waiting for file ready.
    So we now have to use a Unix-specific interface. Grumble.

    Tcl_CreateFileHandler() and Tcl_DeleteFileHandler() are the
    Unix-specific routines that this comment is talking about.

    In other words, it's just not gonna work on Windows, unless you want to
    downgrade to Tcl 7.* or add the appropriate Windows-specific interface
    code. Sorry about that ... but I think most of the fault lies over in
    the Tcl camp ...

    Anyway, if you do feel like adding the necessary code, a patch would be
    accepted gladly.

    BTW: it's possible, nay likely, that the I/O situation has changed yet
    again in newer Tcls. Perhaps there is once again a platform-independent
    I/O interface, in which case fixing the problem with respect to 8.3
    would make a lot more sense than adding an 8.0 solution.

    I haven't time to work on this at the moment, but surely there are
    some Tcl'ers out there who care.

    regards, tom lane

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-ports @
postedMar 20, '01 at 4:05p
activeMar 20, '01 at 10:48p

2 users in discussion

Tom Lane: 2 posts Tim Dunnington: 1 post



site design / logo © 2022 Grokbase