1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
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>
[Bernd: PKG_CHECK_MODULES should not fail when libatomic_ops is missing]
Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
---
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", true)
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
|