Re: Problems with shared lesstif and shared Xt on Cygwin/XFree86

2003-10-27 Thread Alexander Gottwald
Harold L Hunt II wrote:

 I tried a build without $(SMLIB) and $(ICELIB) in SharedXtReqs, but it
 fails to link due to unresolved symbols (all symbols must be resolved at
 library link time in DLLs on Windows).

 I will have to consult with the rest of the Cygwin people to see what we
 should do now.

I'm working on a similar problem with libXfont. The more I think about it,
the more problems I see and I think this is a feature, which ld must provide.

The cases where the symbol is undefined in the shared library might get
resolved with dispatch functions and code in the program which changes
the pointer which is used by the dispatch code.

bye
ago
-- 
 [EMAIL PROTECTED]
 http://www.gotti.org   ICQ: 126018723
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: Problems with shared lesstif and shared Xt on Cygwin/XFree86

2003-10-27 Thread Matthieu Herrb
Torrey Lyons wrote (in a message from Saturday 25)
  The issue on Mac OS X is that most shared libraries want to be built 
  as two-level namespace images. Two-level namespace images have 
  significant advantages in loading speed, but they require that they 
  have no unresolved symbols when linking the library. This is why the 
  darwinLib.tmpl contains a complete list of every library's 
  dependencies. Unfortunately this causes a problem with two shared 
  libraries, Xt and Xfont. The problem is that these libraries are 
  designed to have certain symbols undefined and to have theses 
  references resolved at application link time by one of various other 
  library choices. In the case of Xt, SM and ICE provide the default 
  resolution of these symbols in darwinLib.tmpl (and cygwin.tmpl), but 
  symbols with the same names from lesstif should be used instead when 
  the application is linked with it. Two-level namespace libraries 
  don't allow you to do that since all symbols get resolved at library 
  link time, not application link time. Thus we fixed this problem by 
  building libXt and libXfont as flat namespace images, which have the 
  same linking semantics that most people on other *nixes are used to.

Weak symbols can be used on systems that support them to solve this
kind of issues. Does cygwin support them ? 

If so libXt and libXfont can be patched to provide weak definitions of
the SM/ICE functions it needs instead of linking libXt against those
libs. 



Matthieu
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Problems with shared lesstif and shared Xt on Cygwin/XFree86

2003-10-25 Thread Harold L Hunt II
Torrey,

Looks like you may have had the same sort of trouble that we are now 
having with regards to building a shared version of the lesstif 
libraries that link to a shared version of the Xt library.  The 
particular error message, when starting a lesstif app is:

XmManager ClassInitialize: XmeTraitSet failed

Nicholas Wourms has been looking into this problem (his notes are below) 
and he seems to think that an OS/X-specific fix may have been made to 
one of the XFree86 libs to alleviate this problem with lesstif.

Do you recall anything related to this problem?  If so, could you 
describe the fix or point us to a message describing the fix?

Thanks in advance,

Harold



*SIGH* I spoke too soon, after building nedit and trying some other
tests, I'm experiencing the XmManager ClassInitialize: XmeTraitSet
failed problem.  Apparently the MacOSX people went through this ordeal
last year, but unfortunately that doesn't help us.  They had two solutions:
1) Pass -force_flat_namespace which is part of OSX's proprietary
   linker.
2) Downgrade to XFree86-4.1 libs of some sort or upgrade to latest cvs.
Of course, in-depth information on why this is happening is nonexistant,
all I could find were:
http://oroborosx.sourceforge.net/faq.html#q5p1
http://www.geocrawler.com/mail/msg.php3?msg_id=8230372list=8629
Given that information, I'm willing to bet that an OSX-only fix was
checked in sometime after July of last year to resolve this.  Finding
out what it is will be difficult I'm willing to bet.  Of course it could
just be Xt misbehaving or an auto-import/psuedo-ops failure.  Heh, oh
well, I'm going to further investigate this tommorrow...  Sorry that it
isn't working properly :-(.
One last thought, perhaps we should CC Brian Ford in on this since
another fresh perspective might be good.
Cheers,
Nicholas
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: Problems with shared lesstif and shared Xt on Cygwin/XFree86

2003-10-25 Thread Torrey Lyons
The issue on Mac OS X is that most shared libraries want to be built 
as two-level namespace images. Two-level namespace images have 
significant advantages in loading speed, but they require that they 
have no unresolved symbols when linking the library. This is why the 
darwinLib.tmpl contains a complete list of every library's 
dependencies. Unfortunately this causes a problem with two shared 
libraries, Xt and Xfont. The problem is that these libraries are 
designed to have certain symbols undefined and to have theses 
references resolved at application link time by one of various other 
library choices. In the case of Xt, SM and ICE provide the default 
resolution of these symbols in darwinLib.tmpl (and cygwin.tmpl), but 
symbols with the same names from lesstif should be used instead when 
the application is linked with it. Two-level namespace libraries 
don't allow you to do that since all symbols get resolved at library 
link time, not application link time. Thus we fixed this problem by 
building libXt and libXfont as flat namespace images, which have the 
same linking semantics that most people on other *nixes are used to.

In your case, I suspect that including $(SMLIB) and $(ICELIB) in the 
following line from cygwin.tmpl is causing your problem:

#define SharedXtReqs $(LDPRELIB) $(SMLIB) $(ICELIB) $(XLIBONLY)

If Cygwin's linker does not complain when you removed these two, you 
should be fine. As it is all of the references which are supposed to 
remain undefined are likely being satisfied at library link time so 
nothing from lesstif is being included at application link time.

