Date: Wed, 7 Feb 2001 16:52:59 -0800 (PST) From: John Polstra <TrimYourCc@polstra.com> To: ports@freebsd.org Cc: sobomax@freebsd.org Subject: Re: Strange problems with dynamic linking of libGL.so.1 from XFree86-4.0.2_5 Message-ID: <200102080052.f180qxH02749@vashon.polstra.com> In-Reply-To: <3A8188ED.FC2A6241@FreeBSD.org> References: <3A6C3D19.E1F56291@FreeBSD.org> <3A755D84.266A80E7@FreeBSD.org> <86vgqn7vj4.wl@cheerful.com> <3A8188ED.FC2A6241@FreeBSD.org>
index | next in thread | previous in thread | raw e-mail
In article <3A8188ED.FC2A6241@FreeBSD.org>,
Maxim Sobolev <sobomax@FreeBSD.ORG> wrote:
> FUJISHIMA Satsuki wrote:
>
> > As libc_r does not have libc feature now, there's no reason to avoid
> > linking -lc_r against shared libraries, I think.
> >
> > Index: contrib/gcc.295/config/freebsd.h
> > ===================================================================
> > RCS file: /home/ncvs/src/contrib/gcc.295/config/freebsd.h,v
> > retrieving revision 1.31
> > diff -u -r1.31 freebsd.h
> > --- contrib/gcc.295/config/freebsd.h 2001/01/25 18:57:13 1.31
> > +++ contrib/gcc.295/config/freebsd.h 2001/02/06 08:54:23
> > @@ -76,10 +76,8 @@
> > (like the default, except no -lg, and no -p). */
> > #undef LIB_SPEC
> > #define LIB_SPEC "\
> > - %{!shared: \
> > - %{!pg: %{pthread:-lc_r} -lc} \
> > - %{pg: %{pthread:-lc_r_p} -lc_p} \
> > - }"
> > + %{!pg: %{pthread:-lc_r} %{!shared:-lc}} \
> > + %{pg: %{pthread:-lc_r_p} %{!shared:-lc_p}}"
> >
> >
> > /************************[ Target stuff ]***********************************/
>
> David, John what do you think about this patch?
I think it would be a mistake to implement this.
If the patch above were used then the shared library would contain
a dependency on a specific version of libc_r -- say libc_r.so.4.
But that version of libc_r is intimately tied to a specific version
of libc. Now if the application were run on a later version of
FreeBSD, it might get a newer libc which would be incompatible with
libc_r.so.4.
I think we need to view both libc and libc_r as basic low-level
system libraries which are to be linked once and only once into
the application. Other shared libraries should not have explicit
dependencies on them. If an application uses a library that requires
threads then the application itself should be linked with -lc_r or
-pthread.
John
--
John Polstra jdp@polstra.com
John D. Polstra & Co., Inc. Seattle, Washington USA
"Disappointment is a good sign of basic intelligence." -- Chögyam Trungpa
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200102080052.f180qxH02749>
