Re: Upgrade 10.5->10.6 : db crash BUS ERROR (sig 10), reproducible

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

 



On 3/7/19 5:30 PM, Andrew Gierth wrote:
"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.

But if it's compiled for i386 instead of i686?

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.


--
Angular momentum makes the world go 'round.




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux