Search Postgresql Archives

Re: PostgreSQL 8.3.8 on AIX5.3 : compilation failed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux