summaryrefslogtreecommitdiffstats
path: root/audio-drivers/libffado
diff options
context:
space:
mode:
authorThomas Orgis2008-09-19 08:54:49 +0200
committerThomas Orgis2008-09-19 08:54:49 +0200
commit59b90cee1c32de8a66008d1eab6521bf823492bd (patch)
treecba38b6797a662ccad84d900eeae13b505c6a2c6 /audio-drivers/libffado
parentb6463559cd9416101a6e453c6e15e89a805863a5 (diff)
libffado: a step towards firewire audio on alpha arch
Diffstat (limited to 'audio-drivers/libffado')
-rwxr-xr-xaudio-drivers/libffado/DEPENDS3
-rw-r--r--audio-drivers/libffado/HISTORY4
-rwxr-xr-xaudio-drivers/libffado/PRE_BUILD4
-rw-r--r--audio-drivers/libffado/libffado-atomic_ops.patch52
4 files changed, 63 insertions, 0 deletions
diff --git a/audio-drivers/libffado/DEPENDS b/audio-drivers/libffado/DEPENDS
index 6f7a016594..2700b5c060 100755
--- a/audio-drivers/libffado/DEPENDS
+++ b/audio-drivers/libffado/DEPENDS
@@ -1,3 +1,6 @@
+if [[ ${SMGL_COMPAT_ARCHS[1]} == alpha ]]; then
+ depends libatomic_ops
+fi &&
depends expat &&
depends libxml++ &&
depends libraw1394 &&
diff --git a/audio-drivers/libffado/HISTORY b/audio-drivers/libffado/HISTORY
index 629caaa8d4..b5bc24f0de 100644
--- a/audio-drivers/libffado/HISTORY
+++ b/audio-drivers/libffado/HISTORY
@@ -1,3 +1,7 @@
+2008-09-19 Thomas Orgis <sobukus@sourcemage.org>
+ * PRE_BUILD, DEPENDS, libffado-atomic_ops.patch:
+ attempt to make it work on alpha using libatomic_ops
+
2008-09-15 Thomas Orgis <sobukus@sourcemage.org>
* PRE_BUILD, libffado-pic.patch: fix build with PIC
diff --git a/audio-drivers/libffado/PRE_BUILD b/audio-drivers/libffado/PRE_BUILD
index 192c42348f..6ed670991a 100755
--- a/audio-drivers/libffado/PRE_BUILD
+++ b/audio-drivers/libffado/PRE_BUILD
@@ -4,4 +4,8 @@ echo "CFLAGS: $CFLAGS" &&
if echo "$CFLAGS" | grep -q PIC; then
message "${MESSAGE_COLOR}Patching build to make PIC work...$DEFAULT_COLOR" &&
patch -p0 < "$SCRIPT_DIRECTORY/libffado-pic.patch"
+fi &&
+if [[ ${SMGL_COMPAT_ARCHS[1]} == alpha ]]; then
+ message "${MESSAGE_COLOR}Aptching for portable atomic operations...$DEFAULT_COLOR" &&
+ patch -p0 < "$SCRIPT_DIRECTORY/libffado-atomic_ops.patch"
fi
diff --git a/audio-drivers/libffado/libffado-atomic_ops.patch b/audio-drivers/libffado/libffado-atomic_ops.patch
new file mode 100644
index 0000000000..dedaa8f23e
--- /dev/null
+++ b/audio-drivers/libffado/libffado-atomic_ops.patch
@@ -0,0 +1,52 @@
+Index: src/libieee1394/IsoHandlerManager.cpp
+===================================================================
+--- src/libieee1394/IsoHandlerManager.cpp (Revision 1319)
++++ src/libieee1394/IsoHandlerManager.cpp (Arbeitskopie)
+@@ -27,7 +27,7 @@
+ #include "cycletimer.h"
+ #include "libstreaming/generic/StreamProcessor.h"
+
+-#include "libutil/Atomic.h"
++#include <atomic_ops.h>
+ #include "libutil/PosixThread.h"
+ #include "libutil/SystemTimeSource.h"
+ #include "libutil/Watchdog.h"
+@@ -82,7 +82,7 @@
+ IsoTask::requestShadowMapUpdate()
+ {
+ debugOutput(DEBUG_LEVEL_VERBOSE, "(%p) enter\n", this);
+- INC_ATOMIC(&request_update);
++ AO_fetch_and_add1(&request_update);
+
+ // get the thread going again
+ signalActivity();
+@@ -227,7 +227,7 @@
+ // if some other thread requested a shadow map update, do it
+ if(request_update) {
+ updateShadowMapHelper();
+- DEC_ATOMIC(&request_update); // ack the update
++ AO_fetch_and_sub1(&request_update); // ack the update
+ assert(request_update >= 0);
+ }
+
+Index: src/libieee1394/IsoHandlerManager.h
+===================================================================
+--- src/libieee1394/IsoHandlerManager.h (Revision 1319)
++++ src/libieee1394/IsoHandlerManager.h (Arbeitskopie)
+@@ -31,6 +31,7 @@
+
+ #include "IsoHandler.h"
+
++#include <atomic_ops.h>
+ #include <sys/poll.h>
+ #include <errno.h>
+ #include <vector>
+@@ -94,7 +95,7 @@
+ IsoHandlerManager& m_manager;
+
+ // the event request structure
+- int32_t request_update;
++ AO_t request_update;
+
+ // static allocation due to RT constraints
+ // this is the map used by the actual thread