Our Solaris packager reports that 12beta1 is failing to build for him
on some Solaris variants:
> The link failure is:
> ---
> Undefined first referenced
> symbol in file
> ReadNextFullTransactionId pg_checksums.o
> ld: fatal: symbol referencing errors. No output written to pg_checksums
> ---
> Now, ReadNextFullTransactionId() is implemented in
> src/backend/access/transam/varsup.c but I cannot see varsop.o being
> included in any of the libraries pg_checksum is linked against
> (libpgcommon.a and libpgport.a).
> When I check the pg_checksum.o I find that it references
> ReadNextFullTransactionId on the platforms that fail but not where it
> doesn't. The failed platforms are all sparc variants plus 64-bit x86
> on Solaris 11.
> The compiler used in Sun Studio 12u1, very old and and I can try to
> upgrade and see if that helps.
> [ it didn't ]
I'm a bit mystified why we did not see this problem in the buildfarm,
especially since we have at least one critter (damselfly) running an
OpenSolaris variant. Nonetheless, it sure looks like a "somebody
was sloppy about frontend/backend separation" problem.
Fix ideas anyone? I think we need to not only solve the immediate
problem (which might just take an #ifndef FRONTEND somewhere) but
also close the testing gap so we don't get blindsided like this
again.
regards, tom lane