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

Michel Dänzer michel at daenzer.net
Thu Jun 14 01:29:04 PDT 2012


On Mit, 2012-06-13 at 15:31 -0700, Alan Coopersmith wrote: 
> 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.

That's not ideal either, e.g. Debian package builds warn about linking
to libraries without referencing any of their symbols. OTOH that's
probably the case even with this patch with xserver 1.8 or older. So
maybe that would still be a better solution than forcing drivers to deal
with this...


-- 
Earthling Michel Dänzer           |                   http://www.amd.com
Libre software enthusiast         |          Debian, X and DRI developer


More information about the xorg-devel mailing list