Package: drumgizmo
Version: 0.9.11-1
Severity: important
Tags: sid + patch
Justification: FTBFS
User: debian-m...@lists.debian.org
Usertags: mips-patch
Package drumgizmo_0.9.11-1 FTBFS on mips and mipsel with following error:
> plugingui-plugingui.o: In function `std::atomic<double>::is_lock_free()
> const':
> /usr/include/c++/6/atomic:212: undefined reference to `__atomic_is_lock_free'
> plugingui-plugingui.o: In function
> `std::atomic<double>::load(std::memory_order) const':
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> plugingui-plugingui.o: In function `std::atomic<double>::exchange(double,
> std::memory_order)':
> /usr/include/c++/6/atomic:251: undefined reference to `__atomic_exchange_8'
> /usr/include/c++/6/atomic:251: undefined reference to `__atomic_exchange_8'
> plugingui-plugingui.o: In function
> `std::atomic<double>::load(std::memory_order) const':
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> plugingui-plugingui.o: In function `SettingsNotifier::evaluate()':
> ./plugingui/../src/settings.h:152: undefined reference to `__atomic_load_8'
> plugingui-plugingui.o: In function
> `std::atomic<double>::load(std::memory_order) const':
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> /usr/include/c++/6/atomic:235: undefined reference to `__atomic_load_8'
> plugingui-plugingui.o:./plugingui/../src/settings.h:154: more undefined
> references to `__atomic_load_8' follow
> collect2: error: ld returned 1 exit status
> Makefile:583: recipe for target 'plugingui' failed
> make[3]: *** [plugingui] Error 1
Full build log:
https://buildd.debian.org/status/fetch.php?pkg=drumgizmo&arch=mips&ver=0.9.11-1&stamp=1478043812
The problem is in configure.ac file. Code used for checking is libatomic needed
to link
always returns the same result. For mips and mipsel test passes but the build
fails because of missing libatomic.
I have changed that test to provide linking with libatomic as needed.
Patch which corrects this test and resolves this issue is attached.
With this patch package builds successfully on mips*, i386 and amd64
architectures.
Regards,
Radovan
--- drumgizmo-0.9.11.orig/configure.ac
+++ drumgizmo-0.9.11/configure.ac
@@ -473,11 +473,12 @@ dnl ======================
AC_MSG_CHECKING([for the need for linkage with libatomic])
AC_LANG_PUSH([C++])
AC_LINK_IFELSE([AC_LANG_SOURCE[
+ #include <cstdinti>
#include <atomic>
+ std::atomic<uintptr_t> x;
+ std::atomic<uintmax_t> y;
int main() {
- struct Test { int val; };
- std::atomic<Test> s;
- return s.is_lock_free()?1:0;
+ return x + y;
}
]],
[AC_MSG_RESULT([no])],