Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Nov 2001 10:55:02 -0500 (EST)
From:      Joe Clarke <marcus@marcuscom.com>
To:        freebsd-ports@freebsd.org
Cc:        freebsd-stable@freebsd.org
Subject:   sigreturn: eflags creash (fixed!)
Message-ID:  <20011115104710.D47613-200000@shumai.marcuscom.com>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1695988314-1005839702=:47613
Content-Type: TEXT/PLAIN; charset=US-ASCII

Sorry for the wide distribution, but I have sent email to both lists
regarding this problem in the past.  It seems that while doing intensive
threaded operations in Gnome applications, crashes occur with the
following kernel message:

sigreturn: eflags 0x280

And, in .gnomerc-errors:

Fatal error 'Thread has returned from sigreturn or longjump'

The problem as I have found it is with libpng.  libpng uses MMX
optimizations by default on FreeBSD.  If you apply the attached patch to
patch-aa in /usr/ports/graphics/png, the problem goes away.  You only need
to recompile and install libpng.  Reinstalling Gnome isn't necessary.  It
seems the MMX optimizations are corrupting eflags, and when a thread tries
to restore context after a signal, things go really wrong.

The true fix will probably come in analyzing the MMX code in libpng.
Unfortunately, I don't know enough about x86 assembly to be of much use
here.  Hopefully this will help other experiencing the same problem.

Joe

--0-1695988314-1005839702=:47613
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="patch-aa.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <20011115105502.A47613@shumai.marcuscom.com>
Content-Description: 
Content-Disposition: attachment; filename="patch-aa.diff"

LS0tIHBhdGNoLWFhLm9yaWcJVGh1IE5vdiAxNSAxMDo1MjozMyAyMDAxDQor
KysgcGF0Y2gtYWEJVGh1IE5vdiAxNSAxMDo1MjoyMyAyMDAxDQpAQCAtNDIs
MTAgKzQyLDYgQEANCiAgCXBuZ3d0cmFuLm8gcG5nbWVtLm8gcG5nZXJyb3Iu
byBwbmdwcmVhZC5vDQogIA0KIC1hbGw6IGxpYnBuZy5hIHBuZ3Rlc3QNCi0r
LmlmICgke0FSQ0h9ID09ICJpMzg2IikNCi0rQ0ZMQUdTKz0tRFBOR19VU0Vf
UE5HR0NDUkQNCi0rT0JKUys9cG5nZ2NjcmQubw0KLSsuZW5kaWYNCiArDQog
Ky5TVUZGSVhFUzogLmMgLnNvIC5vDQogKw0KQEAgLTkxLDUgKzg3LDQgQEAN
CiAgcG5nd3RyYW4ubzogcG5nLmggcG5nY29uZi5oDQogIHBuZ3d1dGlsLm86
IHBuZy5oIHBuZ2NvbmYuaA0KICBwbmdwcmVhZC5vOiBwbmcuaCBwbmdjb25m
LmgNCi0rcG5nZ2NjcmQubzogcG5nLmggcG5nY29uZi5oIHBuZ2FzbXJkLmgN
CiAgDQo=
--0-1695988314-1005839702=:47613--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011115104710.D47613-200000>