Your message dated Fri, 13 Feb 2015 22:56:31 -0500
with message-id
<CANTw=mpjdl+r3hoyabsq2yot9xhwsirvujrpi_qspu1_d6w...@mail.gmail.com>
and subject line
has caused the Debian Bug report #773359,
regarding package tbb_4.2~20140122-4 FTBFS on mips and mipsel
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)
--
773359: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=773359
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: tbb
Version: 4.2~20140122-4
Severity: serious
Tags: sid + patch
Justification: FTBFS
User: debian-m...@lists.debian.org
Usertags: mips-patch
Hello,
Package tbb_4.2~20140122-4 FTBFS on mips and mipsel.
Mips platform does not have 64-bit __sync_* operations.
To resolve this issue it is needed to use corresponding
__atomic_* from libatomic library.
https://buildd.debian.org/status/package.php?p=tbb&suite=sid
build logs:
https://buildd.debian.org/status/fetch.php?pkg=tbb&arch=mips&ver=4.2~20140122-4&stamp=1415055684
https://buildd.debian.org/status/fetch.php?pkg=tbb&arch=mipsel&ver=4.2~20140122-4&stamp=1415054347
I have attached a patch resolving this issue.
Thank you!
Regards,
Jurica
--- tbb-4.2~20140122.orig/build/linux.gcc.inc
+++ tbb-4.2~20140122/build/linux.gcc.inc
@@ -80,6 +80,14 @@ endif
TBB_ASM.OBJ=
MALLOC_ASM.OBJ=
+ifeq (mips,$(arch))
+ LINK_FLAGS += -latomic
+endif
+
+ifeq (mipsel,$(arch))
+ LINK_FLAGS += -latomic
+endif
+
ifeq (ia64,$(arch))
# Position-independent code (PIC) is a must on IA-64 architecture, even for regular (not shared) executables
CPLUS_FLAGS += $(PIC_KEY)
--- tbb-4.2~20140122.orig/build/linux.inc
+++ tbb-4.2~20140122/build/linux.inc
@@ -76,6 +76,12 @@ ifndef arch
ifeq ($(deb_host_arch),i386)
export arch:=ia32
endif
+ ifeq ($(deb_host_arch),mips)
+ export arch:=mips
+ endif
+ ifeq ($(deb_host_arch),mipsel)
+ export arch:=mipsel
+ endif
ifndef arch
export arch:=$(uname_m)
$(warning "Unknown arch: " $(arch))
--- tbb-4.2~20140122.orig/include/tbb/machine/gcc_generic.h
+++ tbb-4.2~20140122/include/tbb/machine/gcc_generic.h
@@ -68,14 +68,27 @@
#define __TBB_full_memory_fence() __sync_synchronize()
#define __TBB_control_consistency_helper() __sync_synchronize()
-#define __TBB_MACHINE_DEFINE_ATOMICS(S,T) \
-inline T __TBB_machine_cmpswp##S( volatile void *ptr, T value, T comparand ) { \
- return __sync_val_compare_and_swap(reinterpret_cast<volatile T *>(ptr),comparand,value); \
-} \
- \
-inline T __TBB_machine_fetchadd##S( volatile void *ptr, T value ) { \
- return __sync_fetch_and_add(reinterpret_cast<volatile T *>(ptr),value); \
-} \
+#if defined (__mips) && !defined (__mips64)
+ #define __TBB_MACHINE_DEFINE_ATOMICS(S,T) \
+ inline T __TBB_machine_cmpswp##S( volatile void *ptr, T value, T comparand ) { \
+ __atomic_compare_exchange(reinterpret_cast<volatile T *>(ptr),&comparand,&value, \
+ false,__ATOMIC_SEQ_CST,__ATOMIC_SEQ_CST); \
+ return comparand; \
+ } \
+ \
+ inline T __TBB_machine_fetchadd##S( volatile void *ptr, T value ) { \
+ return __atomic_fetch_add(reinterpret_cast<volatile T *>(ptr),value,__ATOMIC_SEQ_CST); \
+ }
+#else
+ #define __TBB_MACHINE_DEFINE_ATOMICS(S,T) \
+ inline T __TBB_machine_cmpswp##S( volatile void *ptr, T value, T comparand ) { \
+ return __sync_val_compare_and_swap(reinterpret_cast<volatile T *>(ptr),comparand,value); \
+ } \
+ \
+ inline T __TBB_machine_fetchadd##S( volatile void *ptr, T value ) { \
+ return __sync_fetch_and_add(reinterpret_cast<volatile T *>(ptr),value); \
+ }
+#endif
__TBB_MACHINE_DEFINE_ATOMICS(1,int8_t)
__TBB_MACHINE_DEFINE_ATOMICS(2,int16_t)
--- End Message ---
--- Begin Message ---
version: 4.2~20140122-5
--- End Message ---