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])],

Reply via email to