Subject: [alpine-aports] [PATCH] community/cmus: fix build on mips{el} (-latomic)

From: alpine-mips-patches <[email-masked]>
Date: Wed, 28 Nov 2018 07:01:20 +0000

This adds generic -latomic check so likely covers all architectures
without 64-bit atomic built-ins (e.g. armel too).
---
 community/cmus/APKBUILD                |  9 ++--
 community/cmus/c11-atomics-check.patch | 57 ++++++++++++++++++++++++++
 2 files changed, 63 insertions(+), 3 deletions(-)
 create mode 100644 community/cmus/c11-atomics-check.patch

diff --git a/community/cmus/APKBUILD b/community/cmus/APKBUILD
index 03c927ee01..e52ce290d5 100644
--- a/community/cmus/APKBUILD
+++ b/community/cmus/APKBUILD
@@ -4,7 +4,7 @@
 pkgname=cmus
 pkgver=2.8.0_rc0
 _pkgver=${pkgver/_rc/-rc}
-pkgrel=0
+pkgrel=1
 pkgdesc="A very feature-rich ncurses-based music player"
 url="https://cmus.github.io/"
 arch="all"
@@ -15,7 +15,9 @@ makedepends="alsa-lib-dev faad2-dev flac-dev libmad-dev opusfile-dev
 	linux-headers"
 subpackages="$pkgname-doc $pkgname-zsh-completion:zshcomp:noarch
 	$pkgname-bash-completion:bashcomp:noarch"
-source="$pkgname-$_pkgver.tar.gz::https://github.com/cmus/cmus/archive/v$_pkgver.tar.gz"
+source="$pkgname-$_pkgver.tar.gz::https://github.com/cmus/cmus/archive/v$_pkgver.tar.gz
+	c11-atomics-check.patch
+	"
 builddir="$srcdir"/$pkgname-$_pkgver
 
 build() {
@@ -51,4 +53,5 @@ zshcomp() {
 		"$subpkgdir"/usr/share/zsh/site-functions/_$pkgname
 }
 
-sha512sums="0379f18497d6510fad35a2d905c932d12f2726a5694d3ab272ce139e9ea4520cb4dd1cf3fafe890f6ada8a64285f8c04ef7571647a66c2d44df17e2dca80f869  cmus-2.8.0-rc0.tar.gz"
+sha512sums="0379f18497d6510fad35a2d905c932d12f2726a5694d3ab272ce139e9ea4520cb4dd1cf3fafe890f6ada8a64285f8c04ef7571647a66c2d44df17e2dca80f869  cmus-2.8.0-rc0.tar.gz
+97cb5e7340a9baf1d662cd965a169bf63aca28ae165bc0ca1ed81cabfd44b3d3215abbd8e8c42ecdeeaede5ca03271eccb722048d61a894b55f3c7d353e4044e  c11-atomics-check.patch"
diff --git a/community/cmus/c11-atomics-check.patch b/community/cmus/c11-atomics-check.patch
new file mode 100644
index 0000000000..b5c22e9be8
--- /dev/null
+++ b/community/cmus/c11-atomics-check.patch
@@ -0,0 +1,57 @@
+--- a/Makefile
++++ b/Makefile
+@@ -21,7 +21,7 @@
+ FFMPEG_CFLAGS += $(shell pkg-config --cflags libswresample)
+ FFMPEG_LIBS += $(shell pkg-config --libs libswresample)
+ 
+-CMUS_LIBS = $(PTHREAD_LIBS) $(NCURSES_LIBS) $(ICONV_LIBS) $(DL_LIBS) $(DISCID_LIBS) \
++CMUS_LIBS = $(ATOMIC_LIBS) $(PTHREAD_LIBS) $(NCURSES_LIBS) $(ICONV_LIBS) $(DL_LIBS) $(DISCID_LIBS) \
+ 			-lm $(COMPAT_LIBS) $(LIBSYSTEMD_LIBS)
+ 
+ input.o main.o ui_curses.o op/pulse.lo: .version
+--- a/configure
++++ b/configure
+@@ -39,7 +39,35 @@
+ 	return 1
+ }
+ 
++readonly atomic_code="
++#include <stdatomic.h>
+ 
++int main(int argc, char *argv[])
++{
++	static atomic_llong x = ATOMIC_VAR_INIT(1);
++	return atomic_fetch_add_explicit(&x, argc, memory_order_relaxed) == 2;
++}
++"
++
++check_atomic()
++{
++	msg_checking "if -latomic is needed for C11 atomics"
++	if try_compile_link "$atomic_code"
++	then
++		msg_result "no"
++		ATOMIC_LIBS=
++	elif try_compile_link "$atomic_code" -latomic
++	then
++		msg_result "yes"
++		ATOMIC_LIBS=-latomic
++	else
++		msg_result "no C11 atomics?!"
++		return 1
++	fi
++	makefile_vars ATOMIC_LIBS
++	return 0
++}
++
+ check_compat()
+ {
+ 	COMPAT_LIBS=
+@@ -517,6 +545,7 @@
+ check check_cflags
+ check check_cc_depgen
+ check check_endianness
++check check_atomic
+ check check_compat
+ check check_dl
+ check check_pthread
-- 
2.19.1

---
Unsubscribe:  [email-masked]
Help:         [email-masked]
---