Re: xpdf
Hello,
Aurelien Jarno, le Thu 03 Jan 2008 07:38:02 +0100, a écrit :
> >>> I was wondering: since we had to set _dl_dynamic_weak to 1; in
> >>> order to get the X11 stubs working properly anyway, maybe we could add
> >>> to the debian glibc package a temporary patch that implements the few
> >>> stubs, instead of erroneously asking packages to add -lpthread?
>
> You can make the patch Hurd specific by using the series.hurd-i386
> patch. This way you are sure it won't break other architectures.
Well, I've just put a forward.c in hurd/, so no problem for that:)
However, I've got problems with symbol versions. According to the
ld documentation and experiments there seems to be no way to have
these stubs version-less because libc already uses versions. That
means that adding these hooks in libc.so would make references to
these stubs versioned (say GLIBC_2.2.3). That's not a problem for now
since hurd's libpthread doesn't use versioning and so it would take
precedence. However, when libpthread eventually gets integrated in
glibc (say in version 2.9)[1], the real function would officially get
a version, GLIBC_2.9. And then the old libraries which still have a
GLIBC_2.2.3-versioned reference to the stubs won't accept the GLIBC_2.9
version, unless it is explicitely said in glibc's version script that
these functions are fine as GLIBC_2.2.3 versions too, but of course
upstream wouldn't do that (why 2.2.3 ?). That would mean that debian
has to carry a patch against the version script until all libraries
using stubs get recompiled with a glibc with the integrated libpthread
and thus get the correctly versioned reference.
Another solution would be to produce a libpthread_stubs.so library
(automatically linked-in as-needed from the libc.so script) which
provides version-less symbols and hence produce version-less references,
but that would mean that this library needs to be kept until all
threaded libraries are recompiled with a glibc with the integrated
libpthread, since then libpthread_stubs.so would be marked as NEEDED.
A last solution would be to produce a libpthread_stubs.a library
(automatically linked-in as-needed too) which directly provides the
stubs. That's the libX11 approach which made us have to define
_dl_dynamic_weak to 1. That would mean that we have to keep
_dl_dynamic_weak to 1 until all libraries using threads get recompiled
with a glibc with the integrated libpthread, since all these libraries
will behave like our current libX11.
/me desperate to find a less mid-term bloating solution...
Samuel
[1] or, if not integrated in glibc, when libpthread starts using its own
versions.
Reply to:
- Follow-Ups:
- Re: xpdf
- From: Samuel Thibault <samuel.thibault@ens-lyon.org>
- References:
- xpdf
- From: Barry deFreese <bddebian@comcast.net>
- Re: xpdf
- From: Samuel Thibault <samuel.thibault@ens-lyon.org>
- Re: xpdf
- From: Samuel Thibault <samuel.thibault@ens-lyon.org>
- Re: xpdf
- From: Michael Banck <mbanck@debian.org>
- Re: xpdf
- From: Aurelien Jarno <aurelien@aurel32.net>