On 30/11/2017 16:46, Emil Velikov wrote:
On 30 November 2017 at 15:13, Jon Turney wrote:
On 29/11/2017 17:34, Dylan Baker wrote:
[...]

Maybe it's me that's missing something...

There are references to functions provided by these libraries (xcb_glx, xcb,
x11_xcb) in common code.

Having a reference to those (as printed by the linker as it errors) should help.

There's a lot of macros guarding the different parts of GLX - the
obvious ones GLX_ seem there.

Another thing that comes to mind is the libloader_dri3_helper.
It should be a noop/empty for non-Linux/BSD but something is going wrong?

Yes, as I wrote in the bit of my email you snipped, these dependencies come via libloader_dri3_helper.

When configured -Ddri3=false (which is always the case on non-linux targets), libGL is underlinked, so this patch is correct.

Even with this patch applied, mesa fails to build for linux when configured with -Ddri3=false, due to various undefined references to libXext:

[3/3] Linking target src/glx/libGL.so.1.2.0.
FAILED: src/glx/libGL.so.1.2.0
cc  -o src/glx/libGL.so.1.2.0 'src/glx/GL@sha/src_glx_dummy.c.o' 
-Wl,--no-undefined -Wl,--as-needed -shared -fPIC -Wl,--start-group 
-Wl,-soname,libGL.so.1 -Wl,--whole-archive src/glx/libglx.a 
-Wl,--no-whole-archive src/mapi/glapi/libglapi_static.a 
src/mapi/shared-glapi/libglapi.so.0.0.0 src/loader/libloader.a 
src/util/libmesa_util.a src/util/libxmlconfig.a -pthread -Wl,-Bsymbolic 
-Wl,--gc-sections -ldrm -ldl -lm -Wl,--end-group -lX11 -lxcb-glx -lxcb 
-lX11-xcb -lX11 -lxcb -lxcb-dri2 -ldrm -lX11 -ldrm -lz -lexpat -lm 
'-Wl,-rpath,$ORIGIN/:$ORIGIN/../mapi/shared-glapi' 
-Wl,-rpath-link,/home/jon/src/mesa/build/src/glx:/home/jon/src/mesa/build/src/mapi/shared-glapi
src/glx/libglx.a(dri2.c.o): In function `DRI2CloseDisplay':
/home/jon/src/mesa/build/../src/glx/dri2.c:58: undefined reference to 
`XextRemoveDisplay'
src/glx/libglx.a(dri2.c.o): In function `DRI2FindDisplay':
/home/jon/src/mesa/build/../src/glx/dri2.c:81: undefined reference to 
`XextFindDisplay'
/home/jon/src/mesa/build/../src/glx/dri2.c:81: undefined reference to 
`XextCreateExtension'
/home/jon/src/mesa/build/../src/glx/dri2.c:81: undefined reference to 
`XextAddDisplay'
src/glx/libglx.a(dri2.c.o): In function `DRI2EventToWire':
/home/jon/src/mesa/build/../src/glx/dri2.c:168: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(dri2.c.o): In function `DRI2WireToEvent':
/home/jon/src/mesa/build/../src/glx/dri2.c:93: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(dri2.c.o): In function `DRI2QueryVersion':
/home/jon/src/mesa/build/../src/glx/dri2.c:229: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(dri2.c.o): In function `DRI2Connect':
/home/jon/src/mesa/build/../src/glx/dri2.c:275: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(dri2.c.o): In function `DRI2Authenticate':
/home/jon/src/mesa/build/../src/glx/dri2.c:344: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(dri2.c.o):/home/jon/src/mesa/build/../src/glx/dri2.c:371: more 
undefined references to `XMissingExtension' follow
src/glx/libglx.a(dri2_glx.c.o): In function `dri2_copy_drawable':
/home/jon/src/mesa/build/../src/glx/dri2_glx.c:635: undefined reference to 
`XFixesCreateRegion'
/home/jon/src/mesa/build/../src/glx/dri2_glx.c:637: undefined reference to 
`XFixesDestroyRegion'
src/glx/libglx.a(dri2_glx.c.o): In function `__dri2CopySubBuffer':
/home/jon/src/mesa/build/../src/glx/dri2_glx.c:597: undefined reference to 
`XFixesCreateRegion'
/home/jon/src/mesa/build/../src/glx/dri2_glx.c:608: undefined reference to 
`XFixesDestroyRegion'
src/glx/libglx.a(dri_glx.c.o): In function `__glXReportDamage':
/home/jon/src/mesa/build/../src/glx/dri_glx.c:348: undefined reference to 
`XFixesCreateRegion'
/home/jon/src/mesa/build/../src/glx/dri_glx.c:350: undefined reference to 
`XDamageAdd'
/home/jon/src/mesa/build/../src/glx/dri_glx.c:351: undefined reference to 
`XFixesDestroyRegion'
src/glx/libglx.a(dri_glx.c.o): In function `has_damage_post':
/home/jon/src/mesa/build/../src/glx/dri_glx.c:296: undefined reference to 
`XDamageQueryVersion'
src/glx/libglx.a(XF86dri.c.o): In function `close_display':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:82: undefined reference to 
`XextRemoveDisplay'
src/glx/libglx.a(XF86dri.c.o): In function `find_display':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:77: undefined reference to 
`XextFindDisplay'
/home/jon/src/mesa/build/../src/glx/XF86dri.c:77: undefined reference to 
`XextCreateExtension'
/home/jon/src/mesa/build/../src/glx/XF86dri.c:77: undefined reference to 
`XextAddDisplay'
src/glx/libglx.a(XF86dri.c.o): In function `XF86DRIQueryVersion':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:125: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(XF86dri.c.o): In function `XF86DRIQueryDirectRenderingCapable':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:155: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(XF86dri.c.o): In function `XF86DRIOpenConnection':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:184: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(XF86dri.c.o): In function `XF86DRIAuthConnection':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:235: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(XF86dri.c.o): In function `XF86DRICloseConnection':
/home/jon/src/mesa/build/../src/glx/XF86dri.c:264: undefined reference to 
`XMissingExtension'
src/glx/libglx.a(XF86dri.c.o):/home/jon/src/mesa/build/../src/glx/XF86dri.c:289:
 more undefined references to `XMissingExtension' follow
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to