amd64/110655: [threads] 32 bit threaded applications crash on amd64 SMP kernel.

Kris Kennaway kris at obsecurity.org
Fri Jun 8 18:23:35 UTC 2007


On Fri, Jun 08, 2007 at 01:32:16PM -0400, John Baldwin wrote:
> On Wednesday 06 June 2007 05:50:07 pm Kris Kennaway wrote:
> > The following reply was made to PR amd64/110655; it has been noted by GNATS.
> > 
> > From: Kris Kennaway <kris at obsecurity.org>
> > To: Jeff Wheelhouse <jdw_list at wheelhouse.org>
> > Cc: Kris Kennaway <kris at obsecurity.org>, bug-followup at FreeBSD.org
> > Subject: Re: amd64/110655: [threads] 32 bit threaded applications crash on 
> amd64 SMP kernel.
> > Date: Wed, 6 Jun 2007 17:42:38 -0400
> > 
> >  On Wed, Jun 06, 2007 at 05:11:25PM -0400, Jeff Wheelhouse wrote:
> >  > Kris Kennaway wrote:
> >  > >-m32 doesn't DTRT on FreeBSD, can you confirm that this problem exists
> >  > >with a binary compiled by an i386 compiler?
> >  > 
> >  > I can.
> >  > 
> >  > $ uname -m
> >  > i386
> >  > $ cc -o crash32-thr crash32.c -lthr
> >  > $ cc -o crash32-pthread crash32.c -pthread
> >  > $ md5 crash32-thr crash32-pthread
> >  > MD5 (crash32-thr) = 91aea395dd2c5798d7cba9a216c4c227
> >  > MD5 (crash32-pthread) = a590f1c97e5ec11ddc94fa3d7f4bf167
> >  > $ ./crash32-thr
> >  > Thread.
> >  > $ ./crash32-pthread
> >  > Thread.
> >  > $
> >  > 
> >  > $ uname -m
> >  > amd64
> >  > $ md5 crash32-thr crash32-pthread
> >  > MD5 (crash32-thr) = 91aea395dd2c5798d7cba9a216c4c227
> >  > MD5 (crash32-pthread) = a590f1c97e5ec11ddc94fa3d7f4bf167
> >  > $ ./crash32-thr
> >  > Bad system call(coredump)
> >  > $ ./crash32-pthread
> >  > Memory fault(coredump)
> >  > $
> >  
> >  OK, that's useful to know.  I ran into a problem myself that looked
> >  similar but wanted to check first (I didn't isolate it to libthr yet).
> 
> libthr and umtx compat32 support isn't present in 6.x yet.  I have a patch to 
> MFC it, but the one person who has tested it still got crashes.  I don't 
> think even 7 has libpthread compat32 support yet.
> 
> http://www.FreeBSD.org/~jhb/patches/thr32.patch is my current libthr + umtx 
> compat32 patch for 6.x.

Possibly it's a different bug, but I have a threaded i386 7.0 binary
that SIGBUSes on amd64.  It is statically linked to libthr and does
mmap calls.  I can give you the binary if you like.

Kris



More information about the freebsd-amd64 mailing list