Created attachment 130290 [details] build recipe Error during make install fase when building a multilib 32-bit mesa to be used on 64-bit linux . In function `get_back_bo': platform_drm.c:(.text+0x1dd): undefined reference to `gbm_bo_create_with_modifiers'
Created attachment 130291 [details] log of build() phase
Created attachment 130292 [details] make install phase
libtool: install: (cd /home/panoramix/Documents/WIP/pkgbuilds/lib32-mesa-git/src/mesa/src/egl; /bin/sh "/home/panoramix/Documents/WIP/pkgbuilds/lib32-mesa-git/src/mesa/libtool" --silent --tag CC --mode=relink gcc -m32 -I../../include -I../../src/egl/main -I../../src/gbm/main -I../../src -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -DUSE_SSE41 -DUSE_GCC_ATOMIC_BUILTINS -DNDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_DLOPEN -DHAVE_DL_ITERATE_PHDR -DHAVE_POSIX_MEMALIGN -DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_DRI3 -DENABLE_SHADER_CACHE -DHAVE_MINCORE -DHAVE_ST_VDPAU -DHAVE_LLVM=0x0500 -DMESA_LLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include/libdrm -D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11 -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_DRM_PLATFORM -I../../src/loader -I../../src/egl/drivers/dri2 -I../../src/gbm/backends/dri -I../../src/egl/wayland/wayland-egl -I../../src/egl/wayland/wayland-drm -I../../src/egl/wayland/wayland-drm -DDEFAULT_DRIVER_DIR=\"/usr/lib32/xorg/modules/dri\" -D_EGL_BUILT_IN_DRIVER_DRI2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-math-errno -fno-trapping-math -no-undefined -version-number 1:0 -Wl,-Bsymbolic -Wl,--gc-sections -Wl,--no-undefined -Wl,-O1,--sort-common,--as-needed,-z,relro -o libEGL.la -rpath /usr/lib32 main/eglapi.lo main/eglarray.lo main/eglconfig.lo main/eglcontext.lo main/eglcurrent.lo main/egldisplay.lo main/egldriver.lo main/eglfallbacks.lo main/eglglobals.lo main/eglimage.lo main/egllog.lo main/eglsurface.lo main/eglsync.lo drivers/dri2/egl_dri2.lo drivers/dri2/platform_x11.lo drivers/dri2/platform_wayland.lo drivers/dri2/platform_drm.lo drivers/dri2/platform_x11_dri3.lo -ldl -lpthread -L/usr/lib32 -lX11-xcb -lX11 -lxcb -lxcb-dri2 -lxcb-xfixes ../../src/loader/libloader_dri3_helper.la -L/usr/lib32 -lwayland-client -lwayland-server -L/usr/lib32 -ldrm ../../src/egl/wayland/wayland-drm/libwayland-drm.la ../../src/gbm/libgbm.la ../../src/loader/libloader.la -ldl -L/usr/lib32 -ldrm -inst-prefix-dir /home/panoramix/Documents/WIP/pkgbuilds/lib32-mesa-git/pkg/lib32-mesa-git) drivers/dri2/.libs/platform_drm.o: In function `get_back_bo': platform_drm.c:(.text+0x1dd): undefined reference to `gbm_bo_create_with_modifiers'
Came here to file the exact same bug.
I'm afraid that it's an issue in libtool, where it picks the system library during make install. Some workarounds include: - [temporary] move the system libgbm - build in clean environment (chroot?) - use slibtool.
My workaround was to revert https://cgit.freedesktop.org/mesa/mesa/commit/?id=191ff914a2c77d7d982048ef21422a209e1e7e06, then make install works. Subsequent builds of git master will then link correctly to the installed library.
(In reply to Christoph Haag from comment #6) > My workaround was to revert > https://cgit.freedesktop.org/mesa/mesa/commit/ > ?id=191ff914a2c77d7d982048ef21422a209e1e7e06, then make install works. > > Subsequent builds of git master will then link correctly to the installed > library. Thanks for pointing this workaround - seems like my "split patches" suggestion is more useful than expected ;-)
There's same failure also with normal builds at install phase if system libdrm is too old, even if one has new enough libdrm in /usr/local/lib and PKG_CONFIG picks it up in Mesa configure phase. I.e. bug isn't specific to multilib builds. This should be fixed by following commit: https://cgit.freedesktop.org/mesa/mesa/commit/?id=90633079eccdc7b883b712695c057553d484405f
I am still experiencing this issue with the current mesa git master in both my multilib 64 bit system and my clean 32-bit chroot, both with Slackware installed. I also have the latest libdrm git master installed. A friend who runs gentoo also experienced this issue. drivers/dri2/.libs/platform_drm.o: In function `get_back_bo': platform_drm.c:(.text+0x1d4): undefined reference to `gbm_bo_create_with_modifiers' collect2: error: ld returned 1 exit status libtool: error: error: relink 'libEGL.la' with the above command before installing it make[4]: *** [Makefile:910: install-libLTLIBRARIES] Error 1 make[4]: Leaving directory '/tmp/SBo/mesa/src/egl' make[3]: *** [Makefile:1385: install-am] Error 2 make[3]: Leaving directory '/tmp/SBo/mesa/src/egl' make[2]: *** [Makefile:852: install-recursive] Error 1 make[2]: Leaving directory '/tmp/SBo/mesa/src' make[1]: *** [Makefile:1009: install] Error 2 make[1]: Leaving directory '/tmp/SBo/mesa/src' make: *** [Makefile:643: install-recursive] Error 1
It turns out in my case this is an issue with using pkgconf (Which worked previously) instead of pkg-config. It builds fine with pkg-config. I'd prefer to keep this open until the pkgconf devs have a chance to take a look, but it can be closed again if someone finds that preferable. As for my friend, apparently he was trying to use the perl pkg-config from openbsd in gentoo (Don't ask...).
It turns out this was all my fault and it was a bug in my pkgconf.SlackBuild. I was lacking /usr/lib64 as a system libdir... Sorry for the noise.
ovariegata@yahoo.com If you're running into issue as described - `make' succeeds, while `make install' fails then it's the libtool bug/feature mentioned. Any of the four workarounds proposed should you up and running. Alternatively it's a different problem and as such it should be a separate bug report.
Yes, it was 'make install' that failed and seems to have been a related issue as above. I was instructed to reopen this issue report in #dri-devel after asking about the build failure, but shortly after with the help of the pkgconf devs I found out it was a bug in my own pkgconf build script that managed to not cause any problems for 5 months... I resolved it for myself here. https://notabug.org/orbea/Slackbuilds/commit/56db318ceb1c093961cea2ba2bdd7dba17177367 As for why it why I ran into this now I'm not really sure, but I guess its not important anymore. :)
Ouch that is some nasty bug in Slackware packaging. Note you want /usr/local/ and /usr/ in the same order across --with-pkg-config-dir and --with-system-libdir.
I also ended up here, because I am experiencing the very same bug with the current master in git. I also bisected the issue and found out that reverting 191ff914a2c77d7d982048ef21422a209e1e7e06 does indeed fix the issue. I have a multilib system with i386, amd64 and x32. I also have libdrm 2.4.79. For more details, see: https://bugs.gentoo.org/show_bug.cgi?id=616398 Is this commit going to be reverted before the release of 17.1?
Still broken here with ArchLinux in a multilib chroot: Making install in egl make[3]: Entering directory '/build/lib32-mesa/src/mesa-17.1.0/src/egl' make install-am make[4]: Entering directory '/build/lib32-mesa/src/mesa-17.1.0/src/egl' make[5]: Entering directory '/build/lib32-mesa/src/mesa-17.1.0/src/egl' /usr/bin/mkdir -p '/build/lib32-mesa/src/fakeinstall/usr/include/EGL' /usr/bin/mkdir -p '/build/lib32-mesa/src/fakeinstall/usr/include/KHR' /usr/bin/mkdir -p '/build/lib32-mesa/src/fakeinstall/usr/lib32/pkgconfig' /usr/bin/mkdir -p '/build/lib32-mesa/src/fakeinstall/usr/lib32' /bin/sh ../../libtool --mode=install /usr/bin/install -c libEGL_mesa.la '/build/lib32-mesa/src/fakeinstall/usr/lib32' /usr/bin/mkdir -p '/build/lib32-mesa/src/fakeinstall/usr/share/glvnd/egl_vendor.d' /usr/bin/install -c -m 644 ../../include/KHR/khrplatform.h '/build/lib32-mesa/src/fakeinstall/usr/include/KHR' /usr/bin/install -c -m 644 ../../include/EGL/eglext.h ../../include/EGL/egl.h ../../include/EGL/eglextchromium.h ../../include/EGL/eglmesaext.h ../../include/EGL/eglplatform.h '/build/lib32-mesa/src/fakeinstall/usr/include/EGL' /usr/bin/install -c -m 644 main/50_mesa.json '/build/lib32-mesa/src/fakeinstall/usr/share/glvnd/egl_vendor.d' /usr/bin/install -c -m 644 main/egl.pc '/build/lib32-mesa/src/fakeinstall/usr/lib32/pkgconfig' libtool: warning: relinking 'libEGL_mesa.la' libtool: install: (cd /build/lib32-mesa/src/mesa-17.1.0/src/egl; /bin/sh "/build/lib32-mesa/src/mesa-17.1.0/libtool" --silent --tag CC --mode=relink gcc -m32 -I../../include -I../../src/egl/main -I../../src/gbm/main -I../../src -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -D_GNU_SOURCE -DUSE_SSE41 -DUSE_GCC_ATOMIC_BUILTINS -DNDEBUG -DTEXTURE_FLOAT_ENABLED -DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_SSE_ASM -DHAVE_XLOCALE_H -DHAVE_SYS_SYSCTL_H -DHAVE_STRTOF -DHAVE_MKOSTEMP -DHAVE_DLOPEN -DHAVE_DL_ITERATE_PHDR -DHAVE_POSIX_MEMALIGN -DHAVE_GALLIUM_EXTRA_HUD=1 -DHAVE_LIBSENSORS=1 -DUSE_LIBGLVND=1 -DHAVE_LIBDRM -DGLX_USE_DRM -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DHAVE_DRI3 -DENABLE_SHADER_CACHE -DHAVE_MINCORE -DHAVE_ST_VDPAU -DHAVE_LLVM=0x0400 -DMESA_LLVM_VERSION_PATCH=0 -fvisibility=hidden -I/usr/include/libdrm -D_EGL_NATIVE_PLATFORM=_EGL_PLATFORM_X11 -DHAVE_X11_PLATFORM -DHAVE_WAYLAND_PLATFORM -DHAVE_DRM_PLATFORM -I../../src/loader -I../../src/egl/drivers/dri2 -I../../src/gbm/backends/dri -I../../src/egl/wayland/wayland-egl -I../../src/egl/wayland/wayland-drm -I../../src/egl/wayland/wayland-drm -DDEFAULT_DRIVER_DIR=\"/usr/lib32/xorg/modules/dri\" -D_EGL_BUILT_IN_DRIVER_DRI2 -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno-math-errno -fno-trapping-math -no-undefined -version-number 0 -Wl,-Bsymbolic -Wl,--gc-sections -Wl,--no-undefined -Wl,-O1,--sort-common,--as-needed,-z,relro -o libEGL_mesa.la -rpath /usr/lib32 main/eglglvnd.lo main/egldispatchstubs.lo g_egldispatchstubs.lo libEGL_common.la -inst-prefix-dir /build/lib32-mesa/src/fakeinstall) ./.libs/libEGL_common.a(platform_drm.o): In function `get_back_bo': platform_drm.c:(.text+0x1dd): undefined reference to `gbm_bo_create_with_modifiers' collect2: error: ld returned 1 exit status libtool: error: error: relink 'libEGL_mesa.la' with the above command before installing it make[5]: *** [Makefile:969: install-libLTLIBRARIES] Error 1 make[5]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src/egl' make[4]: *** [Makefile:1490: install-am] Error 2 make[4]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src/egl' make[3]: *** [Makefile:1484: install] Error 2 make[3]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src/egl' make[2]: *** [Makefile:851: install-recursive] Error 1 make[2]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src' make[1]: *** [Makefile:1008: install] Error 2 make[1]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src' make: *** [Makefile:642: install-recursive] Error 1
EoD, Laurent see comment 5 and comment 6. AFAICT it's not and issue on our end and there's sufficient workarounds to cater everyone's taste.
@Emil , with slibtool :) -> CCLD tools/aubinator CCLD tools/aubinator_error_decode CCLD isl/libisl.la ar: `u' modifier ignored since `D' is the default (see `U') CCLD blorp/libblorp.la ar: `u' modifier ignored since `D' is the default (see `U') CXXLD vulkan/libvulkan_intel.la ar: `u' modifier ignored since `D' is the default (see `U') vulkan/.libs/libvulkan_common.a(vulkan_libvulkan_common_la-anv_device.o): In function `anv_EnumeratePhysicalDevices': anv_device.c:(.text+0x4c0): undefined reference to `drmGetDevices2' vulkan/.libs/libvulkan_common.a(vulkan_libvulkan_common_la-anv_wsi_x11.o): In function `anv_GetPhysicalDeviceXlibPresentationSupportKHR': anv_wsi_x11.c:(.text+0x69): undefined reference to `XGetXCBConnection' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `screen_get_visualtype': wsi_common_x11.c:(.text+0xdf): undefined reference to `xcb_screen_allowed_depths_iterator' wsi_common_x11.c:(.text+0xfb): undefined reference to `xcb_depth_visuals_iterator' wsi_common_x11.c:(.text+0x125): undefined reference to `xcb_visualtype_next' wsi_common_x11.c:(.text+0x139): undefined reference to `xcb_depth_next' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_present_to_x11': wsi_common_x11.c:(.text+0x1bf): undefined reference to `xshmfence_reset' wsi_common_x11.c:(.text+0x22f): undefined reference to `xcb_present_pixmap' wsi_common_x11.c:(.text+0x23e): undefined reference to `xcb_discard_reply' wsi_common_x11.c:(.text+0x24e): undefined reference to `xcb_flush' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_image_finish': wsi_common_x11.c:(.text+0x2b7): undefined reference to `xcb_sync_destroy_fence' wsi_common_x11.c:(.text+0x2c6): undefined reference to `xcb_discard_reply' wsi_common_x11.c:(.text+0x2d1): undefined reference to `xshmfence_unmap_shm' wsi_common_x11.c:(.text+0x2e4): undefined reference to `xcb_free_pixmap' wsi_common_x11.c:(.text+0x2f3): undefined reference to `xcb_discard_reply' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `get_visualtype_for_window': wsi_common_x11.c:(.text+0x4c0): undefined reference to `xcb_query_tree' wsi_common_x11.c:(.text+0x4d3): undefined reference to `xcb_get_window_attributes' wsi_common_x11.c:(.text+0x4e2): undefined reference to `xcb_query_tree_reply' wsi_common_x11.c:(.text+0x4f0): undefined reference to `xcb_get_window_attributes_reply' wsi_common_x11.c:(.text+0x52a): undefined reference to `xcb_get_setup' wsi_common_x11.c:(.text+0x533): undefined reference to `xcb_setup_roots_iterator' wsi_common_x11.c:(.text+0x54d): undefined reference to `xcb_screen_next' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `wsi_x11_get_connection.isra.3': wsi_common_x11.c:(.text+0x685): undefined reference to `xcb_query_extension' wsi_common_x11.c:(.text+0x6a3): undefined reference to `xcb_query_extension' wsi_common_x11.c:(.text+0x6c1): undefined reference to `xcb_query_extension' wsi_common_x11.c:(.text+0x6df): undefined reference to `xcb_query_extension' wsi_common_x11.c:(.text+0x6f7): undefined reference to `xcb_query_extension_reply' wsi_common_x11.c:(.text+0x70a): undefined reference to `xcb_query_extension_reply' wsi_common_x11.c:(.text+0x71d): undefined reference to `xcb_query_extension_reply' wsi_common_x11.c:(.text+0x730): undefined reference to `xcb_query_extension_reply' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `wsi_x11_check_dri3_compatible': wsi_common_x11.c:(.text+0x894): undefined reference to `xcb_get_setup' wsi_common_x11.c:(.text+0x8a1): undefined reference to `xcb_setup_roots_iterator' wsi_common_x11.c:(.text+0x8b7): undefined reference to `xcb_dri3_open' wsi_common_x11.c:(.text+0x8c6): undefined reference to `xcb_dri3_open_reply' wsi_common_x11.c:(.text+0x8e7): undefined reference to `xcb_dri3_open_reply_fds' wsi_common_x11.c:(.text+0x920): undefined reference to `drmGetRenderDeviceNameFromFd' wsi_common_x11.c:(.text+0x92a): undefined reference to `drmGetRenderDeviceNameFromFd' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_surface_get_support': wsi_common_x11.c:(.text+0xa9f): undefined reference to `XGetXCBConnection' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_surface_get_capabilities': wsi_common_x11.c:(.text+0xb01): undefined reference to `xcb_get_geometry' wsi_common_x11.c:(.text+0xb35): undefined reference to `xcb_get_geometry_reply' wsi_common_x11.c:(.text+0xc17): undefined reference to `XGetXCBConnection' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_swapchain_destroy': wsi_common_x11.c:(.text+0xd52): undefined reference to `xcb_unregister_for_special_event' wsi_common_x11.c:(.text+0xd6f): undefined reference to `xcb_present_select_input_checked' wsi_common_x11.c:(.text+0xd7c): undefined reference to `xcb_discard_reply' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_manage_fifo_queues': wsi_common_x11.c:(.text+0x11cc): undefined reference to `xcb_wait_for_special_event' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_acquire_next_image': wsi_common_x11.c:(.text+0x1277): undefined reference to `xcb_flush' wsi_common_x11.c:(.text+0x12a0): undefined reference to `xcb_poll_for_special_event' wsi_common_x11.c:(.text+0x12f2): undefined reference to `xshmfence_await' wsi_common_x11.c:(.text+0x144d): undefined reference to `xcb_wait_for_special_event' wsi_common_x11.c:(.text+0x14b0): undefined reference to `xshmfence_await' wsi_common_x11.c:(.text+0x1526): undefined reference to `xcb_get_file_descriptor' wsi_common_x11.c:(.text+0x15e3): undefined reference to `xcb_flush' wsi_common_x11.c:(.text+0x15f3): undefined reference to `xcb_poll_for_special_event' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `x11_surface_create_swapchain': wsi_common_x11.c:(.text+0x16e9): undefined reference to `xcb_get_geometry' wsi_common_x11.c:(.text+0x16f8): undefined reference to `xcb_get_geometry_reply' wsi_common_x11.c:(.text+0x17d5): undefined reference to `xcb_generate_id' wsi_common_x11.c:(.text+0x17f9): undefined reference to `xcb_present_select_input' wsi_common_x11.c:(.text+0x180a): undefined reference to `xcb_present_id' wsi_common_x11.c:(.text+0x1812): undefined reference to `xcb_register_for_special_xge' wsi_common_x11.c:(.text+0x1821): undefined reference to `xcb_generate_id' wsi_common_x11.c:(.text+0x1851): undefined reference to `xcb_create_gc' wsi_common_x11.c:(.text+0x185e): undefined reference to `xcb_discard_reply' wsi_common_x11.c:(.text+0x18f2): undefined reference to `xcb_generate_id' wsi_common_x11.c:(.text+0x192a): undefined reference to `xcb_dri3_pixmap_from_buffer_checked' wsi_common_x11.c:(.text+0x1939): undefined reference to `xcb_discard_reply' wsi_common_x11.c:(.text+0x193e): undefined reference to `xshmfence_alloc_shm' wsi_common_x11.c:(.text+0x1956): undefined reference to `xshmfence_map_shm' wsi_common_x11.c:(.text+0x1973): undefined reference to `xcb_generate_id' wsi_common_x11.c:(.text+0x198f): undefined reference to `xcb_dri3_fence_from_fd' wsi_common_x11.c:(.text+0x199b): undefined reference to `xshmfence_trigger' wsi_common_x11.c:(.text+0x1a45): undefined reference to `xcb_unregister_for_special_event' wsi_common_x11.c:(.text+0x1a92): undefined reference to `xcb_free_pixmap' wsi_common_x11.c:(.text+0x1aa1): undefined reference to `xcb_discard_reply' wsi_common_x11.c:(.text+0x1b73): undefined reference to `XGetXCBConnection' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_x11.o): In function `wsi_get_physical_device_xcb_presentation_support': wsi_common_x11.c:(.text+0x1f28): undefined reference to `xcb_get_setup' wsi_common_x11.c:(.text+0x1f35): undefined reference to `xcb_setup_roots_iterator' wsi_common_x11.c:(.text+0x1f55): undefined reference to `xcb_screen_next' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `frame_handle_done': wsi_common_wayland.c:(.text+0x1df): undefined reference to `wl_proxy_destroy' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `wsi_wl_swapchain_queue_present': wsi_common_wayland.c:(.text+0x22f): undefined reference to `wl_proxy_marshal' wsi_common_wayland.c:(.text+0x26b): undefined reference to `wl_proxy_marshal' wsi_common_wayland.c:(.text+0x294): undefined reference to `wl_proxy_marshal' wsi_common_wayland.c:(.text+0x29f): undefined reference to `wl_display_flush' wsi_common_wayland.c:(.text+0x2c9): undefined reference to `wl_display_dispatch_queue' wsi_common_wayland.c:(.text+0x311): undefined reference to `wl_proxy_marshal' wsi_common_wayland.c:(.text+0x32a): undefined reference to `wl_callback_interface' wsi_common_wayland.c:(.text+0x334): undefined reference to `wl_proxy_marshal_constructor' wsi_common_wayland.c:(.text+0x341): undefined reference to `wl_proxy_set_queue' wsi_common_wayland.c:(.text+0x352): undefined reference to `wl_proxy_add_listener' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `registry_handle_global': wsi_common_wayland.c:(.text+0x5a2): undefined reference to `wl_proxy_marshal_constructor_versioned' wsi_common_wayland.c:(.text+0x5c4): undefined reference to `wl_proxy_add_listener' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `wsi_wl_display_destroy.isra.6': wsi_common_wayland.c:(.text+0x5fc): undefined reference to `wl_proxy_destroy' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `wsi_wl_get_display.isra.7': wsi_common_wayland.c:(.text+0x6ea): undefined reference to `wl_registry_interface' wsi_common_wayland.c:(.text+0x6f2): undefined reference to `wl_proxy_marshal_constructor' wsi_common_wayland.c:(.text+0x718): undefined reference to `wl_proxy_add_listener' wsi_common_wayland.c:(.text+0x720): undefined reference to `wl_display_roundtrip' wsi_common_wayland.c:(.text+0x737): undefined reference to `wl_display_roundtrip' wsi_common_wayland.c:(.text+0x74d): undefined reference to `wl_proxy_destroy' wsi_common_wayland.c:(.text+0x78f): undefined reference to `wl_proxy_destroy' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `wsi_wl_surface_create_swapchain': wsi_common_wayland.c:(.text+0x998): undefined reference to `wl_proxy_get_version' wsi_common_wayland.c:(.text+0xa5b): undefined reference to `wl_display_create_queue' wsi_common_wayland.c:(.text+0xaa5): undefined reference to `wl_buffer_interface' wsi_common_wayland.c:(.text+0xb7c): undefined reference to `wl_proxy_marshal_constructor' wsi_common_wayland.c:(.text+0xb90): undefined reference to `wl_display_roundtrip' wsi_common_wayland.c:(.text+0xbb8): undefined reference to `wl_proxy_set_queue' wsi_common_wayland.c:(.text+0xbcf): undefined reference to `wl_proxy_add_listener' ../../src/vulkan/.libs/libvulkan_wsi.a(wsi_common_wayland.o): In function `wsi_wl_swapchain_acquire_next_image': wsi_common_wayland.c:(.text+0xc6d): undefined reference to `wl_display_dispatch_queue_pending' wsi_common_wayland.c:(.text+0xcb4): undefined reference to `wl_display_roundtrip_queue' ../../src/vulkan/.libs/libvulkan_wsi.a(wayland-drm-protocol.o):(.data.rel+0x4): undefined reference to `wl_buffer_interface' ../../src/vulkan/.libs/libvulkan_wsi.a(wayland-drm-protocol.o):(.data.rel+0x1c): undefined reference to `wl_buffer_interface' ../../src/vulkan/.libs/libvulkan_wsi.a(wayland-drm-protocol.o):(.data.rel+0x48): undefined reference to `wl_buffer_interface' collect2: error: ld returned 1 exit status slibtool: exec error upon slbt_exec_link_create_library(), line 1082: (see child process error messages). slibtool: < returned to > slbt_exec_link(), line 1421. make[4]: *** [Makefile:2425: vulkan/libvulkan_intel.la] Error 2 make[4]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src/intel' make[3]: *** [Makefile:1972: all] Error 2 make[3]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src/intel' make[2]: *** [Makefile:851: all-recursive] Error 1 make[2]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src' make[1]: *** [Makefile:642: all] Error 2 make[1]: Leaving directory '/build/lib32-mesa/src/mesa-17.1.0/src' make: *** [Makefile:642: all-recursive] Error 1
Arch Linux still broken. CXXLD vulkan/libvulkan_intel.la vulkan/.libs/libvulkan_common.a(vulkan_libvulkan_common_la-anv_device.o): In function `anv_EnumeratePhysicalDevices': anv_device.c:(.text+0x45a): undefined reference to `drmGetDevices2' collect2: error: ld returned 1 exit status make[4]: *** [Makefile:2425: vulkan/libvulkan_intel.la] Error 1 make[4]: Leaving directory '/home/kusayu/.cache/pacaur/mesa-noglvnd/src/mesa-17.1.0/src/intel' make[3]: *** [Makefile:1972: all] Error 2 make[3]: Leaving directory '/home/kusayu/.cache/pacaur/mesa-noglvnd/src/mesa-17.1.0/src/intel' make[2]: *** [Makefile:851: all-recursive] Error 1 make[2]: Leaving directory '/home/kusayu/.cache/pacaur/mesa-noglvnd/src/mesa-17.1.0/src' make[1]: *** [Makefile:642: all] Error 2 make[1]: Leaving directory '/home/kusayu/.cache/pacaur/mesa-noglvnd/src/mesa-17.1.0/src' make: *** [Makefile:642: all-recursive] Error 1
kusayu: You're having a different issue, with different symptoms. Can you please open a new ticket? When doing so, please indicate the libdrm version used. Your error is weird though, as this symbol was introduced in libdrm 2.4.75, which has always been required on the 17.1 branch, so if your libdrm is too old it should fail way before that, during the configure stage. I just tested that pkgbuild and it works for me btw, with libdrm 2.4.81.
I have run into the same problem when trying to compile mesa master on KDE Neon (Ubuntu 16.04) in the gallium dri targets. What I noticed: in the build directory at mesa/src/gallium/targets/dri/gallium_dri.la the relink command can be fixed manually by simply by putting one -L/opt/drm/lib before -lexpat. Note, that I don't linked against SELinux libs. If you do this the -L/opt/drm/lib must probably be put before the links of these libs as well. I also wrote a patch to work around the problem for libdrm and the dri targets similar to the one linked above: https://lists.freedesktop.org/archives/mesa-dev/2018-March/187630.html
Roman, that would only work if you have a newer version of GBM installed into /opt/drm/lib. If you're doing completely clean builds, there is no full solution: the only known workarounds are the ones Emil has posted earlier.
Sorry, that's what I forgot to mention: I compile libdrm from current master with prefix /opt/drm. In this case if -L/opt/drm/lib in the relink_command in mesa/src/gallium/targets/dri/gallium_dri.la is before -lexpat, the install works. If it is behind -lexpat libtool doesn't link my compiled libdrm in /opt/drm but apparently tries to link the system ones in /usr/lib. The problematic functionality in my case is btw not a GBM function, but some new functions in libdrm_amdgpu.so used by the AMD drivers. But the problem in principle is the same.
Precisely the issue is fundamentally the same and there's three solutions. Here's another $export LD_LIBRARY_PATH=/path/to/custom/build/DSOs && ./configure... Let's not necro-bump bugs every time someone starts building stuff and doesn't know how to manage multiple copies on their system :-\ Please?
I "necro-bumped" this bug because I wanted to share my findings in regards to the manual manipulation of the relink_command, what I haven't seen here before. Maybe that's trivial to you, but implying that I'm just someone who "starts building stuff and doesn't know how to manage multiple copies on their system" is not very nice of you. Also I thought it's a bug in Libtool, so why are missing abilities in regards to building stuff to blame now? Fact is if you today try to build mesa AMD DRI libs on Ubuntu 16.04 together with libdrm as described in the documentation in some non-system paths your install will fail. So why this bug is labeled NOTABUG and not at least NOTOURBUG is another question. Anyways I will not disrupt the peace of this bug report anymore. Sorry for the inconvenience.
*** Bug 105441 has been marked as a duplicate of this bug. ***
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.