Use the stronger compiler.link() test (instead of the weaker compiler.compile()) to fix the intel atomics detection.
Fixes false positive in case of sparc compile (buildroot toolchain).
Signed-off-by: Peter Seiderer ps.report@gmx.net --- Changes v1 -> v2: - no changes, resend (old submission [1])
[1] https://lists.freedesktop.org/archives/dri-devel/2018-July/183885.html --- meson.build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/meson.build b/meson.build index e292554..087780b 100644 --- a/meson.build +++ b/meson.build @@ -49,9 +49,10 @@ intel_atomics = false lib_atomics = false
dep_atomic_ops = dependency('atomic_ops', required : false) -if cc.compiles(''' +if cc.links(''' int atomic_add(int *i) { return __sync_add_and_fetch (i, 1); } int atomic_cmpxchg(int *i, int j, int k) { return __sync_val_compare_and_swap (i, j, k); } + int main() { } ''', name : 'Intel Atomics') intel_atomics = true -- 2.22.0
Use meson library instead of shared_library to enable static build.
Signed-off-by: Peter Seiderer ps.report@gmx.net --- Changes v1 -> v2: - no changes, resend (old submission [1])
[1] https://lists.freedesktop.org/archives/dri-devel/2018-July/183886.html --- amdgpu/meson.build | 2 +- etnaviv/meson.build | 2 +- exynos/meson.build | 2 +- freedreno/meson.build | 2 +- intel/meson.build | 2 +- libkms/meson.build | 2 +- meson.build | 2 +- nouveau/meson.build | 2 +- omap/meson.build | 2 +- radeon/meson.build | 2 +- tegra/meson.build | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-)
diff --git a/amdgpu/meson.build b/amdgpu/meson.build index 7c8ccc7..195cf53 100644 --- a/amdgpu/meson.build +++ b/amdgpu/meson.build @@ -21,7 +21,7 @@
datadir_amdgpu = join_paths(get_option('prefix'), get_option('datadir'), 'libdrm')
-libdrm_amdgpu = shared_library( +libdrm_amdgpu = library( 'drm_amdgpu', [ files( diff --git a/etnaviv/meson.build b/etnaviv/meson.build index 515a4ed..dde3cb9 100644 --- a/etnaviv/meson.build +++ b/etnaviv/meson.build @@ -19,7 +19,7 @@ # SOFTWARE.
-libdrm_etnaviv = shared_library( +libdrm_etnaviv = library( 'drm_etnaviv', [ files( diff --git a/exynos/meson.build b/exynos/meson.build index bdfc3fc..d92210f 100644 --- a/exynos/meson.build +++ b/exynos/meson.build @@ -18,7 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE.
-libdrm_exynos = shared_library( +libdrm_exynos = library( 'drm_exynos', [files('exynos_drm.c', 'exynos_fimg2d.c'), config_file], c_args : libdrm_c_args, diff --git a/freedreno/meson.build b/freedreno/meson.build index c9aba06..787e284 100644 --- a/freedreno/meson.build +++ b/freedreno/meson.build @@ -39,7 +39,7 @@ if with_freedreno_kgsl ) endif
-libdrm_freedreno = shared_library( +libdrm_freedreno = library( 'drm_freedreno', [files_freedreno, config_file], c_args : libdrm_c_args, diff --git a/intel/meson.build b/intel/meson.build index 3d6bbac..7af0a7a 100644 --- a/intel/meson.build +++ b/intel/meson.build @@ -18,7 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE.
-libdrm_intel = shared_library( +libdrm_intel = library( 'drm_intel', [ files( diff --git a/libkms/meson.build b/libkms/meson.build index dc93160..4104dfe 100644 --- a/libkms/meson.build +++ b/libkms/meson.build @@ -41,7 +41,7 @@ if with_exynos libkms_include += include_directories('../exynos') endif
-libkms = shared_library( +libkms = library( 'kms', [files_libkms, config_file], c_args : libdrm_c_args, diff --git a/meson.build b/meson.build index 087780b..adaaf22 100644 --- a/meson.build +++ b/meson.build @@ -282,7 +282,7 @@ add_project_arguments('-include', 'config.h', language : 'c') inc_root = include_directories('.') inc_drm = include_directories('include/drm')
-libdrm = shared_library( +libdrm = library( 'drm', [files( 'xf86drm.c', 'xf86drmHash.c', 'xf86drmRandom.c', 'xf86drmSL.c', diff --git a/nouveau/meson.build b/nouveau/meson.build index 0c1498d..edd7025 100644 --- a/nouveau/meson.build +++ b/nouveau/meson.build @@ -19,7 +19,7 @@ # SOFTWARE.
-libdrm_nouveau = shared_library( +libdrm_nouveau = library( 'drm_nouveau', [files( 'nouveau.c', 'pushbuf.c', 'bufctx.c', 'abi16.c'), config_file], c_args : libdrm_c_args, diff --git a/omap/meson.build b/omap/meson.build index 54698c6..1d34927 100644 --- a/omap/meson.build +++ b/omap/meson.build @@ -18,7 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE.
-libdrm_omap = shared_library( +libdrm_omap = library( 'drm_omap', [files('omap_drm.c'), config_file], include_directories : [inc_root, inc_drm], diff --git a/radeon/meson.build b/radeon/meson.build index 1fc5282..23acbd7 100644 --- a/radeon/meson.build +++ b/radeon/meson.build @@ -19,7 +19,7 @@ # SOFTWARE.
-libdrm_radeon = shared_library( +libdrm_radeon = library( 'drm_radeon', [ files( diff --git a/tegra/meson.build b/tegra/meson.build index 4bc454b..ee7aab4 100644 --- a/tegra/meson.build +++ b/tegra/meson.build @@ -18,7 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE.
-libdrm_tegra = shared_library( +libdrm_tegra = library( 'drm_tegra', [files('tegra.c'), config_file], include_directories : [inc_root, inc_drm], -- 2.22.0
dri-devel@lists.freedesktop.org