From owner-freebsd-ports Tue Apr 17 7:35:52 2001 Delivered-To: freebsd-ports@freebsd.org Received: from midten.fast.no (midten.fast.no [213.188.8.11]) by hub.freebsd.org (Postfix) with ESMTP id 142A137B43C for ; Tue, 17 Apr 2001 07:35:46 -0700 (PDT) (envelope-from Tor.Egge@fast.no) Received: from fast.no (IDENT:tegge@midten.fast.no [213.188.8.11]) by midten.fast.no (8.9.3/8.9.3) with ESMTP id QAA90670; Tue, 17 Apr 2001 16:35:41 +0200 (CEST) Message-Id: <200104171435.QAA90670@midten.fast.no> To: mflaster@research.bell-labs.com Cc: ports@freebsd.org Subject: Re: FreeBSD Port: linuxthreads-2.1.3_2 From: Tor.Egge@fast.no In-Reply-To: Your message of "Mon, 09 Apr 2001 11:15:37 -0400" References: <3AD1D219.13C39F9B@research.bell-labs.com> X-Mailer: Mew version 1.70 on Emacs 19.34.1 Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Date: Tue, 17 Apr 2001 16:35:41 +0200 Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > Hi, > > I was wondering if any work was being done on porting linuthreads 2.2.x > to FreeBSD? Also, is there some text somewhere which explains the > difference between 2.1.3_1 and 2.1.3_2? No. Some text was added to README.FreeBSD: c) The mutex wrapper functions only provide standard linuxthreads mutexes (i.e. non-recursive mutexes). This might lead to deadlocks if libc depends on recursive mutexes. 4) Be aware of the following libgcc issue: __register_frame_info() and __get_eh_info() from libgcc.a are linked into shared libraries that use exceptions, e.g. libstdc++. Those functions are not compatible with linuxthreads due to pthread_mutex_t and pthread_once_t having different sizes and static initializers. Linking the shared linuxthreads library before any such library causes the liblgcc_r.a version of those functions to be used. The commit message said: date: 2001/02/20 00:34:56; author: tegge; state: Exp; lines: +13 -0 Initialize attributes for new threads with default values when a NULL pthread_attr_t is provided as argument to pthread_create. liblgcc_r_pic.a no longer exists. Put the liblgcc_r.a version of __get_eh_info() and __register_frame_info() into the shared linuxthreads library to avoid using the incompatible libgcc.a version. Shared libraries that use exceptions still represent a problem if linked before the linuxthreads library. Compile liblgcc_r.a before the main linuxthreads library to provide the object files that contains __get_eh_info() and __register_frame_info(). Add minimal wrappers for native thread library functions used by 5.0-CURRENT libc. The wrappers try to call corresponding functions in the linuxthreads library after performing argument conversion. Some early versions of 2.1.3_2 still has problems with a bad reference to .cerror and fail to define __error(), this has later been fixed but the PORTVERSION variable in the main Makefile for the port has unfortunately not been bumped. - Tor Egge To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message