Peter Alberer" <peter.alberer@wu-wien.ac.at> writes:
> Hmmm, i suspect the problem comes from the fact that i did not globally
> change gcc to use -m64 nor did I set the enviroment flags (CFLAGS), but
> changed the command in the makefile. The configure script did its tests with
> the default -m32 and did not define HAVE_LONG_INT_64. Maybe even
> INT64_IS_BUSTED is defined for my system...
Ah-hah, that would definitely explain some funny behavior in this area.
> I tried to run configure with the CFLAGS set to -m64 and it successfully
> sets HAVE_LONG_INT_64 in src/include/pg_config.h. So that seems to be my
> problem! Btw, after setting the CFLAGS prior to running configure even
> ACCEPT_TYPE_ARG3 is defined to be socklen_t.
Did anything else change in pg_config.h --- in particular, the
ALIGNOF_xxx and MAXIMUM_ALIGNOF values?
> What do I have to do now? Can I simply continue to run my database instance
> (from the existing binary data dictionary) after a recompile/reinstall of
> the postgres binaries with a configure script aware of -m64? Or do I have to
> fear that the instance is corrupted somehow? Should I do a dump/restore?
If any of the ALIGNOF symbols changed, then you'll need to do a
dump/restore. If not, I think you will be OK ... but it would be smart
to make a dump before switching, just in case.
regards, tom lane