Date: Mon, 21 Oct 2002 16:48:34 +0300 From: Peter Pentchev <roam@ringlet.net> To: Linus Kendall <linus@angliaab.se> Cc: freebsd-hackers@FreeBSD.ORG Subject: Re: PThreads problem Message-ID: <20021021134834.GA41198@straylight.oblivion.bg> In-Reply-To: <1035206648.24315.20.camel@bilbo> References: <1035200159.24315.13.camel@bilbo> <20021021124520.GS389@straylight.oblivion.bg> <1035206648.24315.20.camel@bilbo>
next in thread | previous in thread | raw e-mail | index | archive | help
--AhhlLboLdkugWU4S Content-Type: text/plain; charset=windows-1251 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable 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, > > >=20 > > > 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 wi= th > > > -pthreads. But, when I try to run the application I get the following > > > error after a while (after spawning 11 threads): > > >=20 > > > 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 =3D ?) > > > Abort trap - core dumped > > >=20 > > > 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.=20 > > >=20 > > > GCC version on Linux: 2.95.4 20011002 > > > GCC version on FreeBSD: 2.95.3 20010315 > > >=20 > > > GCC/G++ command-line: g++ -g -Wall -I. `curl-config --cflags`=20 > > > -fsjlj-exceptions -D_THREAD_SAFE -D_REENTRANT -pthread `curl-config > > > --libs`=20 > >=20 > > Just for the record: what exactly do 'curl-config --cflags' and > > 'curl-config --libs' output? >=20 > 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 :( G'luck, Peter --=20 Peter Pentchev roam@ringlet.net roam@FreeBSD.org PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 I am jealous of the first word in this sentence. --AhhlLboLdkugWU4S Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.0 (FreeBSD) iD8DBQE9tAWy7Ri2jRYZRVMRAurbAJ92zm6T8VRknDO/JYEO08tNWQKJiQCfbTHJ lDKALkxmzUUHJFVZYaltld0= =t4VH -----END PGP SIGNATURE----- --AhhlLboLdkugWU4S-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021021134834.GA41198>