[XFree86-4.2.0] Now that we have an improved ld, please make libXt a shared library.
Harold L Hunt II
huntharo@msu.edu
Mon Jul 28 05:12:00 GMT 2003
Nicholas,
I really don't know what to do here. Perhaps some others know what to
do and whether or not this is a good idea.
Would it be easier to update to 4.3.0? Have we already made Xt a shared
lib in 4.3.0?
On a side note, has anyone been seeing signs of when 4.4.0 is going to
be released? I noticed that they just tagged 4.3.99.9, so maybe it
would be better to wait an release 4.4.0 when it is ready instead.
Any thoughts?
Harold
Nicholas Wourms wrote:
> Hi Harold,
>
> It's been awhile... Anyhow, I've been working on a few packages which
> use libtool, and thus the reason behind my request. It turns out, using
> the new libtool, that one has to go to extreme lengths just to get libXt
> to link in, since the new libtool balks at linking true static archives
> into shared libraries on Cygwin. As you know, X11's libs are very fussy
> over link order, thus there exists no simple way of getting the job done
> (i.e Automake refuses to allow -Wl flags in _la_LIBADD). I've managed
> to resolve my issue locally by passing "-Wl,-L/usr/X11R6/lib -Wl,-lXt
> -Wl,-lSM -Wl,-lICE -Wl,-lX11 -Wl,--exclude-libs,libXt.a" to my projects'
> _la_LDFLAGS, but this is obviously a kludge. There are many reasons why
> this is suboptimal, but the number one reason is that there is no way to
> transmit this information to projects linking against the library. Any
> linkee will need to know that -lXt should linked in (I'll admit most
> projects are on the ball and already have -lXt in their build, but not
> all). Another reason being that it reduces code bloat, which may or may
> not lead to better performance. However, the primary reason for not
> building libXt shared is moot and has been for several months now.
> Compiling with the latest stable binutils & cygwin dll will allow an
> effortless building of libXt.dll. If you doubt me, then `cd
> /usr/X11R6/lib` and do this:
>
> gcc -shared -o ../libXt.dll -Wl,--image-base=0x10000000
> -Wl,--out-implib,libXt.dll.a -Wl,--export-all-symbols
> -Wl,--enable-auto-import -Wl,--whole-archive libXt.a -Wl,
> --no-whole-archive libSM.a libICE.a libX11.a
>
> It works like a charm. As we speak, I'm compiling a shared lesstif
> using libtool-1.5 and a shared libXt. After minor adjustments of the
> Makefiles to account for cygwin's no undefined in shlibs issue, it seems
> to be working fine.
>
> I really can't see any downside to doing this, since going from
> static-only -> shared breaks nothing (even if it does, then it does so
> because of badness of the broken package's build). This may seem on the
> outside like a 4.3.0 type of change, but it really doesn't seem all that
> harmful.
>
> So, hopefully you might consider this in one of your updated test
> series? Thanks in advance for your consideration.
>
> Cheers,
> Nicholas
>
More information about the Cygwin-xfree
mailing list