Noah Misch <noah@leadboat.com> writes:
> On Mon, Oct 16, 2023 at 01:54:23AM -0400, Tom Lane wrote:
>> Ugh. So if the failure is robust enough to persist across
>> several major xlc versions, why couldn't Thomas reproduce it?
> Beats me. hornet wipes its starting environment down to OBJECT_MODE=32_64
> PERL5LIB=/home/nm/sw/cpan64/lib/perl5 SPECIES=xlc64 PATH=/usr/bin, then
> applies all the environment settings seen in buildfarm logs.
I was able to reproduce the failure on cfarm111 after adopting
these settings from hornet's configuration:
export OBJECT_MODE=64
export CC='xlc_r -D_LARGE_FILES=1 '
export CFLAGS='-O2 -qmaxmem=33554432 -qsuppress=1500-010:1506-995
-qsuppress=1506-010:1506-416:1506-450:1506-480:1506-481:1506-492:1506-944:1506-1264
-qinfo=all:nocnd:noeff:noext:nogot:noini:noord:nopar:noppc:norea:nouni:nouse
-qsuppress=1506-374:1506-419:1506-434:1506-438:1506-451:1506-452:1506-453:1506-495:1506-786'
and doing
./configure --enable-cassert --enable-debug --without-icu --prefix=/home/tgl/testversion
etc etc.
It is absolutely, gold-platedly, a compiler bug, because inserting
a debug printf into the loop
while (result->time >= USECS_PER_DAY)
result->time -= USECS_PER_DAY;
makes the failure go away. Unfortunately, I've not yet found another
way to make it go away :-(. My upthread idea of using a local variable
instead of result->time is no help, and some other random code
alterations didn't change the results either.
Not sure where we go from here. While I don't have much hesitation
about blowing off xlc_r 12.1, it would be sad if their latest
toolchain doesn't work either. (I didn't try permuting the code
while using the newer compiler, though.)
regards, tom lane