[PULL] Kill libxorg

Dan Nicholson dbn.lists at gmail.com
Mon Jun 20 12:25:07 PDT 2011


On Sun, Jun 19, 2011 at 5:25 PM, Peter Hutterer
<peter.hutterer at who-t.net> wrote:
> On Fri, Jun 17, 2011 at 04:55:56PM -0700, Dan Nicholson wrote:
>> Here's a few commits that kill off the libxorg "convenience library of
>> convenience libraries". It provides a nice speedup when you're rebuilding
>> Xorg from only a couple local changes.
>
> Despite a distclean && reconf, I cannot make this link on my machine.
>
> ./../os/os.O: In function `AddEnabledDevice':
> /home/whot/xorg/xserver/os/connection.c:1057: multiple definition of
> `AddEnabledDevice'
> ./../os/os.O:/home/whot/xorg/xserver/os/connection.c:1057: first defined
> here
> ./../os/os.O: In function `CreateWellKnownSockets':
> /home/whot/xorg/xserver/os/connection.c:371: multiple definition of
> `CreateWellKnownSockets'
> ./../os/os.O:/home/whot/xorg/xserver/os/connection.c:371: first defined
> here
> ./../os/os.O: In function `AugmentSelf':
> /home/whot/xorg/xserver/os/access.c:806: multiple definition of
> `AugmentSelf'
> ./../os/os.O:/home/whot/xorg/xserver/os/access.c:806: first defined here
> collect2: ld returned 1 exit status
>
> there are approximately 2314 more of these, but I'll skip them for brevity.
> Is this a problem on my side or a bug in the patchset?

Patchset :) I didn't realize I could even enable dtrace for linux, but
then found it in the systemtap package. Here's the issue (you might
have to do this manually as gmail will most definitely whack the
formatting):

diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index a4ec1f7..e3ef14f 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -72,11 +72,6 @@ BUILT_SOURCES = xorg.conf.example
 DISTCLEANFILES = xorg.conf.example
 EXTRA_DIST = xorgconf.cpp

-if SPECIAL_DTRACE_OBJECTS
-# Re-add dtrace object code that gets lost when building static libraries
-Xorg_LDADD += $(XSERVER_LIBS)
-endif
-
 if SOLARIS_ASM_INLINE
 # Needs to be built before any files are compiled when using Sun compilers
 # so in*/out* inline definitions are properly processed.

I'm not really sure why that was needed when $(XSERVER_LIBS) was part
of libxorg.la rather than Xorg. I guess the symbols were getting
thrown out when linking os.O rather than libos.la into libxorg.la? But
if you're linking everything straight into Xorg, then you're just
adding the object files twice on the command line without the above
fix. So, I think the diff above should fix it, but I'm not an expert
on dtrace hooks. :) I'm not sure why Alan didn't hit the same thing,
though since SPECIAL_DTRACE_OBJECTS is yes on Solaris, too.

Can you try that out? If so, I'll roll it into PATCH 3/3.

--
Dan


More information about the xorg-devel mailing list