This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Enabling cygwin.rules/SharedLibFont


Alexander Gottwald wrote:

> Harold L Hunt II wrote:
>
> > Okay, do you want to look into why XWin.exe crashed on startup with the
> > shared version of the Xfont library?  Or, are you willing to let me
> > handle that?  :)
>
> First should be xfs working with the shared lib. I've tried the shared
> linked xfs and it failed. Relinking it with the static Xfont solved the
> problem. So there must be a big difference in the way how the libs are
> build.

Results of my closer look:

The stub library (libfntstubs) is required because the libXfont design
requires undefined symbols, which are defined in the program (eg ErrorF).
libfntstubs provides the functions as non-functional ones. the only consist
of the prototype and an return.

Some of the functions initalize global structures (RegisterFPEFunctions).
RegisterFPEFunctions is not defined in libXfont but in xfs. Unfortunatly
the dlls do not allow undefined symbols and the stub library is used, but
now the required initialisation of the global structures is not done.

As a fix I think of changing the stubs to use an indirect call:

func_type *_RegisterFPEFunctions = NULL;
int RegisterFPEFunctions(...) {
    if (_RegisterFPEFunctions == NULL)
        return 0;
    else
        _RegisterFPEFunctions(...);
}

and set it with code added to libXfont.dll.a which is linked staticly into
the program:

extern func_type *_RegisterFPEFunctions;

void __init() {
  _RegisterFPEFunctions = RegisterFPEFunctions;
}

But this still requires some days. I'm away for the next weekend.

bye
    ago

NP: Terminal Choice - Flesh in Chains
-- 
 Alexander.Gottwald@informatik.tu-chemnitz.de
 http://www.gotti.org           ICQ: 126018723


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]