>>>>> "Palle" == Palle Girgensohn <girgen@xxxxxxxxxxx> writes: >> Clang's __builtin_isinf(x) function, which is supposed to test if x is >> infinite, does not work reliably on i386 when the x87 registers are used >> for floating point. It does work if the SSE2 registers are used instead, >> which clang will do if the -msse2 option is used. The downside of course >> is that the code will no longer run on CPUs that are old enough to vote. Palle> For this reason, we build i386 with gcc starting with version Palle> 10.6. the CFLAGS+=--msse2 was not realiable for all CPU:s since Palle> not all i386 CPU:s support SSE2. Palle> We had one report of a user who had SSE2 flag still on (int Palle> /etc/make.conf) when building, and got the same problem. Palle> [https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236025 Palle> <https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236025>] The user in that bug report was using a Pentium 4, which supports SSE2, so it's not the lack of SSE2 that caused the problem. Furthermore, the crash was in XLogReadRecord, which does not use floats. So I'm going to guess that your bug 236025 is actually an alignment problem, with the compiler making some assumption about alignment that we're violating. I'll investigate and see what I can find. -- Andrew.