[xserver] dmx: fix linking

Submitted by Mihail Konev on Feb. 2, 2017, 9:57 p.m.

Details

Message ID 20170202215754.GA2291@localhost
State Superseded, archived
Headers show
Series "dmx: fix linking" ( rev: 1 ) in X.org (DEPRECATED - USE GITLAB)

Not browsing as part of any series.

Commit Message

Mihail Konev Feb. 2, 2017, 9:57 p.m.
Regressed-in: bb9128fd ("present: disable page flip")
Signed-off-by: Mihail Konev <k.mvc@ya.ru>
---
Maybe there should be #ifdef-s instead - I only bisected :)

 randr/Makefile.am | 1 +
 1 file changed, 1 insertion(+)

Patch hide | download patch | download mbox

diff --git a/randr/Makefile.am b/randr/Makefile.am
index 90dc9ec9aac4..90aa1289f958 100644
--- a/randr/Makefile.am
+++ b/randr/Makefile.am
@@ -30,3 +30,4 @@  if XINERAMA
 librandr_la_SOURCES += ${XINERAMA_SRCS}
 endif
 
+librandr_la_LIBADD = $(top_builddir)/render/librender.la

Comments

On 03/02/17 06:57 AM, Mihail Konev wrote:
> Regressed-in: bb9128fd ("present: disable page flip")
> Signed-off-by: Mihail Konev <k.mvc@ya.ru>
> ---
> Maybe there should be #ifdef-s instead - I only bisected :)
> 
>  randr/Makefile.am | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/randr/Makefile.am b/randr/Makefile.am
> index 90dc9ec9aac4..90aa1289f958 100644
> --- a/randr/Makefile.am
> +++ b/randr/Makefile.am
> @@ -30,3 +30,4 @@ if XINERAMA
>  librandr_la_SOURCES += ${XINERAMA_SRCS}
>  endif
>  
> +librandr_la_LIBADD = $(top_builddir)/render/librender.la
> 

This looks weird. bb9128fd added a RRHasScanoutPixmap call in present
code; I'd expect that to require linking randr to wherever the present
code ends up, not sure why it would require linking render to randr.

Anyway, https://patchwork.freedesktop.org/patch/136239/ and
https://patchwork.freedesktop.org/patch/136238/ basically undo bb9128fd,
can you test that the DMX failure is fixed with those?
On Fri, Feb 03, 2017 at 10:08:03AM +0900, Michel Dänzer wrote:
> On 03/02/17 06:57 AM, Mihail Konev wrote:
> > Regressed-in: bb9128fd ("present: disable page flip")
> > Signed-off-by: Mihail Konev <k.mvc@ya.ru>
> > ---
> > Maybe there should be #ifdef-s instead - I only bisected :)
> > 
> >  randr/Makefile.am | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/randr/Makefile.am b/randr/Makefile.am
> > index 90dc9ec9aac4..90aa1289f958 100644
> > --- a/randr/Makefile.am
> > +++ b/randr/Makefile.am
> > @@ -30,3 +30,4 @@ if XINERAMA
> >  librandr_la_SOURCES += ${XINERAMA_SRCS}
> >  endif
> >  
> > +librandr_la_LIBADD = $(top_builddir)/render/librender.la
> > 
> 
> This looks weird. bb9128fd added a RRHasScanoutPixmap call in present
> code; I'd expect that to require linking randr to wherever the present
> code ends up, not sure why it would require linking render to randr.
> 

Linker command line for Xdmx was: render, present, randr
With bb9128fd, needs to be: present, randr, render

Probably this is due to how inter-dependencies are resolved, as randr, present, render gives:

  ../../present/.libs/libpresent.a(present.o): In function `present_check_output_slaves_active':
  /xserver/present/present.c:126: undefined reference to `RRHasScanoutPixmap'
  collect2: error: ld returned 1 exit status

Adding render at the end of Xdmx_LDADD gives just the needed "present, randr, render".
(libtool probably only leaves the last librender.a).
On 04/02/17 06:53 AM, Mihail Konev wrote:
> On Fri, Feb 03, 2017 at 10:08:03AM +0900, Michel Dänzer wrote:
>> On 03/02/17 06:57 AM, Mihail Konev wrote:
>>> Regressed-in: bb9128fd ("present: disable page flip")
>>> Signed-off-by: Mihail Konev <k.mvc@ya.ru>
>>> ---
>>> Maybe there should be #ifdef-s instead - I only bisected :)
>>>
>>>  randr/Makefile.am | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/randr/Makefile.am b/randr/Makefile.am
>>> index 90dc9ec9aac4..90aa1289f958 100644
>>> --- a/randr/Makefile.am
>>> +++ b/randr/Makefile.am
>>> @@ -30,3 +30,4 @@ if XINERAMA
>>>  librandr_la_SOURCES += ${XINERAMA_SRCS}
>>>  endif
>>>  
>>> +librandr_la_LIBADD = $(top_builddir)/render/librender.la
>>>
>>
>> This looks weird. bb9128fd added a RRHasScanoutPixmap call in present
>> code; I'd expect that to require linking randr to wherever the present
>> code ends up, not sure why it would require linking render to randr.
>>
> 
> Linker command line for Xdmx was: render, present, randr
> With bb9128fd, needs to be: present, randr, render
> 
> Probably this is due to how inter-dependencies are resolved, as randr, present, render gives:
> 
>   ../../present/.libs/libpresent.a(present.o): In function `present_check_output_slaves_active':
>   /xserver/present/present.c:126: undefined reference to `RRHasScanoutPixmap'
>   collect2: error: ld returned 1 exit status
> 
> Adding render at the end of Xdmx_LDADD gives just the needed "present, randr, render".
> (libtool probably only leaves the last librender.a).

FWIW, another possibility should be changing the XDMX_LIBS definition in
configure.ac.

I wonder which solution is best.