Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed

From: Alexandra Roy <Alexandra(dot)Roy(at)bull(dot)net>
To: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
Cc: pgsql general <pgsql-general(at)postgresql(dot)org>
Subject: Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed
Date: 2009-11-09 13:49:04
Message-ID: 4AF81DD0.2030804@bull.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general pgsql-hackers

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
>
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Sam Mason 2009-11-09 13:55:47 Re: Not possible to create 64 bit windows clients ?
Previous Message Albe Laurenz 2009-11-09 13:24:36 Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed

Browse pgsql-hackers by date

  From Date Subject
Next Message Hitoshi Harada 2009-11-09 14:12:30 Re: more support for various frame types of window functions
Previous Message Andrew Gierth 2009-11-09 13:25:21 Re: more support for various frame types of window functions