Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Sep 2005 17:30:11 GMT
From:      Daniel Eischen <deischen@freebsd.org>
To:        freebsd-threads@FreeBSD.org
Subject:   Re: kern/86029: undefined reference to `_thread_dump_info'
Message-ID:  <200509211730.j8LHUBju049079@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/86029; it has been noted by GNATS.

From: Daniel Eischen <deischen@freebsd.org>
To: Christopher Sean Morrison <brlcad@mac.com>
Cc: David Xu <davidxu@freebsd.org>, <bug-followup@freebsd.org>
Subject: Re: kern/86029: undefined reference to `_thread_dump_info'
Date: Wed, 21 Sep 2005 13:28:09 -0400 (EDT)

 On Wed, 21 Sep 2005, Christopher Sean Morrison wrote:
 
 > David,
 >
 > This function was being used by a chunk of low level threading code in
 > the BRL-CAD that has been in use since '98 for dumping out extra state
 > information when thread creation fails.  We don't "want" to use it, it
 > just has been used for so long in the code for the very same reason
 > that it's used by the posix threading library -- it's very useful for
 > debugging and investigating failures.
 
 That's what SIGINFO is for.  Again, that's undocumented and
 allowed to change, but it's better than calling a library
 internal function.
 
 > For what it's worth, this routine was in fact documented in the OpenBSD
 > notes for c_r as being useful for exactly that purpose.  Again, this is
 > nothing new, either -- doesn't make it right, but what are the
 > alternatives?  The only difference seems to be the change on this AMD64
 > box to not utilize -lc_r when -pthread is provided on the compile line.
 
 OpenBSD took our libc_r.  If _thread_dump_info() was supposed to be
 callable from the outside, it would have been named pthread_dump_info_np().
 
 > I've got no issue removing the call from our code, but it seems
 > indicative of a larger change to what -pthread means.  If -pthread no
 > longer implies linking against c_r for whatever reason, that would be
 > the fundamental difference here that we'll need to accommodate in our
 > build.  In that regard, what non-private routine will provide similar
 > details when thread creation fails?
 
 -pthread means do whatever is necessary to link in the threads
 library.  In 5.x and subsequent, the threads library is libpthread,
 not libc_r.
 
 pthread_create() should return a useful errno if it can't create
 a thread.
 
 -- 
 DE
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200509211730.j8LHUBju049079>