Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Nov 2004 16:07:46 -0800
From:      Sean McNeil <sean@mcneil.com>
To:        Daniel Eischen <deischen@freebsd.org>
Cc:        current@freebsd.org
Subject:   Re: missing weak symbol for pthread_equal in libc
Message-ID:  <1100477266.89074.15.camel@server.mcneil.com>
In-Reply-To: <Pine.GSO.4.43.0411141834220.16228-100000@sea.ntplx.net>
References:  <Pine.GSO.4.43.0411141834220.16228-100000@sea.ntplx.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--=-aZWYRMzwF80bujqZbo62
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Sun, 2004-11-14 at 18:46 -0500, Daniel Eischen wrote:
> On Sun, 14 Nov 2004, Sean McNeil wrote:
>=20
> >
> > I think pthread_equal should be added to libc.  I found it is used in
> > libxml2 and a link to that library fails without -pthread.
>=20
> The pthread_foo() in libc are mainly for libc usage.  If applications
> want to use pthread_foo(), they really should be linking to the (a)
> threads library.  Look at it this way -- if we didn't use any pthread
> functions in libc, there wouldn't be _any_ pthread stubs in libc.
> Also, we could have used __libc_lock(), __libc_unlock(), etc, in
> libc and have the threads libraries override those functions instead
> of using _pthread_*().
>=20
> pthread_equal() would be kinda harmless in libc, but you get my
> point above, no?

After some thought, I agree as pthread_equal is not used within libc,
but this brings up the question as to why there are any pthread_*
symbols in libc.

This is kind of a sore point for me.  I actually believe that there
should be no weak symbols of pthread_* in libc.  A program that uses
pthread_cond_init, for example, should not compile without the pthread
library.

weak symbols to the _pthread_* functions are fine as they are required
to provide thread-safe functionality within libs.  IMHO, it should be
setup as follows:

1) libpthread.so has routines _pthread_* and references as pthread_* (I
think they should be strong, but others think weak ;-) - suppose to be
funny, not offensive).

2) libc.so accesses those (_pthread_*) functions and has weak symbols
for the ones it use to work without libpthread.


--=-aZWYRMzwF80bujqZbo62
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (FreeBSD)

iD8DBQBBl/NSyQsGN30uGE4RAvChAJ9qyFQR3hMbn8UZFv9btR6Eed6hfQCePV5E
fo9SY4UFwYVjoh8evRVlhPA=
=h5VB
-----END PGP SIGNATURE-----

--=-aZWYRMzwF80bujqZbo62--



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