Date: Fri, 29 Feb 2008 15:03:22 -0800 From: Derek Douville <ddouville@ncircle.com> To: freebsd-threads@freebsd.org Subject: Problem with 7.0-RELEASE amd64 lib32/libthr.so support of libpthread.so 32-bit binaries Message-ID: <47C88F3A.3020306@ncircle.com>
next in thread | raw e-mail | index | archive | help
Hi everyone, I need some help with threading lib32 compat programs under 7.0, which is supposed to fix a lot of broken areas of 6.x. We ran into 32bit-compat threading issues under 6.2 amd64 and started testing 7.0-RELEASE today to see if we can get a 32-bit program that was compiled with -pthread to execute successfully. So far, this is my environment: (a) FreeBSD 7.0-RELEASE amd64 installed with lib32 compatibility (b) /usr/ports/compat6x installed (c) /etc/libmap32.conf is empty The test code that revealed the threading issues under 6.x is this: ghost# cat pthread-crash.c #include <stdio.h> #include <pthread.h> void *thread(void *data) { puts("Thread."); return NULL; } int main() { pthread_t pth; void *pv; pthread_create(&pth,NULL,thread,NULL); pthread_join(pth,&pv); return 0; } ghost# file pthread-crash pthread-crash: ELF 32-bit LSB executable, Intel 80386, version 1 (FreeBSD), dynamically linked (uses shared libs), not stripped This code, when compiled natively on FreeBSD 6.2 i386 with -pthread, or on an amd64 platform using -m32, yields the following error messages from my amd64-bit test system (described above): ghost# ./pthread-crash Fatal error 'can not create signal daemon thread! ' at line 236 in file /usr/src/lib/libpthread/thread/thr_sig.c (errno = 22) Abort (core dumped) (gdb) bt #0 0x2809bacb in pthread_testcancel () from /usr/local/lib32/compat/libpthread.so.2 #1 0x28089972 in sigaction () from /usr/local/lib32/compat/libpthread.so.2 #2 0x28082cb9 in pthread_kill () from /usr/local/lib32/compat/libpthread.so.2 #3 0x28082534 in raise () from /usr/local/lib32/compat/libpthread.so.2 #4 0x2817162c in abort () from /usr/local/lib32/compat/libc.so.6 #5 0x2809c2fd in pthread_testcancel () from /usr/local/lib32/compat/libpthread.so.2 #6 0x28087685 in sigaction () from /usr/local/lib32/compat/libpthread.so.2 #7 0x2809232c in pthread_mutexattr_init () from /usr/local/lib32/compat/libpthread.so.2 #8 0x2808b410 in pthread_create () from /usr/local/lib32/compat/libpthread.so.2 #9 0x0804861e in main () Any help or feedback is greatly appreciated. -Derek -- Derek Douville (derek at ncircle.com) Senior Platform Engineer nCircle Network Security W: +1-415-625-5990 YIM: douvilld
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?47C88F3A.3020306>