Message ID | 1359842415.5545.7.camel@mattotaupa (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
The first patch looks fine (and I've applied it, thanks), but I'm not convinced this one is safe. On Sat, Feb 02, 2013 at 11:00:15PM +0100, Paul Menzel wrote: > Date: Sat, 2 Feb 2013 20:33:36 +0100 > > Building the package under Debian Sid/unstable, `dh_shlibdeps` informs > that `libI810XvMC.so.1.0.0` does not need to be linked against > `libX11-xcb.so.1`, `libxcb-dri2.so.0`, `libxcb-util.so.0` or > `libxcb.so.1` [1]. > > $ debuild -b -us -uc > […] > make[1]: Entering directory `/src/xserver-xorg-video-intel' > dh_shlibdeps -- --warnings=6 > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libX11-xcb.so.1 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb-dri2.so.0 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb-util.so.0 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb.so.1 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > make[1]: Leaving directory `/src/xserver-xorg-video-intel' > […] > > Not populating `XVMCLIB` with `x11-xcb`, `xcb-dri2` and `xcb-aux` makes > the warnings go away and the libraries are still built without any > issues. Notice that the warning is only generated for I810XvMC and not for IntelXvMC which does use the DRI2 interface to pass along video objects. Since XVMCLIB is shared between the two we would need to split out the I810XvMC dependencies from the IntelXvMC set first. -Chris
Am Sonntag, den 03.02.2013, 09:32 +0000 schrieb Chris Wilson: > The first patch looks fine (and I've applied it, thanks), Thank you for the quick reaction. > but I'm not convinced this one is safe. > > On Sat, Feb 02, 2013 at 11:00:15PM +0100, Paul Menzel wrote: > > Date: Sat, 2 Feb 2013 20:33:36 +0100 > > > > Building the package under Debian Sid/unstable, `dh_shlibdeps` informs > > that `libI810XvMC.so.1.0.0` does not need to be linked against > > `libX11-xcb.so.1`, `libxcb-dri2.so.0`, `libxcb-util.so.0` or > > `libxcb.so.1` [1]. > > > > $ debuild -b -us -uc > > […] > > make[1]: Entering directory `/src/xserver-xorg-video-intel' > > dh_shlibdeps -- --warnings=6 > > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libX11-xcb.so.1 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb-dri2.so.0 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb-util.so.0 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > > dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb.so.1 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) > > make[1]: Leaving directory `/src/xserver-xorg-video-intel' > > […] > > > > Not populating `XVMCLIB` with `x11-xcb`, `xcb-dri2` and `xcb-aux` makes > > the warnings go away and the libraries are still built without any > > issues. > > Notice that the warning is only generated for I810XvMC and not for > IntelXvMC which does use the DRI2 interface to pass along video objects. I was surprised too that no error was generated. Do you have any idea why compilations succeeds? > Since XVMCLIB is shared between the two we would need to split out the > I810XvMC dependencies from the IntelXvMC set first. Thanks, Paul
On Sun, Feb 3, 2013 at 13:29:04 +0100, Paul Menzel wrote: > I was surprised too that no error was generated. Do you have any idea > why compilations succeeds? > Fails to build here with ../../../src/xvmc/intel_xvmc.c:29:25: fatal error: xcb/xcb_aux.h: No such file or directory Also, shared libraries, as opposed to executable binaries, are allowed to have undefined symbols. Try this: -libIntelXvMC_la_LDFLAGS = -version-number 1:0:0 +libIntelXvMC_la_LDFLAGS = -version-number 1:0:0 -Wl,-z,defs Cheers, Julien
Am Montag, den 04.02.2013, 22:28 +0100 schrieb Julien Cristau: > On Sun, Feb 3, 2013 at 13:29:04 +0100, Paul Menzel wrote: > > > I was surprised too that no error was generated. Do you have any idea > > why compilations succeeds? > > Fails to build here with > ../../../src/xvmc/intel_xvmc.c:29:25: fatal error: xcb/xcb_aux.h: No such file or directory I wonder where our build environments differ. > Also, shared libraries, as opposed to executable binaries, are allowed > to have undefined symbols. Sorry, as I cannot range in this comment, could you please elaborate. > Try this: > > -libIntelXvMC_la_LDFLAGS = -version-number 1:0:0 > +libIntelXvMC_la_LDFLAGS = -version-number 1:0:0 -Wl,-z,defs Thanks. With these flags/switches the build indeed fails. (Reading `man ld` was also helpful to me.) […] CC intel_batchbuffer.lo CCLD libIntelXvMC.la .libs/intel_xvmc.o: In function `XvMCCreateContext': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:282: undefined reference to `XFree' .libs/intel_xvmc.o: In function `dri2_connect': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:131: undefined reference to `XGetXCBConnection' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:137: undefined reference to `xcb_aux_get_screen' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:139: undefined reference to `xcb_dri2_id' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:139: undefined reference to `xcb_get_extension_dat /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:147: undefined reference to `xcb_dri2_query_versio /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:148: undefined reference to `xcb_dri2_connect' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:150: undefined reference to `xcb_dri2_query_versio /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:152: undefined reference to `xcb_dri2_connect_repl /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:160: undefined reference to `xcb_dri2_connect_devi /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:166: undefined reference to `xcb_dri2_connect_devi .libs/intel_xvmc.o: In function `XvMCCreateContext': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:301: undefined reference to `XFree' .libs/intel_xvmc.o: In function `dri2_connect': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:181: undefined reference to `xcb_dri2_authenticate /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:182: undefined reference to `xcb_dri2_authenticate .libs/intel_xvmc.o: In function `XvMCCreateContext': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:323: undefined reference to `XFree' .libs/intel_xvmc.o: In function `XvMCCreateSurface': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:407: undefined reference to `XFree' .libs/intel_xvmc.o: In function `XvMCDestroySurface': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:458: undefined reference to `XFree' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:460: undefined reference to `XFreeGC' .libs/intel_xvmc.o: In function `XvMCPutSurface': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:651: undefined reference to `XFreeGC' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:652: undefined reference to `XCreateGC' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/intel_xvmc.c:648: undefined reference to `XCreateGC' .libs/i915_xvmc.o: In function `i915_xvmc_mc_create_context': /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/i915_xvmc.c:915: undefined reference to `XFree' /src/xserver-xorg-video-intel/build/src/xvmc/../../../src/xvmc/i915_xvmc.c:933: undefined reference to `XFree' collect2: error: ld returned 1 exit status make[5]: *** [libIntelXvMC.la] Fehler 1 […] Thanks, Paul
diff --git a/configure.ac b/configure.ac index e6ab9d0..0652822 100644 --- a/configure.ac +++ b/configure.ac @@ -404,7 +404,7 @@ AC_MSG_RESULT([$DRI2]) if test "$XVMC" = yes; then PKG_CHECK_MODULES(XVMCLIB, - [xvmc dri2proto x11-xcb xcb-dri2 xcb-aux], + [xvmc dri2proto], [XVMC=yes], [XVMC=no]) fi AC_MSG_CHECKING([whether to include XvMC support])
Date: Sat, 2 Feb 2013 20:33:36 +0100 Building the package under Debian Sid/unstable, `dh_shlibdeps` informs that `libI810XvMC.so.1.0.0` does not need to be linked against `libX11-xcb.so.1`, `libxcb-dri2.so.0`, `libxcb-util.so.0` or `libxcb.so.1` [1]. $ debuild -b -us -uc […] make[1]: Entering directory `/src/xserver-xorg-video-intel' dh_shlibdeps -- --warnings=6 dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libX11-xcb.so.1 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb-dri2.so.0 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb-util.so.0 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) dpkg-shlibdeps: Warnung: debian/xserver-xorg-video-intel/usr/lib/libI810XvMC.so.1.0.0 sollte nicht gegen libxcb.so.1 gelinkt werden (es verwendet keines der Bibliotheks-Symbole) make[1]: Leaving directory `/src/xserver-xorg-video-intel' […] Not populating `XVMCLIB` with `x11-xcb`, `xcb-dri2` and `xcb-aux` makes the warnings go away and the libraries are still built without any issues. make[1]: Entering directory `/src/xserver-xorg-video-intel' dh_shlibdeps -- --warnings=6 make[1]: Leaving directory `/src/xserver-xorg-video-intel' dh_installdeb -O--builddirectory=build/ dh_xsf_substvars -O--builddirectory=build/ dh_gencontrol -O--builddirectory=build/ dpkg-gencontrol: Warnung: Feld Depends von Paket xserver-xorg-video-intel-dbg: unbekannte Substitutionsvariable ${shlibs:Depends} dh_md5sums -O--builddirectory=build/ dh_builddeb -O--builddirectory=build/ dpkg-deb: Paket »xserver-xorg-video-intel« wird in »../xserver-xorg-video-intel_2.19.0-6.1_i386.deb« gebaut. dpkg-deb: Paket »xserver-xorg-video-intel-dbg« wird in »../xserver-xorg-video-intel-dbg_2.19.0-6.1_i386.deb« gebaut. dpkg-genchanges -b >../xserver-xorg-video-intel_2.19.0-6.1_i386.changes dpkg-genchanges: rein binärer Upload - es ist kein Quellcode hinzugefügt dpkg-source --after-build xserver-xorg-video-intel dpkg-buildpackage: Binärpaket(e) hochzuladen (keine Quellen enthalten) Now running lintian... W: xserver-xorg-video-intel: hardening-no-relro usr/lib/libI810XvMC.so.1.0.0 W: xserver-xorg-video-intel: hardening-no-fortify-functions usr/lib/libI810XvMC.so.1.0.0 W: xserver-xorg-video-intel: hardening-no-relro usr/lib/libIntelXvMC.so.1.0.0 W: xserver-xorg-video-intel: hardening-no-fortify-functions usr/lib/libIntelXvMC.so.1.0.0 W: xserver-xorg-video-intel: hardening-no-relro usr/lib/xorg/modules/drivers/intel_drv.so W: xserver-xorg-video-intel: hardening-no-fortify-functions usr/lib/xorg/modules/drivers/intel_drv.so N: 1 tag overridden (1 warning) Finished running lintian. [1] https://buildd.debian.org/status/fetch.php?pkg=xserver-xorg-video-intel&arch=i386&ver=2%3A2.19.0-6&stamp=1347825458 Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net> --- I hope there is not a corner case where applying this patch will result in built errors. configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)