Accepting request 173316 from multimedia:libs
- Upstream fix for dlobj cache crash (bnc#814250) 0001-Fix-doubly-call-of-dlclose-in-dlobj-caching-code.patch - Upstream patches for support DSD 0002-pcm.c-fix-indentation.patch 0003-bring-pcm.h-and-pcm.c-in-sync-with-the-kernel-list.patch - Fix compile errors with C90 (bnc#817077) 0004-Use-__inline__-for-exported-headers.patch 0005-Add-definition-of-__inline__-for-non-GCC.patch (forwarded request 173315 from tiwai) OBS-URL: https://build.opensuse.org/request/show/173316 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/alsa?expand=0&rev=135
This commit is contained in:
commit
a28e6f998b
102
0001-Fix-doubly-call-of-dlclose-in-dlobj-caching-code.patch
Normal file
102
0001-Fix-doubly-call-of-dlclose-in-dlobj-caching-code.patch
Normal file
@ -0,0 +1,102 @@
|
||||
From e1e40c25535af35fa5cdf7ffc95a01fbff098ddd Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Mon, 15 Apr 2013 18:12:17 +0200
|
||||
Subject: [PATCH 1/5] Fix doubly call of dlclose() in dlobj caching code
|
||||
|
||||
When multiple dlobj_cache items point to the same dlobj, dlclose() may
|
||||
be called wrongly multiple times when these items are cleared, because
|
||||
we manage the dlobj_cache list as a flat list. This results in a bad
|
||||
segfault we've seen in openal-soft, for example.
|
||||
|
||||
For fixing this, we need the refcounting of dlobj itself. But, in
|
||||
this case, we don't have to manage yet another list, since dlopen()
|
||||
does a proper refcounting by itself. That is, we can just call always
|
||||
dlopen() at each time a new function is assigned, and also call
|
||||
dlclose() for each released dlobj_cache item at cleanup.
|
||||
|
||||
Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=814250
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/dlmisc.c | 31 +++++++++++--------------------
|
||||
1 file changed, 11 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git a/src/dlmisc.c b/src/dlmisc.c
|
||||
index 3788382..2de0234 100644
|
||||
--- a/src/dlmisc.c
|
||||
+++ b/src/dlmisc.c
|
||||
@@ -208,8 +208,7 @@ void *snd_dlobj_cache_get(const char *lib, const char *name,
|
||||
{
|
||||
struct list_head *p;
|
||||
struct dlobj_cache *c;
|
||||
- void *func, *dlobj = NULL;
|
||||
- int dlobj_close = 0;
|
||||
+ void *func, *dlobj;
|
||||
|
||||
snd_dlobj_lock();
|
||||
list_for_each(p, &pcm_dlobj_list) {
|
||||
@@ -220,7 +219,6 @@ void *snd_dlobj_cache_get(const char *lib, const char *name,
|
||||
continue;
|
||||
if (!lib && c->lib)
|
||||
continue;
|
||||
- dlobj = c->dlobj;
|
||||
if (strcmp(c->name, name) == 0) {
|
||||
c->refcnt++;
|
||||
func = c->func;
|
||||
@@ -228,17 +226,16 @@ void *snd_dlobj_cache_get(const char *lib, const char *name,
|
||||
return func;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ dlobj = snd_dlopen(lib, RTLD_NOW);
|
||||
if (dlobj == NULL) {
|
||||
- dlobj = snd_dlopen(lib, RTLD_NOW);
|
||||
- if (dlobj == NULL) {
|
||||
- if (verbose)
|
||||
- SNDERR("Cannot open shared library %s",
|
||||
+ if (verbose)
|
||||
+ SNDERR("Cannot open shared library %s",
|
||||
lib ? lib : "[builtin]");
|
||||
- snd_dlobj_unlock();
|
||||
- return NULL;
|
||||
- }
|
||||
- dlobj_close = 1;
|
||||
+ snd_dlobj_unlock();
|
||||
+ return NULL;
|
||||
}
|
||||
+
|
||||
func = snd_dlsym(dlobj, name, version);
|
||||
if (func == NULL) {
|
||||
if (verbose)
|
||||
@@ -257,8 +254,7 @@ void *snd_dlobj_cache_get(const char *lib, const char *name,
|
||||
free((void *)c->lib);
|
||||
free(c);
|
||||
__err:
|
||||
- if (dlobj_close)
|
||||
- snd_dlclose(dlobj);
|
||||
+ snd_dlclose(dlobj);
|
||||
snd_dlobj_unlock();
|
||||
return NULL;
|
||||
}
|
||||
@@ -298,16 +294,11 @@ void snd_dlobj_cache_cleanup(void)
|
||||
struct list_head *p, *npos;
|
||||
struct dlobj_cache *c;
|
||||
|
||||
- /* clean up caches only when really no user is present */
|
||||
snd_dlobj_lock();
|
||||
- list_for_each(p, &pcm_dlobj_list) {
|
||||
- c = list_entry(p, struct dlobj_cache, list);
|
||||
- if (c->refcnt)
|
||||
- goto unlock;
|
||||
- }
|
||||
-
|
||||
list_for_each_safe(p, npos, &pcm_dlobj_list) {
|
||||
c = list_entry(p, struct dlobj_cache, list);
|
||||
+ if (c->refcnt)
|
||||
+ continue;
|
||||
list_del(p);
|
||||
snd_dlclose(c->dlobj);
|
||||
free((void *)c->name); /* shut up gcc warning */
|
||||
--
|
||||
1.8.2.1
|
||||
|
34
0002-pcm.c-fix-indentation.patch
Normal file
34
0002-pcm.c-fix-indentation.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From 697f8c296ccb4b38cec930782b5ef1419aaf4245 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Mack <zonque@gmail.com>
|
||||
Date: Thu, 18 Apr 2013 10:37:49 +0200
|
||||
Subject: [PATCH 2/5] pcm.c: fix indentation
|
||||
|
||||
Signed-off-by: Daniel Mack <zonque@gmail.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
src/pcm/pcm.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
|
||||
index 38febb9..2a87a7b 100644
|
||||
--- a/src/pcm/pcm.c
|
||||
+++ b/src/pcm/pcm.c
|
||||
@@ -1638,11 +1638,11 @@ static const char *const snd_pcm_type_names[] = {
|
||||
PCMTYPE(LADSPA),
|
||||
PCMTYPE(DMIX),
|
||||
PCMTYPE(JACK),
|
||||
- PCMTYPE(DSNOOP),
|
||||
- PCMTYPE(IEC958),
|
||||
+ PCMTYPE(DSNOOP),
|
||||
+ PCMTYPE(IEC958),
|
||||
PCMTYPE(SOFTVOL),
|
||||
- PCMTYPE(IOPLUG),
|
||||
- PCMTYPE(EXTPLUG),
|
||||
+ PCMTYPE(IOPLUG),
|
||||
+ PCMTYPE(EXTPLUG),
|
||||
PCMTYPE(MMAP_EMUL),
|
||||
};
|
||||
|
||||
--
|
||||
1.8.2.1
|
||||
|
@ -0,0 +1,73 @@
|
||||
From 886f0cc3c274643de464e646535afb4ceee1d816 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Mack <zonque@gmail.com>
|
||||
Date: Thu, 18 Apr 2013 10:37:50 +0200
|
||||
Subject: [PATCH 3/5] bring pcm.h and pcm.c in sync with the kernel list
|
||||
|
||||
In particular, this adds definitions and descriptions for G.723 and
|
||||
DSD types.
|
||||
|
||||
Signed-off-by: Daniel Mack <zonque@gmail.com>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
include/pcm.h | 14 +++++++++++++-
|
||||
src/pcm/pcm.c | 12 ++++++++++++
|
||||
2 files changed, 25 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/include/pcm.h b/include/pcm.h
|
||||
index d94ba90..e440030 100644
|
||||
--- a/include/pcm.h
|
||||
+++ b/include/pcm.h
|
||||
@@ -199,7 +199,19 @@ typedef enum _snd_pcm_format {
|
||||
SND_PCM_FORMAT_U18_3LE,
|
||||
/** Unsigned 18bit Big Endian in 3bytes format */
|
||||
SND_PCM_FORMAT_U18_3BE,
|
||||
- SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_U18_3BE,
|
||||
+ /* G.723 (ADPCM) 24 kbit/s, 8 samples in 3 bytes */
|
||||
+ SND_PCM_FORMAT_G723_24,
|
||||
+ /* G.723 (ADPCM) 24 kbit/s, 1 sample in 1 byte */
|
||||
+ SND_PCM_FORMAT_G723_24_1B,
|
||||
+ /* G.723 (ADPCM) 40 kbit/s, 8 samples in 3 bytes */
|
||||
+ SND_PCM_FORMAT_G723_40,
|
||||
+ /* G.723 (ADPCM) 40 kbit/s, 1 sample in 1 byte */
|
||||
+ SND_PCM_FORMAT_G723_40_1B,
|
||||
+ /* Direct Stream Digital (DSD) in 1-byte samples (x8) */
|
||||
+ SND_PCM_FORMAT_DSD_U8,
|
||||
+ /* Direct Stream Digital (DSD) in 2-byte samples (x16) */
|
||||
+ SND_PCM_FORMAT_DSD_U16_LE,
|
||||
+ SND_PCM_FORMAT_LAST = SND_PCM_FORMAT_DSD_U16_LE,
|
||||
|
||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||
/** Signed 16 bit CPU endian */
|
||||
diff --git a/src/pcm/pcm.c b/src/pcm/pcm.c
|
||||
index 2a87a7b..438fb3f 100644
|
||||
--- a/src/pcm/pcm.c
|
||||
+++ b/src/pcm/pcm.c
|
||||
@@ -1558,6 +1558,12 @@ static const char *const snd_pcm_format_names[] = {
|
||||
FORMAT(S18_3BE),
|
||||
FORMAT(U18_3LE),
|
||||
FORMAT(U18_3BE),
|
||||
+ FORMAT(G723_24),
|
||||
+ FORMAT(G723_24_1B),
|
||||
+ FORMAT(G723_40),
|
||||
+ FORMAT(G723_40_1B),
|
||||
+ FORMAT(DSD_U8),
|
||||
+ FORMAT(DSD_U16_LE),
|
||||
};
|
||||
|
||||
static const char *const snd_pcm_format_aliases[SND_PCM_FORMAT_LAST+1] = {
|
||||
@@ -1611,6 +1617,12 @@ static const char *const snd_pcm_format_descriptions[] = {
|
||||
FORMATD(S18_3BE, "Signed 18 bit Big Endian in 3bytes"),
|
||||
FORMATD(U18_3LE, "Unsigned 18 bit Little Endian in 3bytes"),
|
||||
FORMATD(U18_3BE, "Unsigned 18 bit Big Endian in 3bytes"),
|
||||
+ FORMATD(G723_24, "G.723 (ADPCM) 24 kbit/s, 8 samples in 3 bytes"),
|
||||
+ FORMATD(G723_24_1B, "G.723 (ADPCM) 24 kbit/s, 1 sample in 1 byte"),
|
||||
+ FORMATD(G723_40, "G.723 (ADPCM) 40 kbit/s, 8 samples in 3 bytes"),
|
||||
+ FORMATD(G723_40_1B, "G.723 (ADPCM) 40 kbit/s, 1 sample in 1 byte"),
|
||||
+ FORMATD(DSD_U8, "Direct Stream Digital, 1-byte (x8), oldest bit in MSB"),
|
||||
+ FORMATD(DSD_U16_LE, "Direct Stream Digital, 2-byte (x16), little endian, oldest bits in MSB"),
|
||||
};
|
||||
|
||||
static const char *const snd_pcm_type_names[] = {
|
||||
--
|
||||
1.8.2.1
|
||||
|
155
0004-Use-__inline__-for-exported-headers.patch
Normal file
155
0004-Use-__inline__-for-exported-headers.patch
Normal file
@ -0,0 +1,155 @@
|
||||
From 30122df4faf7ccc79b9525db95f55c5a8ed6fe4d Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Thu, 25 Apr 2013 09:52:33 +0200
|
||||
Subject: [PATCH 4/5] Use __inline__ for exported headers
|
||||
|
||||
Some programs are still using C90.
|
||||
|
||||
Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=817077
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
include/control.h | 4 ++--
|
||||
include/iatomic.h | 14 +++++++-------
|
||||
include/pcm.h | 2 +-
|
||||
include/pcm_extplug.h | 4 ++--
|
||||
include/use-case.h | 4 ++--
|
||||
5 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/include/control.h b/include/control.h
|
||||
index 27fe2ac..5fdf379 100644
|
||||
--- a/include/control.h
|
||||
+++ b/include/control.h
|
||||
@@ -234,7 +234,7 @@ int snd_ctl_open_lconf(snd_ctl_t **ctl, const char *name, int mode, snd_config_t
|
||||
int snd_ctl_open_fallback(snd_ctl_t **ctl, snd_config_t *root, const char *name, const char *orig_name, int mode);
|
||||
int snd_ctl_close(snd_ctl_t *ctl);
|
||||
int snd_ctl_nonblock(snd_ctl_t *ctl, int nonblock);
|
||||
-static inline int snd_ctl_abort(snd_ctl_t *ctl) { return snd_ctl_nonblock(ctl, 2); }
|
||||
+static __inline__ int snd_ctl_abort(snd_ctl_t *ctl) { return snd_ctl_nonblock(ctl, 2); }
|
||||
int snd_async_add_ctl_handler(snd_async_handler_t **handler, snd_ctl_t *ctl,
|
||||
snd_async_callback_t callback, void *private_data);
|
||||
snd_ctl_t *snd_async_handler_get_ctl(snd_async_handler_t *handler);
|
||||
@@ -532,7 +532,7 @@ int snd_hctl_open(snd_hctl_t **hctl, const char *name, int mode);
|
||||
int snd_hctl_open_ctl(snd_hctl_t **hctlp, snd_ctl_t *ctl);
|
||||
int snd_hctl_close(snd_hctl_t *hctl);
|
||||
int snd_hctl_nonblock(snd_hctl_t *hctl, int nonblock);
|
||||
-static inline int snd_hctl_abort(snd_hctl_t *hctl) { return snd_hctl_nonblock(hctl, 2); }
|
||||
+static __inline__ int snd_hctl_abort(snd_hctl_t *hctl) { return snd_hctl_nonblock(hctl, 2); }
|
||||
int snd_hctl_poll_descriptors_count(snd_hctl_t *hctl);
|
||||
int snd_hctl_poll_descriptors(snd_hctl_t *hctl, struct pollfd *pfds, unsigned int space);
|
||||
int snd_hctl_poll_descriptors_revents(snd_hctl_t *ctl, struct pollfd *pfds, unsigned int nfds, unsigned short *revents);
|
||||
diff --git a/include/iatomic.h b/include/iatomic.h
|
||||
index e92dbfd..5711fe8 100644
|
||||
--- a/include/iatomic.h
|
||||
+++ b/include/iatomic.h
|
||||
@@ -980,7 +980,7 @@ static __inline__ int atomic_dec_and_test(volatile atomic_t *v)
|
||||
return result;
|
||||
}
|
||||
|
||||
-static inline int atomic_add_negative(int i, volatile atomic_t *v)
|
||||
+static __inline__ int atomic_add_negative(int i, volatile atomic_t *v)
|
||||
{
|
||||
unsigned long flags;
|
||||
int result;
|
||||
@@ -1160,36 +1160,36 @@ typedef struct {
|
||||
|
||||
void snd_atomic_read_wait(snd_atomic_read_t *t);
|
||||
|
||||
-static inline void snd_atomic_write_init(snd_atomic_write_t *w)
|
||||
+static __inline__ void snd_atomic_write_init(snd_atomic_write_t *w)
|
||||
{
|
||||
w->begin = 0;
|
||||
w->end = 0;
|
||||
}
|
||||
|
||||
-static inline void snd_atomic_write_begin(snd_atomic_write_t *w)
|
||||
+static __inline__ void snd_atomic_write_begin(snd_atomic_write_t *w)
|
||||
{
|
||||
w->begin++;
|
||||
wmb();
|
||||
}
|
||||
|
||||
-static inline void snd_atomic_write_end(snd_atomic_write_t *w)
|
||||
+static __inline__ void snd_atomic_write_end(snd_atomic_write_t *w)
|
||||
{
|
||||
wmb();
|
||||
w->end++;
|
||||
}
|
||||
|
||||
-static inline void snd_atomic_read_init(snd_atomic_read_t *r, snd_atomic_write_t *w)
|
||||
+static __inline__ void snd_atomic_read_init(snd_atomic_read_t *r, snd_atomic_write_t *w)
|
||||
{
|
||||
r->write = w;
|
||||
}
|
||||
|
||||
-static inline void snd_atomic_read_begin(snd_atomic_read_t *r)
|
||||
+static __inline__ void snd_atomic_read_begin(snd_atomic_read_t *r)
|
||||
{
|
||||
r->end = r->write->end;
|
||||
rmb();
|
||||
}
|
||||
|
||||
-static inline int snd_atomic_read_ok(snd_atomic_read_t *r)
|
||||
+static __inline__ int snd_atomic_read_ok(snd_atomic_read_t *r)
|
||||
{
|
||||
rmb();
|
||||
return r->end == r->write->begin;
|
||||
diff --git a/include/pcm.h b/include/pcm.h
|
||||
index e440030..95b8aed 100644
|
||||
--- a/include/pcm.h
|
||||
+++ b/include/pcm.h
|
||||
@@ -451,7 +451,7 @@ int snd_pcm_poll_descriptors_count(snd_pcm_t *pcm);
|
||||
int snd_pcm_poll_descriptors(snd_pcm_t *pcm, struct pollfd *pfds, unsigned int space);
|
||||
int snd_pcm_poll_descriptors_revents(snd_pcm_t *pcm, struct pollfd *pfds, unsigned int nfds, unsigned short *revents);
|
||||
int snd_pcm_nonblock(snd_pcm_t *pcm, int nonblock);
|
||||
-static inline int snd_pcm_abort(snd_pcm_t *pcm) { return snd_pcm_nonblock(pcm, 2); }
|
||||
+static __inline__ int snd_pcm_abort(snd_pcm_t *pcm) { return snd_pcm_nonblock(pcm, 2); }
|
||||
int snd_async_add_pcm_handler(snd_async_handler_t **handler, snd_pcm_t *pcm,
|
||||
snd_async_callback_t callback, void *private_data);
|
||||
snd_pcm_t *snd_async_handler_get_pcm(snd_async_handler_t *handler);
|
||||
diff --git a/include/pcm_extplug.h b/include/pcm_extplug.h
|
||||
index 884f322..e3b71bc 100644
|
||||
--- a/include/pcm_extplug.h
|
||||
+++ b/include/pcm_extplug.h
|
||||
@@ -188,7 +188,7 @@ int snd_pcm_extplug_set_slave_param_minmax(snd_pcm_extplug_t *extplug, int type,
|
||||
/**
|
||||
* set the parameter constraint with a single value
|
||||
*/
|
||||
-static inline int snd_pcm_extplug_set_param(snd_pcm_extplug_t *extplug, int type, unsigned int val)
|
||||
+static __inline__ int snd_pcm_extplug_set_param(snd_pcm_extplug_t *extplug, int type, unsigned int val)
|
||||
{
|
||||
return snd_pcm_extplug_set_param_list(extplug, type, 1, &val);
|
||||
}
|
||||
@@ -196,7 +196,7 @@ static inline int snd_pcm_extplug_set_param(snd_pcm_extplug_t *extplug, int type
|
||||
/**
|
||||
* set the parameter constraint for slave PCM with a single value
|
||||
*/
|
||||
-static inline int snd_pcm_extplug_set_slave_param(snd_pcm_extplug_t *extplug, int type, unsigned int val)
|
||||
+static __inline__ int snd_pcm_extplug_set_slave_param(snd_pcm_extplug_t *extplug, int type, unsigned int val)
|
||||
{
|
||||
return snd_pcm_extplug_set_slave_param_list(extplug, type, 1, &val);
|
||||
}
|
||||
diff --git a/include/use-case.h b/include/use-case.h
|
||||
index defd4ea..93b3456 100644
|
||||
--- a/include/use-case.h
|
||||
+++ b/include/use-case.h
|
||||
@@ -354,7 +354,7 @@ int snd_use_case_mgr_reset(snd_use_case_mgr_t *uc_mgr);
|
||||
* \param list Returned allocated list
|
||||
* \return Number of list entries if success, otherwise a negative error code
|
||||
*/
|
||||
-static inline int snd_use_case_card_list(const char **list[])
|
||||
+static __inline__ int snd_use_case_card_list(const char **list[])
|
||||
{
|
||||
return snd_use_case_get_list(NULL, NULL, list);
|
||||
}
|
||||
@@ -365,7 +365,7 @@ static inline int snd_use_case_card_list(const char **list[])
|
||||
* \param list Returned list of verbs
|
||||
* \return Number of list entries if success, otherwise a negative error code
|
||||
*/
|
||||
-static inline int snd_use_case_verb_list(snd_use_case_mgr_t *uc_mgr,
|
||||
+static __inline__ int snd_use_case_verb_list(snd_use_case_mgr_t *uc_mgr,
|
||||
const char **list[])
|
||||
{
|
||||
return snd_use_case_get_list(uc_mgr, "_verbs", list);
|
||||
--
|
||||
1.8.2.1
|
||||
|
28
0005-Add-definition-of-__inline__-for-non-GCC.patch
Normal file
28
0005-Add-definition-of-__inline__-for-non-GCC.patch
Normal file
@ -0,0 +1,28 @@
|
||||
From a8f405b8f90d752c3609b9e918dc949c4efadf87 Mon Sep 17 00:00:00 2001
|
||||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Thu, 25 Apr 2013 09:55:49 +0200
|
||||
Subject: [PATCH 5/5] Add definition of __inline__ for non-GCC
|
||||
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
---
|
||||
include/asoundlib-head.h | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/include/asoundlib-head.h b/include/asoundlib-head.h
|
||||
index 6edbab0..71b5c29 100644
|
||||
--- a/include/asoundlib-head.h
|
||||
+++ b/include/asoundlib-head.h
|
||||
@@ -40,6 +40,10 @@
|
||||
#include <errno.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
+#ifndef __GNUC__
|
||||
+#define __inline__ inline
|
||||
+#endif
|
||||
+
|
||||
#include <alsa/asoundef.h>
|
||||
#include <alsa/version.h>
|
||||
#include <alsa/global.h>
|
||||
--
|
||||
1.8.2.1
|
||||
|
12
alsa.changes
12
alsa.changes
@ -1,3 +1,15 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 25 09:58:41 CEST 2013 - tiwai@suse.de
|
||||
|
||||
- Upstream fix for dlobj cache crash (bnc#814250)
|
||||
0001-Fix-doubly-call-of-dlclose-in-dlobj-caching-code.patch
|
||||
- Upstream patches for support DSD
|
||||
0002-pcm.c-fix-indentation.patch
|
||||
0003-bring-pcm.h-and-pcm.c-in-sync-with-the-kernel-list.patch
|
||||
- Fix compile errors with C90 (bnc#817077)
|
||||
0004-Use-__inline__-for-exported-headers.patch
|
||||
0005-Add-definition-of-__inline__-for-non-GCC.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 12 15:26:38 CEST 2013 - tiwai@suse.de
|
||||
|
||||
|
12
alsa.spec
12
alsa.spec
@ -53,6 +53,13 @@ Source34: alsa-init.sh
|
||||
Source40: 50-alsa.conf
|
||||
Source41: install-snd-module
|
||||
# Patch: alsa-lib-git-fixes.diff
|
||||
# upstream fixes
|
||||
Patch1: 0001-Fix-doubly-call-of-dlclose-in-dlobj-caching-code.patch
|
||||
Patch2: 0002-pcm.c-fix-indentation.patch
|
||||
Patch3: 0003-bring-pcm.h-and-pcm.c-in-sync-with-the-kernel-list.patch
|
||||
Patch4: 0004-Use-__inline__-for-exported-headers.patch
|
||||
Patch5: 0005-Add-definition-of-__inline__-for-non-GCC.patch
|
||||
# rest suse patches
|
||||
Patch99: alsa-lib-doxygen-avoid-crash-for-11.3.diff
|
||||
Url: http://www.alsa-project.org/
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||
@ -103,6 +110,11 @@ Architecture.
|
||||
%prep
|
||||
%setup -q -n alsa-lib-%{package_version}
|
||||
# %patch -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%if %suse_version == 1130
|
||||
%patch99 -p1
|
||||
%endif
|
||||
|
Loading…
Reference in New Issue
Block a user