--Torrey

At 2:43 AM -0400 10/25/03, Harold L Hunt II wrote:
Torrey,

Looks like you may have had the same sort of trouble that we are now 
having with regards to building a shared version of the lesstif 
libraries that link to a shared version of the Xt library.  The 
particular error message, when starting a lesstif app is:

XmManager ClassInitialize: XmeTraitSet failed

Nicholas Wourms has been looking into this problem (his notes are 
below) and he seems to think that an OS/X-specific fix may have been 
made to one of the XFree86 libs to alleviate this problem with 
lesstif.

Do you recall anything related to this problem?  If so, could you 
describe the fix or point us to a message describing the fix?

Thanks in advance,

Harold



*SIGH* I spoke too soon, after building nedit and trying some other
tests, I'm experiencing the XmManager ClassInitialize: XmeTraitSet
failed problem.  Apparently the MacOSX people went through this ordeal
last year, but unfortunately that doesn't help us.  They had two solutions:
1) Pass -force_flat_namespace which is part of OSX's proprietary
   linker.
2) Downgrade to XFree86-4.1 libs of some sort or upgrade to latest cvs.
Of course, in-depth information on why this is happening is nonexistant,
all I could find were:
http://oroborosx.sourceforge.net/faq.html#q5p1
http://www.geocrawler.com/mail/msg.php3?msg_id=8230372list=8629
Given that information, I'm willing to bet that an OSX-only fix was
checked in sometime after July of last year to resolve this.  Finding
out what it is will be difficult I'm willing to bet.  Of course it could
just be Xt misbehaving or an auto-import/psuedo-ops failure.  Heh, oh
well, I'm going to further investigate this tommorrow...  Sorry that it
isn't working properly :-(.
One last thought, perhaps we should CC Brian Ford in on this since
another fresh perspective might be good.
Cheers,
Nicholas
___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: Problems with shared lesstif and shared Xt on Cygwin/XFree86

2003-10-25 Thread Harold L Hunt II
Thanks Torrey.

I tried a build without $(SMLIB) and $(ICELIB) in SharedXtReqs, but it 
fails to link due to unresolved symbols (all symbols must be resolved at 
library link time in DLLs on Windows).

I will have to consult with the rest of the Cygwin people to see what we 
should do now.

Thanks again,

Harold

Torrey Lyons wrote:

The issue on Mac OS X is that most shared libraries want to be built as 
two-level namespace images. Two-level namespace images have 
significant advantages in loading speed, but they require that they have 
no unresolved symbols when linking the library. This is why the 
darwinLib.tmpl contains a complete list of every library's dependencies. 
Unfortunately this causes a problem with two shared libraries, Xt and 
Xfont. The problem is that these libraries are designed to have certain 
symbols undefined and to have theses references resolved at application 
link time by one of various other library choices. In the case of Xt, SM 
and ICE provide the default resolution of these symbols in 
darwinLib.tmpl (and cygwin.tmpl), but symbols with the same names from 
lesstif should be used instead when the application is linked with it. 
Two-level namespace libraries don't allow you to do that since all 
symbols get resolved at library link time, not application link time. 
Thus we fixed this problem by building libXt and libXfont as flat 
namespace images, which have the same linking semantics that most people 
on other *nixes are used to.

In your case, I suspect that including $(SMLIB) and $(ICELIB) in the 
following line from cygwin.tmpl is causing your problem:

#define SharedXtReqs $(LDPRELIB) $(SMLIB) $(ICELIB) $(XLIBONLY)

If Cygwin's linker does not complain when you removed these two, you 
should be fine. As it is all of the references which are supposed to 
remain undefined are likely being satisfied at library link time so 
nothing from lesstif is being included at application link time.

--Torrey

At 2:43 AM -0400 10/25/03, Harold L Hunt II wrote:

Torrey,

Looks like you may have had the same sort of trouble that we are now 
having with regards to building a shared version of the lesstif 
libraries that link to a shared version of the Xt library.  The 
particular error message, when starting a lesstif app is:

XmManager ClassInitialize: XmeTraitSet failed

Nicholas Wourms has been looking into this problem (his notes are 
below) and he seems to think that an OS/X-specific fix may have been 
made to one of the XFree86 libs to alleviate this problem with lesstif.

Do you recall anything related to this problem?  If so, could you 
describe the fix or point us to a message describing the fix?

Thanks in advance,

Harold



*SIGH* I spoke too soon, after building nedit and trying some other
tests, I'm experiencing the XmManager ClassInitialize: XmeTraitSet
failed problem.  Apparently the MacOSX people went through this ordeal
last year, but unfortunately that doesn't help us.  They had two 
solutions:
1) Pass -force_flat_namespace which is part of OSX's proprietary
   linker.
2) Downgrade to XFree86-4.1 libs of some sort or upgrade to latest cvs.

Of course, in-depth information on why this is happening is nonexistant,
all I could find were:
http://oroborosx.sourceforge.net/faq.html#q5p1
http://www.geocrawler.com/mail/msg.php3?msg_id=8230372list=8629
Given that information, I'm willing to bet that an OSX-only fix was
checked in sometime after July of last year to resolve this.  Finding
out what it is will be difficult I'm willing to bet.  Of course it could
just be Xt misbehaving or an auto-import/psuedo-ops failure.  Heh, oh
well, I'm going to further investigate this tommorrow...  Sorry that it
isn't working properly :-(.
One last thought, perhaps we should CC Brian Ford in on this since
another fresh perspective might be good.
Cheers,
Nicholas


___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel