Enabling cygwin.rules/SharedLibFont
Harold L Hunt II
huntharo@msu.edu
Fri Oct 24 19:35:00 GMT 2003
Alexander,
Thanks for the update. No rush. It sounds like you have some good ideas.
By the way, David Dawes made a comment to another developer today about
possibly revisiting the design of linking static libraries into the X
Server after 4.4.0 is released. This may be accepted as a general patch
for all platforms if that ends up happening (or at least as a general
mechanism that other platforms could use).
Harold
Alexander Gottwald wrote:
> 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
More information about the Cygwin-xfree
mailing list