Subject: threads broken on amd64 ?
To: NetBSD amd64 <port-amd64@netbsd.org>
From: Nicolas Joly <njoly@pasteur.fr>
List: port-amd64
Date: 09/23/2003 11:08:41
Hi,

While testing some of our programs, i discovered that threads seems to
be badly damaged on NetBSD amd64. Every program linked with pthread
library crash ... The same programs, if non threaded, work fine.

Even the NetBSD threads regression tests crash with apparently the
same problem :

njoly@calimero [lib/libpthread]> uname -a
NetBSD calimero.bis.pasteur.fr 1.6ZC NetBSD 1.6ZC (GENERIC.MP) #3: Tue Sep 23 10:00:52 CEST 2003  njoly@calimero.bis.pasteur.fr:/local/src/NetBSD/objs/local/src/NetBSD/src/sys/arch/amd64/compile/GENERIC.MP amd64
njoly@calimero [lib/libpthread]> pwd
/local/src/NetBSD/src/regress/lib/libpthread
njoly@calimero [lib/libpthread]> make regress
regress ===> atexit
./atexit > output
if cmp /local/src/NetBSD/src/regress/lib/libpthread/atexit/../../libc/atexit/expected output; then  echo PASSED;  else  echo FAILED; exit 1;  fi
PASSED
regress ===> barrier1
./barrier1
thread 0 entering barrier
*** Signal 10
[...]
njoly@calimero [lib/libpthread]> cd barrier1
njoly@calimero [libpthread/barrier1]> ls -l
total 11766
drwxr-xr-x  2 njoly  users      512 Jul 23 21:03 CVS
-rw-r--r--  1 njoly  users      178 Jan 30  2003 Makefile
-rwxr-xr-x  1 njoly  users    10414 Sep 23 10:57 barrier1
-rw-r--r--  1 njoly  users     1413 Jan 30  2003 barrier1.c
-rw-------  1 njoly  users  5992448 Sep 23 10:57 barrier1.core
-rw-r--r--  1 njoly  users     3728 Sep 23 10:57 barrier1.o
njoly@calimero [libpthread/barrier1]> gdb ./barrier1 ./barrier1.core
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-unknown-netbsd1.6R"...
(no debugging symbols found)...
Core was generated by `barrier1'.
Program terminated with signal 10, Bus error.
Reading symbols from /usr/libexec/ld.elf_so...(no debugging symbols found)...
done.
Loaded symbols for /usr/libexec/ld.elf_so
Reading symbols from /usr/lib/libpthread.so.0...(no debugging symbols found)...
done.
Loaded symbols for /usr/lib/libpthread.so.0
Reading symbols from /usr/lib/libc.so.12...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libc.so.12
#0  0x0000000040808e7d in _setcontext_u () from /usr/lib/libpthread.so.0
(gdb)

Thanks in advance,
Regards.

-- 
Nicolas Joly

Biological Software and Databanks.
Pasteur Institute, Paris.