Re: Shared library support on Cygwin
Keith Packard <[email protected]> Wed, 14 Jan 2004 15:04:42 +1030
| Newsgroups | gmane.comp.freedesktop.xlibs.general |
|---|---|
| Message-ID | <[email protected]> |
Around 13 o'clock on Jan 13, Harold L Hunt II wrote: > 1) We need to set "LDFLAGS = -no-undefined" for all libraries that do > not export undefined symbols. I believe this can't be used in Xlib because of pthread functions called while threading is enabled -- on some systems, these functions are found in -lpthread, and Xlib isn't explicitly linked to pthread to avoid mapping that file in every application on the system. > 2) This may be related to #1... but Xau is being directly linked when > X11 is linked. Currently, Xau is built as static (but the question is, > does it have to be static, or does it not export undefined symbols?); on > Cygwin, shared libraries cannot be linked to static libraries, so X11 > will be forced to be static only if linked to a static Xau. The few Xau functions used in Xlib used to be compiled by linking the source files into the Xlib directory and building them there. I changed this to build Xau as a shared library and just use that. I don't know if this is the right way of doing stuff. If you want to change this, I suggest using the same mechanism as used by xtrans -- have Xau install the necessary source files into an include directory and building them into Xlib by creating a .c file that references them. If you just want to leave stuff alone, you should be able to build/install Xau and then X11 will use the shared version of the library that should get installed just fine. I don't have a strong opinion here; sharing code is good, but there aren't a huge number of applications using other Xau code, and having another library mapped into ever X application is bad. -keith