Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed - Mailing list pgsql-general

From Alexandra Roy
Subject Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed
Date
Msg-id 4AF81DD0.2030804@bull.net
Whole thread Raw
In response to Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed  ("Albe Laurenz" <laurenz.albe@wien.gv.at>)
Responses Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed  ("Albe Laurenz" <laurenz.albe@wien.gv.at>)
List pgsql-general
Hi Laurenz,

It was a 32-bit build as I didn't have set the "OBJECT_MODE" to 64.
I call configure and make using as root user:

    # ./configure
    # gmake

The releases of "make" and "gcc" are :
make-3.80-1
gcc-4.2.0-3

Please find below the result of that you ask me:

    1. # grep -i large config.log

    configure:18474: checking for _LARGEFILE_SOURCE value needed for
    large files
    configure:23755: checking for special C compiler options needed for
    large files
    configure:23860: checking for _FILE_OFFSET_BITS value needed for
    large files
    conftest.c:144: error: size of array 'off_t_is_large' is negative
    |     We can't simply define LARGE_OFF_T to be 9223372036854775807,
    | #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
    |   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
    |                      && LARGE_OFF_T % 2147483647 == 1)
    conftest.c:145: error: size of array 'off_t_is_large' is negative
    |     We can't simply define LARGE_OFF_T to be 9223372036854775807,
    | #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
    |   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
    |                      && LARGE_OFF_T % 2147483647 == 1)
    configure:23985: checking for _LARGE_FILES value needed for large files
    conftest.c:144: error: size of array 'off_t_is_large' is negative
    |     We can't simply define LARGE_OFF_T to be 9223372036854775807,
    | #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
    |   int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
    |                      && LARGE_OFF_T % 2147483647 == 1)
    ac_cv_sys_large_files=1
    ac_cv_sys_largefile_CC=no
    ac_cv_sys_largefile_source=no
    #define _LARGE_FILES 1

    2. # grep -i large include/pg_config.h
    grep: 0652-033 Cannot open include/pg_config.h.
    #
    # grep -i large src/include/pg_config.h
    /* #undef _LARGEFILE_SOURCE */
    /* Define for large files, on AIX-style hosts. */
    #define _LARGE_FILES 1


Since my post, I have followed the advice of PostgreSQL 8.4
documentation on AIX to do a 64-bit build:
http://www.postgresql.org/docs/8.4/static/installation-platform-notes.html#INSTALLATION-NOTES-AIX
that is to say I have :
- set OBJECT_MODE to 64
- pass CC="gcc -maix64" and LDFLAGS="-Wl,-bbigtoc" to configure
- execute gmake

gmake failed with these errors :

    gcc -maix64 -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline
    -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
    -fwrapv -I../../src/port -DFRONTEND -I../../src/include   -c -o
    sprompt.o sprompt.c
    gcc -maix64 -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Winline
    -Wdeclaration-after-statement -Wendif-labels -fno-strict-aliasing
    -fwrapv -I../../src/port -DFRONTEND -I../../src/include   -c thread.c
    ar crs libpgport.a strlcat.o strlcpy.o getopt_long.o chklocale.o
    copydir.o dirmod.o exec.o noblock.o path.o pipe.o pgsleep.o
    pgstrcasecmp.o qsort.o qsort_arg.o sprompt.o thread.o
    ar: 0707-126 strlcat.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 strlcpy.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 getopt_long.o is not valid with the current object file
    mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 chklocale.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 copydir.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 dirmod.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 exec.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 noblock.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 path.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 pipe.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 pgsleep.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 pgstrcasecmp.o is not valid with the current object
    file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 qsort.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 qsort_arg.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 sprompt.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    ar: 0707-126 thread.o is not valid with the current object file mode.
            Use the -X option to specify the desired object mode.
    gmake[2]: *** [libpgport.a] Error 16
    gmake[2]: Leaving directory
    `/home/PostgreSQL_8.3.8/sources/postgresql-8.3.8/src/port'
    gmake[1]: *** [all] Error 2
    gmake[1]: Leaving directory
    `/home/PostgreSQL_8.3.8/sources/postgresql-8.3.8/src'
    gmake: *** [all] Error 2

Do you have an idea about these errors ?

Thank you.
Regards,
Alexandra


Albe Laurenz a écrit :
>> I am trying to compile PostgreSQL 8.3.8 on AIX 5.3 TL9 (64 bits).
>> The ".configure" has been executed with success without any
>> error but the compilation of PostgreSQL with "gmake" fails.
>>
>> Please find below the errors I get :
>>
>>
>>     In file included from psqlscan.c:2385:
>>     /usr/include/unistd.h:171: error: conflicting types for 'lseek64'
>>     /usr/include/unistd.h:169: error: previous declaration of 'lseek64' was here
>>     In file included from /usr/include/unistd.h:744,
>>                      from psqlscan.c:2385:
>>
> [...]
>
>>
>>
>> I read on the PostgreSQL.fr's forum that this error is linked
>> to large files in 64 bits system, allowing to read / write
>> files of 2 GB and over.
>> I also read that I can use the "-disable-largefile" while I
>> launched ".configure" but I don't really understand the problem.
>> If PostgreSQL can't use such files, except for trace logs,
>> why the compilation fails on large files ?
>>
>
> Is this a 32-bit or a 64-bit build?
>
> How exactly did you call configure and make?
>
> After configuring, what do you get when you run
>    grep -i large config.log
> in the PostgreSQL directory?
>
> And what is the result of
>    grep -i large include/pg_config.h
>
> Yours,
> Laurenz Albe
>
>


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

pgsql-general by date:

Previous
From: Johan Nel
Date:
Subject: Re: alter table is taking a long time
Next
From: Sam Mason
Date:
Subject: Re: Not possible to create 64 bit windows clients ?