Skip site navigation (1)Skip section navigation (2)
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>