Source: mesa Version: 17.3.3-1 Severity: important Tags: patch Hello,
mesa currently FTBFS on hurd-i386 for a few upstream and downstream reasons. The attached patches pthread_setname_np and GetDriverConfig are cherry-picks from upstream. The attached patch "patch" is for the Debian changes: the libva dependency is avoided on hurd-any, but --with libva was still pased, thus failing. Also, surfaceless requires libdrm, which is not available. Samuel -- System Information: Debian Release: buster/sid APT prefers unstable-debug APT policy: (500, 'unstable-debug'), (500, 'unreleased'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'stable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental') Architecture: hurd-i386 (i686-AT386) Kernel: GNU-Mach 1.8+git20171101-486-dbg/Hurd-0.9 Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: sysvinit (via /sbin/init)
commit 9131e6d3c2dcc30260e23f2232b44c8cffc6f315 Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> Date: Sat Jan 13 12:33:15 2018 +0100 u_thread: Use pthread_setname_np on linux only. pthread_setname_np was added in glibc 2.12 for the Linux port only, other ports do not necessarily have it. Signed-off-by: Jose Fonseca <jfons...@vmware.com> diff --git a/src/util/u_thread.h b/src/util/u_thread.h index 26cc0b0934..8c6e0bdc59 100644 --- a/src/util/u_thread.h +++ b/src/util/u_thread.h @@ -62,7 +62,8 @@ static inline void u_thread_setname( const char *name ) { #if defined(HAVE_PTHREAD) # if defined(__GNU_LIBRARY__) && defined(__GLIBC__) && defined(__GLIBC_MINOR__) && \ - (__GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 12)) + (__GLIBC__ >= 3 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 12)) && \ + defined(__linux__) pthread_setname_np(pthread_self(), name); # endif #endif
commit 47ac11bcf8bd9e4525e0fb4308d0bca87a8900c6 Author: Samuel Thibault <samuel.thiba...@ens-lyon.org> Date: Mon Jan 15 15:38:25 2018 +0100 glx: fix non-dri build glXGetDriverConfig parameters do not provide a context to dynamically check for the presence of the function, so the dispatcher directly calls glXGetDriverConfig, but in non-dri builds dri_glx.c didn't provide glXGetDriverConfig. This change make it just return NULL in that case. Fixes: 84f764a7591 "glxglvnddispatch: Add missing dispatch for GetDriverConfig Reviewed-by: Nicolai Hähnle <nicolai.haeh...@amd.com> Reviewed-by: Hans de Goede <hdego...@redhat.com> Reviewed-by: Emil Velikov <emil.veli...@collabora.com> diff --git a/src/glx/g_glxglvnddispatchfuncs.c b/src/glx/g_glxglvnddispatchfuncs.c index 56d894eda7..5b65afc860 100644 --- a/src/glx/g_glxglvnddispatchfuncs.c +++ b/src/glx/g_glxglvnddispatchfuncs.c @@ -338,11 +338,15 @@ static Display *dispatch_GetCurrentDisplayEXT(void) static const char *dispatch_GetDriverConfig(const char *driverName) { +#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL) /* * The options are constant for a given driverName, so we do not need * a context (and apps expect to be able to call this without one). */ return glXGetDriverConfig(driverName); +#else + return NULL; +#endif }
diff -ur mesa-17.3.1.orig/debian/rules mesa-17.3.1/debian/rules --- mesa-17.3.1.orig/debian/rules 2018-01-13 09:10:32.000000000 +0000 +++ mesa-17.3.1/debian/rules 2018-01-13 09:52:21.000000000 +0000 @@ -26,16 +26,20 @@ DRI_DRIVERS = GALLIUM_DRIVERS = VULKAN_DRIVERS = -EGL_PLATFORMS = x11,surfaceless confflags_DRI3 = --disable-dri3 # hurd doesn't do direct rendering ifeq ($(DEB_HOST_ARCH_OS), hurd) + EGL_PLATFORMS = x11 + confflags_DIRECT_RENDERING = --disable-driglx-direct confflags_GBM = --disable-gbm DRI_DRIVERS = swrast + with_libva = else + EGL_PLATFORMS = x11,surfaceless + ifeq ($(DEB_HOST_ARCH_OS), linux) confflags_DRI3 = --enable-dri3 # Gallium drivers which require kernel support, not yet ported to non-Linux @@ -108,6 +112,7 @@ confflags_GALLIUM += --enable-va confflags_GALLIUM += --enable-gallium-extra-hud confflags_GALLIUM += --enable-lmsensors + with_libva = ,libva endif # Disable assembly usage on x32 otherwise Mesa defaults to x86_64 assembly @@ -227,7 +232,7 @@ dh_makeshlibs -a -- -c4 %: - dh $@ --with quilt,autoreconf,libva \ + dh $@ --with quilt,autoreconf$(with_libva) \ --parallel \ --builddirectory=build/