Author Topic: LIBC panic errors anyone?  (Read 10188 times)

Jochen Schäfer

  • Sr. Member
  • ****
  • Posts: 306
  • Karma: +27/-0
    • View Profile
Re: LIBC panic errors anyone?
« Reply #15 on: January 29, 2022, 08:22:30 am »
I switched libcx from the i686 to the pentium4 version, and the crashes on exit stopped.
This seems very strange to me, since running on an i5, this should make no difference.

Lars

  • Hero Member
  • *****
  • Posts: 1271
  • Karma: +65/-0
    • View Profile
Re: LIBC panic errors anyone?
« Reply #16 on: January 29, 2022, 12:54:10 pm »
Maybe they are simply not equivalent. What I read somewhere is that BWW recommends to switch over to "Pentium4" architecture in general (even updating already installed packages if possible).
And as much as I can tell, they stopped producing "i686" versions of their RPMs for everything that is new.

Roderick Klein

  • Hero Member
  • *****
  • Posts: 655
  • Karma: +14/-0
    • View Profile
Re: LIBC panic errors anyone?
« Reply #17 on: January 29, 2022, 03:58:08 pm »
Maybe they are simply not equivalent. What I read somewhere is that BWW recommends to switch over to "Pentium4" architecture in general (even updating already installed packages if possible).
And as much as I can tell, they stopped producing "i686" versions of their RPMs for everything that is new.

That is correct.

Roderick

Jochen Schäfer

  • Sr. Member
  • ****
  • Posts: 306
  • Karma: +27/-0
    • View Profile
Re: LIBC panic errors anyone?
« Reply #18 on: January 30, 2022, 08:45:48 pm »
Roderick, so there is a difference in functionality between LIBCX version apart from the emitted machine code?

Lars

  • Hero Member
  • *****
  • Posts: 1271
  • Karma: +65/-0
    • View Profile
Re: LIBC panic errors anyone?
« Reply #19 on: January 31, 2022, 08:01:24 am »
I am not Roderick, but...

there is no intended functional difference (at least, that's not what I meant). But the optimization might not work correctly when you build for i686 but works ok when you build for pentium4. Or they fixed something in the compiler in the meantime. Or some such.

Dave Yeo

  • Hero Member
  • *****
  • Posts: 4786
  • Karma: +99/-1
    • View Profile
Re: LIBC panic errors anyone?
« Reply #20 on: January 31, 2022, 08:41:55 am »
I rebuilt SeaMonkey with the intree NSPR4 and NSS, versions,
Code: [Select]
Expected minimum version Version in use
NSPR 4.12 4.12
NSS 3.21.4 Basic ECC 3.21.4 Basic ECC
NSSSMIME 3.21.4 Basic ECC 3.21.4 Basic ECC
NSSSSL 3.21.4 Basic ECC 3.21.4 Basic ECC
NSSUTIL 3.21.4 3.21.4

and SeaMonkey has been stable for 10 days, including leaving it running for 4 or 5 days steady. Today it finally crashed at the INT3 for out of memory conditions.
I still think there is something wrong. probably with NSPR4, which is basically a libc, could be NSS though. The difference the updated libcx and libc made was instead of vanishing without a trace, now there's those libc panics.

As for differences with the i686 and Pentium 4 builds of libc and libcx, it should mostly be instruction ordering unless they've changed the optimizations. I see QT5 uses various SSE[2] optimizations and likely has different code paths for SSE[2] or might have removed the non-SSE[2] code. It also uses -mfpmath=sse, which caused a subtle problem with Mozilla, without the screensaver installed, nsIdleServices took a different code path and after 5-10 minutes would have 100% on one core.
Generally, the more optimizations, the more chance of compiler bugs/features breaking things. Updating to GCC 9.2.0 caused memset()'s to get optimized away as they were before the constructors and I guess the compiler thought they weren't used. -flifetime-dse=1 fixed that
« Last Edit: January 31, 2022, 08:44:22 am by Dave Yeo »