On Mon, Oct 21, 2002 at 04:48:34PM +0300, Peter Pentchev wrote: > On Mon, Oct 21, 2002 at 03:24:08PM +0200, Linus Kendall wrote: > > m?n 2002-10-21 klockan 14.45 skrev Peter Pentchev: > > > On Mon, Oct 21, 2002 at 01:35:59PM +0200, Linus Kendall wrote: > > > > Hi, > > > > > > > > I'm trying to port a heavily threaded application from Linux (Debian > > > > 3.0, 2.4.19) to > > > > FreeBSD (4.6-RELEASE). The program compiles successfully using gcc with > > > > -pthreads. But, when I try to run the application I get the following > > > > error after a while (after spawning 11 threads): > > > > > > > > Fatal error 'siglongjmp()ing between thread contexts is undefined by > > > > POSIX 1003.1' at line ? in file > > > > /usr/src/lib/libc_r/uthread/uthread_jmp.c (errno = ?) > > > > Abort trap - core dumped > > > > > > > > It always crashes at the same point. Under Linux it works perfectly > > > > fine. > > > > I also tried to compile with linuxthreads only to get a segfault > > > > directly when the program tries to spawn the first thread. > > > > > > > > GCC version on Linux: 2.95.4 20011002 > > > > GCC version on FreeBSD: 2.95.3 20010315 > > > > > > > > GCC/G++ command-line: g++ -g -Wall -I. `curl-config --cflags` > > > > -fsjlj-exceptions -D_THREAD_SAFE -D_REENTRANT -pthread `curl-config > > > > --libs` > > > > > > Just for the record: what exactly do 'curl-config --cflags' and > > > 'curl-config --libs' output? > > > > Libcurl is an HTTP-library which is said to be threadsafe (and also > > works normally under Linux). > > I know what libcurl is; as a matter of fact, I happen to be the > maintainer of the ftp/curl port :) That's partly the reason why I am > interested in your problem, especially given what you report below.. > > I was asking about the specific output of the compiler flags and the > libraries that cURL reports as needed, to see if there were any > conflicts there with any of the other compiler flags. > > > I've been looking at it and it seems that the problem was based on > > the fact that libcurl triggers an SIGALARM which in Linux isn't a > > problem but for which I needed to define a signal handler (ie. block) > > in *BSD. > > This is interesting; can you produce a simple testcase? If not, I will > be able to take a look at it some time later today or tomorrow, but not > right now :(
Oh BTW.. libcurl is indeed threadsafe, with a single exception, mentioned in the THREADS section of the libcurl(3) manual page.. is there any chance that this is related to the problem you are having? G'luck, Peter -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 If this sentence were in Chinese, it would say something else.
msg37497/pgp00000.pgp
Description: PGP signature