diff --git a/.files b/.files
index 41f1d8c..d1b8176 100644
Binary files a/.files and b/.files differ
diff --git a/.rev b/.rev
index ea57e01..d54d6cf 100644
--- a/.rev
+++ b/.rev
@@ -1819,4 +1819,12 @@
1108920
+
+ d882be9c8746829d22c4dce8f3819d72
+ 1.2.10
+
+ anag+factory
+
+ 1110010
+
diff --git a/0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch b/0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
new file mode 100644
index 0000000..70352a4
--- /dev/null
+++ b/0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
@@ -0,0 +1,49 @@
+From 10bd599970acc71c92f85eb08943eb8d3d702a9c Mon Sep 17 00:00:00 2001
+From: Jaroslav Kysela
+Date: Wed, 6 Sep 2023 15:16:44 +0200
+Subject: [PATCH] global.h: move __STRING() macro outside !PIC ifdef block
+
+It solves the musl libc compilation issue.
+
+control.c: In function 'snd_ctl_open_conf':
+../../include/global.h:98:36: warning: implicit declaration of function '__STRING' [-Wimplicit-function-declaratio]
+ 98 | #define SND_DLSYM_VERSION(version) __STRING(version)
+ | ^~~~~~~~
+
+Fixes: https://github.com/alsa-project/alsa-lib/issues/350
+Signed-off-by: Jaroslav Kysela
+---
+ include/global.h | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/include/global.h b/include/global.h
+index dfe9bc2b54bf..3ecaeee898c5 100644
+--- a/include/global.h
++++ b/include/global.h
+@@ -51,6 +51,11 @@ const char *snd_asoundlib_version(void);
+ #define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
+ #endif
+
++#ifndef __STRING
++/** \brief Return 'x' argument as string */
++#define __STRING(x) #x
++#endif
++
+ #ifdef PIC /* dynamic build */
+
+ /** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */
+@@ -71,11 +76,6 @@ struct snd_dlsym_link {
+
+ extern struct snd_dlsym_link *snd_dlsym_start;
+
+-#ifndef __STRING
+-/** \brief Return 'x' argument as string */
+-#define __STRING(x) #x
+-#endif
+-
+ /** \hideinitializer \brief Helper macro for #SND_DLSYM_BUILD_VERSION. */
+ #define __SND_DLSYM_VERSION(prefix, name, version) _ ## prefix ## name ## version
+ /**
+--
+2.35.3
+
diff --git a/0003-pcm-Fix-segfault-with-32bit-libs.patch b/0003-pcm-Fix-segfault-with-32bit-libs.patch
new file mode 100644
index 0000000..26cb61b
--- /dev/null
+++ b/0003-pcm-Fix-segfault-with-32bit-libs.patch
@@ -0,0 +1,113 @@
+From 0e3dfb9f705ca78be34cd70fd59d67c431e29cc7 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai
+Date: Sat, 9 Sep 2023 17:42:03 +0200
+Subject: [PATCH] pcm: Fix segfault with 32bit libs
+
+The recent rearrangement of header inclusion order caused a regression
+showing segfaults on 32bit Arm. The primary reason is the
+inconsistent compile condition depending on the inclusion of config.h;
+while most of other code include pcm_local.h (that implicitly includes
+config.h) at first, pcm_direct.c doesn't do it, hence the access with
+direct plugins crashes.
+
+For fixing it, we need to include config.h at the beginning. But,
+it's better to include pcm_local.h for all relevant code for
+consistency. The patch does it, and also it adds the guard in
+pcm_local.h for double inclusions.
+
+Fixes: ad3a8b8b314e ("reshuffle included files to include config.h as first")
+Link: https://github.com/alsa-project/alsa-lib/issues/352
+Signed-off-by: Takashi Iwai
+---
+ src/pcm/pcm_direct.c | 1 +
+ src/pcm/pcm_dmix.c | 2 +-
+ src/pcm/pcm_dshare.c | 1 +
+ src/pcm/pcm_dsnoop.c | 1 +
+ src/pcm/pcm_local.h | 5 +++++
+ src/pcm/pcm_shm.c | 1 +
+ 6 files changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/src/pcm/pcm_direct.c b/src/pcm/pcm_direct.c
+index 040fc1605388..e53e59238119 100644
+--- a/src/pcm/pcm_direct.c
++++ b/src/pcm/pcm_direct.c
+@@ -19,6 +19,7 @@
+ *
+ */
+
++#include "pcm_local.h"
+ #include
+ #include
+ #include
+diff --git a/src/pcm/pcm_dmix.c b/src/pcm/pcm_dmix.c
+index 7cd3c50841ae..55cae3e79a06 100644
+--- a/src/pcm/pcm_dmix.c
++++ b/src/pcm/pcm_dmix.c
+@@ -26,7 +26,7 @@
+ *
+ */
+
+-#include "config.h"
++#include "pcm_local.h"
+ #include
+ #include
+ #include
+diff --git a/src/pcm/pcm_dshare.c b/src/pcm/pcm_dshare.c
+index 454b39a91429..c03290985457 100644
+--- a/src/pcm/pcm_dshare.c
++++ b/src/pcm/pcm_dshare.c
+@@ -26,6 +26,7 @@
+ *
+ */
+
++#include "pcm_local.h"
+ #include
+ #include
+ #include
+diff --git a/src/pcm/pcm_dsnoop.c b/src/pcm/pcm_dsnoop.c
+index d3ce300ce3b8..bf67c68a0dfa 100644
+--- a/src/pcm/pcm_dsnoop.c
++++ b/src/pcm/pcm_dsnoop.c
+@@ -26,6 +26,7 @@
+ *
+ */
+
++#include "pcm_local.h"
+ #include
+ #include
+ #include
+diff --git a/src/pcm/pcm_local.h b/src/pcm/pcm_local.h
+index 6a0e71e711ea..152c92c300e1 100644
+--- a/src/pcm/pcm_local.h
++++ b/src/pcm/pcm_local.h
+@@ -20,6 +20,9 @@
+ *
+ */
+
++#ifndef __PCM_LOCAL_H
++#define __PCM_LOCAL_H
++
+ #include "config.h"
+
+ #include
+@@ -1223,3 +1226,5 @@ static inline void snd_pcm_unlock(snd_pcm_t *pcm)
+ #define snd_pcm_lock(pcm) do {} while (0)
+ #define snd_pcm_unlock(pcm) do {} while (0)
+ #endif /* THREAD_SAFE_API */
++
++#endif /* __PCM_LOCAL_H */
+diff --git a/src/pcm/pcm_shm.c b/src/pcm/pcm_shm.c
+index f0bfd934d335..d9596547741c 100644
+--- a/src/pcm/pcm_shm.c
++++ b/src/pcm/pcm_shm.c
+@@ -26,6 +26,7 @@
+ *
+ */
+
++#include "pcm_local.h"
+ #include
+ #include
+ #include
+--
+2.35.3
+
diff --git a/alsa.changes b/alsa.changes
index 545b1ef..0a7848b 100644
--- a/alsa.changes
+++ b/alsa.changes
@@ -1,4 +1,12 @@
-------------------------------------------------------------------
+Sat Sep 9 15:49:43 UTC 2023 - Takashi Iwai
+
+- Upstream fix backport:
+ 0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
+- Upstream fix for PCM segfault regression (bsc#1215167):
+ 0003-pcm-Fix-segfault-with-32bit-libs.patch
+
+-------------------------------------------------------------------
Mon Sep 4 12:33:29 UTC 2023 - Takashi Iwai
- Update to version 1.2.10:
diff --git a/alsa.spec b/alsa.spec
index ae4e2c6..25693bf 100644
--- a/alsa.spec
+++ b/alsa.spec
@@ -57,6 +57,8 @@ Source34: alsa-init.sh
Source35: alsa.keyring
# upstream fixes
Patch1: 0001-control.h-Fix-ump-header-file-detection.patch
+Patch2: 0002-global.h-move-__STRING-macro-outside-PIC-ifdef-block.patch
+Patch3: 0003-pcm-Fix-segfault-with-32bit-libs.patch
# rest suse fixes
Patch101: alsa-lib-ignore-non-accessible-ALSA_CONFIG_PATH.patch
BuildRequires: doxygen
@@ -146,6 +148,8 @@ This package contains the library for ALSA topology support.
%prep
%setup -q -n alsa-lib-%{version}
%patch1 -p1
+%patch2 -p1
+%patch3 -p1
%patch101 -p1
%build