- no Firewire on s390(x)

- fix building on other arches than x86 and ppc
epel8
Dan Horák 15 years ago
parent 79100349a0
commit a040891a59

@ -0,0 +1,273 @@
diff -up jack-1.9.5/common/JackAPI.cpp.s390x jack-1.9.5/common/JackAPI.cpp
--- jack-1.9.5/common/JackAPI.cpp.s390x 2010-08-28 15:34:33.000000000 +0200
+++ jack-1.9.5/common/JackAPI.cpp 2010-08-28 15:35:59.000000000 +0200
@@ -317,7 +317,7 @@ EXPORT void* jack_port_get_buffer(jack_p
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_get_buffer");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -337,7 +337,7 @@ EXPORT const char* jack_port_name(const
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_name");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -357,7 +357,7 @@ EXPORT const char* jack_port_short_name(
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_short_name");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -377,7 +377,7 @@ EXPORT int jack_port_flags(const jack_po
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_flags");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -397,7 +397,7 @@ EXPORT const char* jack_port_type(const
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_type");
#endif
- #if defined(__x86_64__) || defined(__ppc64__)
+ #if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -417,7 +417,7 @@ EXPORT jack_port_type_id_t jack_port_typ
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_type_id");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -437,7 +437,7 @@ EXPORT int jack_port_connected(const jac
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_connected");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -458,7 +458,7 @@ EXPORT int jack_port_connected_to(const
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_connected_to");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -488,7 +488,7 @@ EXPORT int jack_port_tie(jack_port_t* sr
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_tie");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t src_aux = (uint64_t)src;
#else
uint32_t src_aux = (uint32_t)src;
@@ -498,7 +498,7 @@ EXPORT int jack_port_tie(jack_port_t* sr
jack_error("jack_port_tie called with a NULL src port");
return -1;
}
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t dst_aux = (uint64_t)dst;
#else
uint32_t dst_aux = (uint32_t)dst;
@@ -522,7 +522,7 @@ EXPORT int jack_port_untie(jack_port_t*
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_untie");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -542,7 +542,7 @@ EXPORT jack_nframes_t jack_port_get_late
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_get_latency");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -563,7 +563,7 @@ EXPORT void jack_port_set_latency(jack_p
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_set_latency");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -585,7 +585,7 @@ EXPORT int jack_recompute_total_latency(
#endif
JackClient* client = (JackClient*)ext_client;
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -630,7 +630,7 @@ EXPORT int jack_port_set_name(jack_port_
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_set_name");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -660,7 +660,7 @@ EXPORT int jack_port_set_alias(jack_port
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_set_alias");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -683,7 +683,7 @@ EXPORT int jack_port_unset_alias(jack_po
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_unset_alias");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -706,7 +706,7 @@ EXPORT int jack_port_get_aliases(const j
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_get_aliases");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -726,7 +726,7 @@ EXPORT int jack_port_request_monitor(jac
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_request_monitor");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -769,7 +769,7 @@ EXPORT int jack_port_ensure_monitor(jack
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_ensure_monitor");
#endif
- #if defined(__x86_64__) || defined(__ppc64__)
+ #if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -789,7 +789,7 @@ EXPORT int jack_port_monitoring_input(ja
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_monitoring_input");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -1128,7 +1128,7 @@ EXPORT jack_port_t* jack_port_register(j
jack_error("jack_port_register called with a NULL port name or a NULL port_type");
return NULL;
} else {
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
return (jack_port_t *)((uint64_t)client->PortRegister(port_name, port_type, flags, buffer_size));
#else
return (jack_port_t *)client->PortRegister(port_name, port_type, flags, buffer_size);
@@ -1146,7 +1146,7 @@ EXPORT int jack_port_unregister(jack_cli
jack_error("jack_port_unregister called with a NULL client");
return -1;
}
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -1169,7 +1169,7 @@ EXPORT int jack_port_is_mine(const jack_
jack_error("jack_port_is_mine called with a NULL client");
return -1;
}
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -1187,7 +1187,7 @@ EXPORT const char** jack_port_get_connec
#ifdef __CLIENTDEBUG__
JackGlobals::CheckContext("jack_port_get_connections");
#endif
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -1215,7 +1215,7 @@ EXPORT const char** jack_port_get_all_co
return NULL;
}
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -1242,7 +1242,7 @@ EXPORT jack_nframes_t jack_port_get_tota
return 0;
}
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)port;
#else
uint32_t port_aux = (uint32_t)port;
@@ -1307,7 +1307,7 @@ EXPORT int jack_port_disconnect(jack_cli
jack_error("jack_port_disconnect called with a NULL client");
return -1;
}
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
uint64_t port_aux = (uint64_t)src;
#else
uint32_t port_aux = (uint32_t)src;
@@ -1383,7 +1383,7 @@ EXPORT jack_port_t* jack_port_by_name(ja
if (!manager)
return NULL;
int res = manager->GetPort(portname); // returns a port index at least > 1
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
return (res == NO_PORT) ? NULL : (jack_port_t*)((uint64_t)res);
#else
return (res == NO_PORT) ? NULL : (jack_port_t*)res;
@@ -1397,7 +1397,7 @@ EXPORT jack_port_t* jack_port_by_id(jack
JackGlobals::CheckContext("jack_port_by_id");
#endif
/* jack_port_t* type is actually the port index */
-#if defined(__x86_64__) || defined(__ppc64__)
+#if defined(__x86_64__) || defined(__ppc64__) || defined (__s390x__)
return (jack_port_t*)((uint64_t)id);
#else
return (jack_port_t*)id;

@ -0,0 +1,61 @@
diff -up jack-1.9.5/linux/JackAtomic_os.h.atomic jack-1.9.5/linux/JackAtomic_os.h
--- jack-1.9.5/linux/JackAtomic_os.h.atomic 2010-08-28 15:23:58.000000000 +0200
+++ jack-1.9.5/linux/JackAtomic_os.h 2010-09-01 09:29:03.000000000 +0200
@@ -22,23 +22,23 @@ Foundation, Inc., 59 Temple Place - Suit
#include "JackTypes.h"
-#ifdef __PPC__
+#if defined(__PPC__)
static inline int CAS(register UInt32 value, register UInt32 newvalue, register volatile void* addr)
{
register int result;
register UInt32 tmp;
asm volatile (
- "# CAS \n"
- " lwarx %4, 0, %1 \n" // creates a reservation on addr
- " cmpw %4, %2 \n" // test value at addr
- " bne- 1f \n"
- " sync \n" // synchronize instructions
- " stwcx. %3, 0, %1 \n" // if the reservation is not altered
+ "# CAS \n"
+ " lwarx %4, 0, %1 \n" // creates a reservation on addr
+ " cmpw %4, %2 \n" // test value at addr
+ " bne- 1f \n"
+ " sync \n" // synchronize instructions
+ " stwcx. %3, 0, %1 \n" // if the reservation is not altered
// stores the new value at addr
- " bne- 1f \n"
+ " bne- 1f \n"
" li %0, 1 \n"
- " b 2f \n"
+ " b 2f \n"
"1: \n"
" li %0, 0 \n"
"2: \n"
@@ -48,9 +48,7 @@ static inline int CAS(register UInt32 va
return result;
}
-#endif
-
-#if defined(__i386__) || defined(__x86_64__)
+#elif defined(__i386__) || defined(__x86_64__)
#define LOCK "lock ; "
@@ -67,6 +65,13 @@ static inline char CAS(volatile UInt32 v
return ret;
}
+#else
+
+static inline int CAS(register UInt32 value, register UInt32 newvalue, register volatile void* addr)
+{
+ return __sync_val_compare_and_swap((UInt32 *)addr, value, newvalue);
+}
+
#endif
#endif

@ -0,0 +1,55 @@
diff -up jack-1.9.5/linux/cycles.h.cycles jack-1.9.5/linux/cycles.h
--- jack-1.9.5/linux/cycles.h.cycles 2010-08-28 16:03:40.000000000 +0200
+++ jack-1.9.5/linux/cycles.h 2010-08-28 16:05:47.000000000 +0200
@@ -39,7 +39,7 @@
#ifdef __linux__
-#ifdef __x86_64__
+#if defined(__x86_64__)
typedef unsigned long cycles_t;
extern cycles_t cacheflush_time;
@@ -51,9 +51,7 @@ static inline unsigned long get_cycles(v
return (((unsigned long)hi)<<32) | ((unsigned long)lo);
}
-#endif
-
-#ifdef __PPC__
+#elif defined(__PPC__)
/* PowerPC */
@@ -82,9 +80,7 @@ static inline cycles_t get_cycles(void)
return ret;
}
-#endif
-
-#ifdef __i386__
+#elif defined(__i386__)
typedef unsigned long long cycles_t;
@@ -101,8 +97,19 @@ static inline cycles_t get_cycles (void)
return ret;
}
-#endif
+#else
+
+/* fallback solution */
+typedef unsigned long cycles_t;
+
+static inline cycles_t get_cycles (void)
+{
+ return 0;
+}
+
#endif
+#endif /* __linux__ */
+
#endif /* __jack_cycles_h__ */

@ -4,7 +4,7 @@
Summary: The Jack Audio Connection Kit
Name: jack-audio-connection-kit
Version: 1.9.5
Release: 1%{?dist}
Release: 2%{?dist}
# The entire source (~500 files) is a mixture of these three licenses
License: GPLv2 and GPLv2+ and LGPLv2+
Group: System Environment/Daemons
@ -26,6 +26,13 @@ Patch3: jack-manpages.patch
Patch4: jack-realtime-compat.patch
# Compile against celt-0.8.0
Patch5: jack-celt08.patch
# Use GCC atomic operation for other arches
Patch6: %{name}-1.9.5-atomic.patch
# Treat s390x as 64-bit arch
Patch7: %{name}-1.9.5-64bit.patch
# Add fallback get_cycles() solution
Patch8: %{name}-1.9.5-cycles.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: alsa-lib-devel
@ -33,8 +40,10 @@ BuildRequires: dbus-devel
BuildRequires: celt-devel
BuildRequires: doxygen
BuildRequires: expat-devel
%ifnarch s390 s390x
BuildRequires: libffado-devel
BuildRequires: libfreebob-devel
%endif
BuildRequires: libsamplerate-devel
BuildRequires: libsndfile-devel
BuildRequires: ncurses-devel
@ -85,6 +94,9 @@ Small example clients that use the Jack Audio Connection Kit.
%if 0%{?fedora} > 13
%patch5 -p1 -b .celt08
%endif
%patch6 -p1 -b .atomic
%patch7 -p1 -b .64bit
%patch8 -p1 -b .cycles
# Fix encoding issues
for file in ChangeLog README TODO; do
@ -214,6 +226,10 @@ exit 0
%changelog
* Thu Aug 26 2010 Dan Horák <dan[at]danny.cz> - 1.9.5-2
- no Firewire on s390(x)
- fix building on other arches than x86 and ppc
* Mon Jul 19 2010 Orcan Ogetbil <oget[dot]fedora[at]gmail[dot]com> - 1.9.5-1
- Jack 2!

Loading…
Cancel
Save