[RFC PATCH:xf86-video-ati 9/15] Link with modules needed to build with no-undefined linking

Alan Coopersmith alan.coopersmith at oracle.com
Wed Jun 13 15:31:50 PDT 2012


On 06/12/12 12:06 AM, Michel Dänzer wrote:
> On Mon, 2012-06-11 at 18:36 -0700, Alan Coopersmith wrote: 
>> On 06/ 1/12 02:56 AM, Michel Dänzer wrote:
>>> On Fre, 2012-05-25 at 08:02 -0700, Alan Coopersmith wrote: 
>>>> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
>>>> ---
>>>>  src/Makefile.am |   13 +++++++++++--
>>>>  1 file changed, 11 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/src/Makefile.am b/src/Makefile.am
>>>> index dc77c02..4357135 100644
>>>> --- a/src/Makefile.am
>>>> +++ b/src/Makefile.am
>>>> @@ -26,11 +26,12 @@
>>>>  # _ladir passes a dummy rpath to libtool so the thing will actually link
>>>>  # TODO: -nostdlib/-Bstatic/-lgcc platform magic, not installing the .a, etc.
>>>>  
>>>> -radeon_drv_la_LIBADD = $(LIBDRM_RADEON_LIBS)
>>>> +radeon_drv_la_LIBADD = $(LIBDRM_RADEON_LIBS) $(XORG_LIBS) -lpixman-1 -lm
>>>
>>> The driver doesn't depend on pixman directly, does it? I'd prefer that
>>> to be inherited from xserver somehow. If it isn't covered by -lfb
>>> anyway, that is.
>>
>> It does, thanks to the fb macros that now implement region operations using
>> pixman functions - nm on radeon_drv.so here shows it calling:
>>
>> pixman_region_copy
>> pixman_region_equal
>> pixman_region_subtract
>> pixman_region_union
> 
> Ugh. I stand by my point though: This is an xserver implementation
> detail, so ideally the -lpixman-1 should be inherited from xserver.
> 
> Maybe that's beyond the scope of this patch, but at the least the pixman
> link stanza needs to be determined via pkg-config.

Unfortunately, the X server pkg-config file doesn't know which modules are
going to call the region functions or not - I suppose we could add it to the
.pc file and have libpixman linked into every module, whether it uses it or not.

But certainly I can replace -lpixman-1 in Makefile.am with a
PKG_CHECK_MODULES(..., pixman-1) in configure.ac.   I don't remember why I
didn't do that in the first place.

-- 
	-Alan Coopersmith-              alan.coopersmith at oracle.com
	 Oracle Solaris Engineering - http://blogs.oracle.com/alanc


More information about the xorg-devel mailing list