libdrm: fix libatomic_ops linking
Add patch 0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch provided by Thomas Petazzoni handling libatomic_ops linking when needed. Fixes [1]: CCLD etnaviv_cmd_stream_test ../../etnaviv/.libs/libdrm_etnaviv.so: undefined reference to `AO_store_full_emulation' ../../etnaviv/.libs/libdrm_etnaviv.so: undefined reference to `AO_fetch_compare_and_swap_emulation' collect2: error: ld returned 1 exit status [1] http://autobuild.buildroot.net/results/92e074c49417261843eef95872ff935a56077c98 Signed-off-by: Peter Seiderer <ps.report@gmx.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
55d79ed93e
commit
fa6c7d1659
@ -0,0 +1,160 @@
|
||||
From 57d544ff2f96a26cac07d5be00ff7b67678ae7b8 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Date: Mon, 18 Dec 2017 13:08:39 +0100
|
||||
Subject: [PATCH] configure/Makefile.am: use pkg-config to discover
|
||||
libatomic_ops
|
||||
|
||||
The configure script currently tests the availability of libatomic_ops
|
||||
by checking the presence of atomic_ops.h. While this is good enough as
|
||||
an availability test, it is not sufficient as on some platforms,
|
||||
libatomic_ops provides an actual shared library against which we
|
||||
should be linked to access libatomic_ops functionality.
|
||||
|
||||
Therefore, we instead use PKG_CHECK_MODULES() to test the availability
|
||||
of libatomic_ops. Besides testing its availability, this also fills in
|
||||
the ATOMIC_OPS_LIBS variable with the list of libraries we need to
|
||||
link with to use libatomic_ops.
|
||||
|
||||
All Mesa drivers that include xf86atomic.h have been updated to link
|
||||
against ATOMIC_OPS_LIBS.
|
||||
|
||||
Of course, if we're not using libatomic_ops, ATOMIC_OPS_LIBS is empty,
|
||||
and we don't link against it.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
Signed-off-by: Peter Seiderer <ps.report@gmx.net>
|
||||
---
|
||||
amdgpu/Makefile.am | 2 +-
|
||||
configure.ac | 2 +-
|
||||
etnaviv/Makefile.am | 3 ++-
|
||||
freedreno/Makefile.am | 3 ++-
|
||||
intel/Makefile.am | 3 ++-
|
||||
nouveau/Makefile.am | 2 +-
|
||||
omap/Makefile.am | 2 +-
|
||||
radeon/Makefile.am | 2 +-
|
||||
tegra/Makefile.am | 2 +-
|
||||
9 files changed, 12 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/amdgpu/Makefile.am b/amdgpu/Makefile.am
|
||||
index a1b0d05c..b2bcceff 100644
|
||||
--- a/amdgpu/Makefile.am
|
||||
+++ b/amdgpu/Makefile.am
|
||||
@@ -36,7 +36,7 @@ AM_CPPFLAGS = -DAMDGPU_ASIC_ID_TABLE=\"${libdrmdatadir}/amdgpu.ids\"
|
||||
libdrm_amdgpu_la_LTLIBRARIES = libdrm_amdgpu.la
|
||||
libdrm_amdgpu_ladir = $(libdir)
|
||||
libdrm_amdgpu_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
||||
-libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
||||
+libdrm_amdgpu_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_amdgpu_la_SOURCES = $(LIBDRM_AMDGPU_FILES)
|
||||
amdgpu_asic_id.lo: $(top_srcdir)/data/amdgpu.ids
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 35378b33..501d0871 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -247,7 +247,7 @@ AC_CACHE_CHECK([for native atomic primitives], drm_cv_atomic_primitives, [
|
||||
]],[[]])], [drm_cv_atomic_primitives="Intel"],[])
|
||||
|
||||
if test "x$drm_cv_atomic_primitives" = "xnone"; then
|
||||
- AC_CHECK_HEADER([atomic_ops.h], drm_cv_atomic_primitives="libatomic-ops")
|
||||
+ PKG_CHECK_MODULES(ATOMIC_OPS, [atomic_ops], drm_cv_atomic_primitives="libatomic-ops")
|
||||
fi
|
||||
|
||||
# atomic functions defined in <atomic.h> & libc on Solaris
|
||||
diff --git a/etnaviv/Makefile.am b/etnaviv/Makefile.am
|
||||
index be96ba86..669cf14f 100644
|
||||
--- a/etnaviv/Makefile.am
|
||||
+++ b/etnaviv/Makefile.am
|
||||
@@ -12,7 +12,8 @@ libdrm_etnaviv_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
||||
libdrm_etnaviv_la_LIBADD = \
|
||||
../libdrm.la \
|
||||
@PTHREADSTUBS_LIBS@ \
|
||||
- @CLOCK_LIB@
|
||||
+ @CLOCK_LIB@ \
|
||||
+ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_etnaviv_la_SOURCES = $(LIBDRM_ETNAVIV_FILES)
|
||||
|
||||
diff --git a/freedreno/Makefile.am b/freedreno/Makefile.am
|
||||
index cbb0d031..238407e3 100644
|
||||
--- a/freedreno/Makefile.am
|
||||
+++ b/freedreno/Makefile.am
|
||||
@@ -14,7 +14,8 @@ libdrm_freedreno_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
||||
libdrm_freedreno_la_LIBADD = \
|
||||
../libdrm.la \
|
||||
@PTHREADSTUBS_LIBS@ \
|
||||
- @CLOCK_LIB@
|
||||
+ @CLOCK_LIB@ \
|
||||
+ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_freedreno_la_SOURCES = $(LIBDRM_FREEDRENO_FILES)
|
||||
if HAVE_FREEDRENO_KGSL
|
||||
diff --git a/intel/Makefile.am b/intel/Makefile.am
|
||||
index c52e8c08..f3635a64 100644
|
||||
--- a/intel/Makefile.am
|
||||
+++ b/intel/Makefile.am
|
||||
@@ -38,7 +38,8 @@ libdrm_intel_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
||||
libdrm_intel_la_LIBADD = ../libdrm.la \
|
||||
@PTHREADSTUBS_LIBS@ \
|
||||
@PCIACCESS_LIBS@ \
|
||||
- @CLOCK_LIB@
|
||||
+ @CLOCK_LIB@ \
|
||||
+ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_intel_la_SOURCES = $(LIBDRM_INTEL_FILES)
|
||||
|
||||
diff --git a/nouveau/Makefile.am b/nouveau/Makefile.am
|
||||
index 344a8445..a4e6a78b 100644
|
||||
--- a/nouveau/Makefile.am
|
||||
+++ b/nouveau/Makefile.am
|
||||
@@ -10,7 +10,7 @@ AM_CFLAGS = \
|
||||
libdrm_nouveau_la_LTLIBRARIES = libdrm_nouveau.la
|
||||
libdrm_nouveau_ladir = $(libdir)
|
||||
libdrm_nouveau_la_LDFLAGS = -version-number 2:0:0 -no-undefined
|
||||
-libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
||||
+libdrm_nouveau_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_nouveau_la_SOURCES = $(LIBDRM_NOUVEAU_FILES)
|
||||
|
||||
diff --git a/omap/Makefile.am b/omap/Makefile.am
|
||||
index 599bb9de..524afee3 100644
|
||||
--- a/omap/Makefile.am
|
||||
+++ b/omap/Makefile.am
|
||||
@@ -7,7 +7,7 @@ AM_CFLAGS = \
|
||||
libdrm_omap_la_LTLIBRARIES = libdrm_omap.la
|
||||
libdrm_omap_ladir = $(libdir)
|
||||
libdrm_omap_la_LDFLAGS = -version-number 1:0:0 -no-undefined
|
||||
-libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
||||
+libdrm_omap_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_omap_la_SOURCES = omap_drm.c
|
||||
|
||||
diff --git a/radeon/Makefile.am b/radeon/Makefile.am
|
||||
index e2415314..c27d3c75 100644
|
||||
--- a/radeon/Makefile.am
|
||||
+++ b/radeon/Makefile.am
|
||||
@@ -33,7 +33,7 @@ AM_CFLAGS = \
|
||||
libdrm_radeon_la_LTLIBRARIES = libdrm_radeon.la
|
||||
libdrm_radeon_ladir = $(libdir)
|
||||
libdrm_radeon_la_LDFLAGS = -version-number 1:0:1 -no-undefined
|
||||
-libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
||||
+libdrm_radeon_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_radeon_la_SOURCES = $(LIBDRM_RADEON_FILES)
|
||||
|
||||
diff --git a/tegra/Makefile.am b/tegra/Makefile.am
|
||||
index fb40be55..12abe8c4 100644
|
||||
--- a/tegra/Makefile.am
|
||||
+++ b/tegra/Makefile.am
|
||||
@@ -9,7 +9,7 @@ AM_CFLAGS = \
|
||||
libdrm_tegra_ladir = $(libdir)
|
||||
libdrm_tegra_la_LTLIBRARIES = libdrm_tegra.la
|
||||
libdrm_tegra_la_LDFLAGS = -version-number 0:0:0 -no-undefined
|
||||
-libdrm_tegra_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
|
||||
+libdrm_tegra_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@ @ATOMIC_OPS_LIBS@
|
||||
|
||||
libdrm_tegra_la_SOURCES = \
|
||||
private.h \
|
||||
--
|
||||
2.14.3
|
||||
|
@ -9,9 +9,15 @@ LIBDRM_SOURCE = libdrm-$(LIBDRM_VERSION).tar.bz2
|
||||
LIBDRM_SITE = https://dri.freedesktop.org/libdrm
|
||||
LIBDRM_LICENSE = MIT
|
||||
LIBDRM_INSTALL_STAGING = YES
|
||||
|
||||
# patch 0003-configure-Makefile.am-use-pkg-config-to-discover-lib.patch
|
||||
# touching configure.ac/Makefile.am (and host-xutil_util-macros dependency)
|
||||
LIBDRM_AUTORECONF = YES
|
||||
|
||||
LIBDRM_DEPENDENCIES = \
|
||||
libpthread-stubs \
|
||||
host-pkgconf
|
||||
host-pkgconf \
|
||||
host-xutil_util-macros
|
||||
|
||||
LIBDRM_CONF_OPTS = \
|
||||
--disable-cairo-tests \
|
||||
|
Loading…
Reference in New Issue
Block a user