[PULL] Kill libxorg

Alan Coopersmith alan.coopersmith at oracle.com
Mon Jun 20 20:49:21 PDT 2011


On 06/20/11 12:25 PM, Dan Nicholson wrote:
> 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.

Still seems to build fine here with that change.

> 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.

I'm not sure the details, but the sections dtrace needs weren't getting
pulled into the static library archives by ar, only via the relocatable
objects - I guess the Solaris ld didn't see the repeated copies as a
problem though.

-- 
	-Alan Coopersmith-        alan.coopersmith at oracle.com
	 Oracle Solaris Platform Engineering: X Window System



More information about the xorg-devel mailing list