libXfont: Changes to 'master'
Alan Coopersmith
alanc at kemper.freedesktop.org
Thu May 15 19:30:12 PDT 2014
src/Makefile.am | 2 -
src/bitmap/bitscale.c | 6 +--
src/fc/fserve.c | 8 ++--
src/fontfile/renderers.c | 6 +--
src/stubs/Makefile.am | 2 -
src/stubs/cauthgen.c | 1
src/stubs/csignal.c | 1
src/stubs/delfntcid.c | 1
src/stubs/errorf.c | 1
src/stubs/fatalerror.c | 13 -------
src/stubs/findoldfnt.c | 1
src/stubs/getcres.c | 1
src/stubs/getdefptsize.c | 1
src/stubs/getnewfntcid.c | 1
src/stubs/gettime.c | 1
src/stubs/initfshdl.c | 1
src/stubs/regfpefunc.c | 4 ++
src/stubs/rmfshdl.c | 1
src/stubs/servclient.c | 9 +++++
src/stubs/setfntauth.c | 1
src/stubs/stfntcfnt.c | 1
src/stubs/stubs.h | 49 +++++++++++++++++++++++++++-
src/stubs/stubsinit.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++
src/util/atom.c | 4 ++
src/util/miscutil.c | 12 +++++-
25 files changed, 182 insertions(+), 28 deletions(-)
New commits:
commit c71c3ed50f1a8c204a988b49f6280944247a0dbe
Author: Yaakov Selkowitz <yselkowitz at users.sourceforge.net>
Date: Sun Apr 6 14:41:09 2014 -0500
Make shared library work on Cygwin/MinGW
Weak symbols on PE platforms do not work the same way as on ELF
platforms, hence we have been unable to have a fully functional shared
libXfont until now. This patch works around these issues so that we
can fix that.
In summary, only when compiling shared libraries on NO_WEAK_SYMBOLS
platforms, when the first stub is called, the invoking program is first
checked to determine if it exports the stubbed functions. Then, for
every stub call, if the function is exported by the loader, it is called
instead of the stub code.
serverClient and serverGeneration are data pointers, and therefore are
replaced by getter functions. ErrorF is variadic, so the override is
routed through VErrorF instead. FatalError has no va_list equivalent,
but it is not actually used in libXfont and therefore should be safe to
remove.
This requires all X servers to export their symbols, which requires
forthcoming patches for hw/xwin and xfs; the other xservers (including
tigervnc) already do this via LD_EXPORT_SYMBOLS_FLAG.
More information about the xorg-commit
mailing list