FAQ
I am trying to compile PostgreSQL 8.0.3/tsearch2 contrib module on AIX 5.2 ML 3

gcc version 3.3.2
GNU Make 3.80


bash-2.05b# gmake
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels
-fno-strict-aliasing -I./snowball -I./ispell -I./wordparser -I.
-I../../src/include -c -o dict_ex.o dict_ex.c
In file included from ../../src/include/c.h:64,
from ../../src/include/postgres.h:48,
from dict_ex.c:9:
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:484:
error: conflicting types for `fgetpos64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:310:
error: previous declaration of `fgetpos64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:487:
error: conflicting types for `fseeko64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:430:
error: previous declaration of `fseeko64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:488:
error: conflicting types for `fsetpos64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:312:
error: previous declaration of `fsetpos64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:489:
error: conflicting types for `ftello64'
/opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:431:
error: previous declaration of `ftello64'
gmake: *** [dict_ex.o] Error 1


Can someone please let me know why this is happening?

Search Discussions

  • Tom Lane at May 18, 2005 at 2:59 am

    Mag Gam writes:
    I am trying to compile PostgreSQL 8.0.3/tsearch2 contrib module on AIX 5.2 ML 3
    /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:484:
    error: conflicting types for `fgetpos64'
    /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:310:
    error: previous declaration of `fgetpos64'
    I'm just guessing, but this smells to me like a problem with largefile-
    vs-not-largefile support. We discovered long ago that when pg_config.h
    defines _FILE_OFFSET_BITS or _LARGEFILE_SOURCE, it's critical that the
    compiler see that *before* it includes stdio.h. Unfortunately it seems
    this hard-won knowledge didn't get propagated into tsearch2 until just
    recently :-(. Try applying the tsearch2 changes linked here:
    http://archives.postgresql.org/pgsql-committers/2005-05/msg00068.php
    and let us know if that helps. I have not back-patched these changes
    into existing release branches, but if it turns out to address a real
    problem-seen-in-the-field then that should get done ...

    regards, tom lane
  • Mag Gam at May 18, 2005 at 5:38 pm
    Thanks for the reply Tom!

    I managed to get the cvs version and I made more progress compiling tsearch2

    Here is where it errors out.



    touch libtsearch2.a
    ../../src/backend/port/aix/mkldexport.sh libtsearch2.a > libtsearch2.exp
    gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels
    -fno-strict-aliasing -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -o
    libtsearch2.so libtsearch2.a -L../../src/port -L../../src/port -lm
    -Wl,-bI:../../src/backend/postgres.imp -Wl,-bE:libtsearch2.exp
    ld: 0711-317 ERROR: Undefined symbol: .get_share_path
    ld: 0711-317 ERROR: Undefined symbol: .pg_strncasecmp
    ld: 0711-317 ERROR: Undefined symbol: .pg_strcasecmp
    ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
    collect2: ld returned 8 exit status
    gmake: *** [libtsearch2.so] Error 1

    Any ideas?

    TIA

    On 5/17/05, Tom Lane wrote:
    Mag Gam <magawake@gmail.com> writes:
    I am trying to compile PostgreSQL 8.0.3/tsearch2 contrib module on AIX 5.2 ML 3
    /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:484:
    error: conflicting types for `fgetpos64'
    /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:310:
    error: previous declaration of `fgetpos64'
    I'm just guessing, but this smells to me like a problem with largefile-
    vs-not-largefile support. We discovered long ago that when pg_config.h
    defines _FILE_OFFSET_BITS or _LARGEFILE_SOURCE, it's critical that the
    compiler see that *before* it includes stdio.h. Unfortunately it seems
    this hard-won knowledge didn't get propagated into tsearch2 until just
    recently :-(. Try applying the tsearch2 changes linked here:
    http://archives.postgresql.org/pgsql-committers/2005-05/msg00068.php
    and let us know if that helps. I have not back-patched these changes
    into existing release branches, but if it turns out to address a real
    problem-seen-in-the-field then that should get done ...

    regards, tom lane
  • Mag Gam at Jun 21, 2005 at 1:16 pm
    Tom:

    Got it working!

    I had to modify this line in the tsearch2 Makefile
    from
    SHLIB_LINK := -lm
    to
    SHLIB_LINK := -lm -lpgport

    it works like a charm!


    thanks for your help!

    On 5/18/05, Mag Gam wrote:
    Thanks for the reply Tom!

    I managed to get the cvs version and I made more progress compiling tsearch2

    Here is where it errors out.



    touch libtsearch2.a
    ../../src/backend/port/aix/mkldexport.sh libtsearch2.a > libtsearch2.exp
    gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wendif-labels
    -fno-strict-aliasing -Wl,-bnoentry -Wl,-H512 -Wl,-bM:SRE -o
    libtsearch2.so libtsearch2.a -L../../src/port -L../../src/port -lm
    -Wl,-bI:../../src/backend/postgres.imp -Wl,-bE:libtsearch2.exp
    ld: 0711-317 ERROR: Undefined symbol: .get_share_path
    ld: 0711-317 ERROR: Undefined symbol: .pg_strncasecmp
    ld: 0711-317 ERROR: Undefined symbol: .pg_strcasecmp
    ld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.
    collect2: ld returned 8 exit status
    gmake: *** [libtsearch2.so] Error 1

    Any ideas?

    TIA

    On 5/17/05, Tom Lane wrote:
    Mag Gam <magawake@gmail.com> writes:
    I am trying to compile PostgreSQL 8.0.3/tsearch2 contrib module on AIX 5.2 ML 3
    /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:484:
    error: conflicting types for `fgetpos64'
    /opt/freeware/lib/gcc-lib/powerpc-ibm-aix5.2.0.0/3.3.2/include/stdio.h:310:
    error: previous declaration of `fgetpos64'
    I'm just guessing, but this smells to me like a problem with largefile-
    vs-not-largefile support. We discovered long ago that when pg_config.h
    defines _FILE_OFFSET_BITS or _LARGEFILE_SOURCE, it's critical that the
    compiler see that *before* it includes stdio.h. Unfortunately it seems
    this hard-won knowledge didn't get propagated into tsearch2 until just
    recently :-(. Try applying the tsearch2 changes linked here:
    http://archives.postgresql.org/pgsql-committers/2005-05/msg00068.php
    and let us know if that helps. I have not back-patched these changes
    into existing release branches, but if it turns out to address a real
    problem-seen-in-the-field then that should get done ...

    regards, tom lane
  • Tom Lane at Jun 21, 2005 at 3:29 pm

    Mag Gam writes:
    I had to modify this line in the tsearch2 Makefile
    from
    SHLIB_LINK := -lm
    to
    SHLIB_LINK := -lm -lpgport
    Hmm, that's annoying. I was about to commit this change but it actively
    fails on my machine:

    /usr/ccs/bin/ld: DP relative code in file ../../src/port/libpgport.a(exec.o) - shared library must be position
    independent. Use +z or +Z to recompile.
    make: *** [libtsearch2.sl.0] Error 1

    So we need to think harder. I wonder why the libpgport symbols aren't
    getting picked up from the backend itself on your machine?

    regards, tom lane

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
grouppgsql-hackers @
categoriespostgresql
postedMay 17, '05 at 9:10p
activeJun 21, '05 at 3:29p
posts5
users2
websitepostgresql.org...
irc#postgresql

2 users in discussion

Mag Gam: 3 posts Tom Lane: 2 posts

People

Translate

site design / logo © 2021 Grokbase