in make Xnest and XWin (both include libX11 and libXdmcp) ../../exports/lib/libXdmcp.a(Wrap.o)(.text+0x0): In function `XdmcpWrap': /mnt/d/ago/xorg-head/xc/.build/lib/Xdmcp/Wrap.c:56: multiple definition of `_XdmcpWrap' ../../exports/lib/libX11.a(d000548.o)(.text+0x0): first defined here collect2: ld returned 1 exit status I don't know how to solve this without removing Wrap.c from libX11 and linking it to libXdmcp
Alexander, this may be Cygwin specific as noone else seems to see it. Could you please look into this?
Created attachment 762 [details] [review] remove Wrap.c, Wrap.h and WrapHelp.c from libX11 removes Wrap.c, Wrap.h and WrapHelp.c from libX11. It links to libXdmcp instead. The change has effect on cygwin only but should work for other platforms too.
The Wrap*.[ch] code is self contained, so I would rather it remain in both X11 and Xdmcp instead of creating another external dependency. It seems that cygwin cannot deal with multiple references gracefully, so I don't see a problem with making cygwin a special case as Alexander proposed in his fix. Egbert, what do you think?
I'd rather not have libX11 depend on libXdmcp -- that causes binary compatibility problems on any system which doesn't have dependency information in shared libraries (vis the Xaw/Xp issues). A simple solution would have libX11 #define the names around so that it didn't conflict with libXdmcp.
Should libX11 export XdmcpWrap? A simple solution is --exclude-symbols=XdmcpWrap for cygwin
Created attachment 776 [details] [review] do not export XdmcpWrap
Created attachment 777 [details] [review] do not export Xdmcp functions in libX11 excludes XdmcpWrap and _XdmcpWrapperToOddParity from automatic export
I think this is a good solution for cygwin. If no one has any objections, I will go ahead and check it in tomorrow.
No objections, so I checked in the patch. Closing.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.